[Vm-dev] CMMaker.oscog to fork or not to fork, that! is the question

gettimothy gettimothy at zoho.com
Wed May 7 13:11:45 UTC 2014


Hi David.



Thanks for your thoughts. 




Some definitions:


In the discussion let's let
1. VMMaker refer to Standard Interpreter build system including image,build tools and source tree from svn co http://squeakvm.org/svn/squeak/trunk
2. VMMaker.oscog refers to Cog Interpreter build system including image, build tools and source tree from svn co http://www.squeakvm.org/svn/squeak/branches/Cog
3. Pharo refers the pharo build system which uses VMMaker-oscog, git and CMMakeVMMaker tools


Some principles:


1. I will NOT be touching  or modifying VMMaker. 
2. I will NOT be modifying the existing VMMaker.oscog build systems in any way. Eliot will not see ANY changes to existing infrastructure. (ok, an addition of a shell script and support files in Cog/image, but that's it)
3. I AM creating a parallel CMake system using the existing infrastructure.




Ok, onto your concerns

but if your objective is to get oscog and trunk VM builds to use a common 
build system based on Cmake, and if you want Ian and Eliot to adopt that 
approach, then I think you may be taking the long way around the problem.



I do not. My task is only to create a CMake system for VMMaker.oscog without touching the existing build systems.




It is certainly possible maintain the sources in git rather than Subversion, 
 
Who needs the extra work? (: 
We have 1 source tree for the old Standard VM at: http://squeakvm.org/svn/squeak/trunk   
We have 1 source tree for the Cog work at:  http://www.squeakvm.org/svn/squeak/branches/Cog
The pharo team wanted git and did their thing.






I do have opinions on the matter, but we are not suffering here from a shortage of opinions
 




I would love to hear them.




I have emailed you directly with an attached .tgz file that can be extracted into the Cog/image directory from http://www.squeakvm.org/svn/squeak/branches/Cog


with a current SVN checkout from svn co http://www.squeakvm.org/svn/squeak/branches/Cog the script does the following:


1. On VMMaker branch (cmakify.sh -s VERSION)   (it basically extends the work done by Eliot in buildsqueak*.sh . my script goes to 11, though)
a. creates a subdirectory named installStandardVMaker
b. downloads Squeak VERSION
c. copies the pristine Squeak.image/changes to a StandardVMaker.image/changes
d. runs Squeak with a BuildStandardImage.st script to install the VMMaker tools on the StandardVMMaker.image
e. downloads the source tree from http://squeakvm.org/svn/squeak/trunk  and stores it where Squeak expects it relative to the installStandardVMMaker directory.
f. Sets up sym-links for VMMakerTool
g. copies in some .config files for VMMakerTool
h.  Adds a Workspace help text


So, that task is done. Instead of going here:http://wiki.squeak.org/squeak/6177 and following the steps and links at the wiki. a newbie wanting to get up and running with the Standard VMMaker suite
can do 3 things:

svn co  http://www.squeakvm.org/svn/squeak/branches/Cog
cd Cog/image
./cmakify.sh -s 4.6



 

VMMaker branch work is done. There are no changes to existing stuff. I have merely added a convenience script if people choose to adopt it. If it is adopted, the contents of the image.tty.tgz I emailed you will have to be added to SVN tree.


2. On VMMaker.oscog branch the same script is used and the behavior is similar. (cmakify.sh -c VERSION -t) (i.e. it mimics the existing buildsqueak*.sh scripts Eliot has)

a. create a subdirectory named installCogVMMaker
b. downloads the appropriate squeak VERSION to it
c. copies the pristine .image and .changes files to CogVMMaker.image/changes
d. runs squeak with the apprpriate Buildsqueak*.st smalltalk script to install the VMMaker.oscog tools from stable or trunk if specified with the -t switch
e rsyncs the current Cog source tree into a subdirectory where the VMMaker.oscog tools can find it
f. strips the synced source tree of all Gnu build artifacts 
g. sets up sym-links for VMMakerTool
h. copies in some *.config files for VMMaker tool


The Cog/image/installCogVMMaker directory can then be moved to wherever the developer wants it.


So, I have VMMaker.oscog set up on squeak with a pristine, cleaned copy of the SVN tree residing underneath it ready to have CMakeLists.text files added to it. The original SVN is unchanged as are existing build scripts.
A newbie can be up and running with the latest VMMaker.oscog  or VMMaker environment in minutes. 
So, my goal of making it easy for a newbie is done, the existing infrastructure is unchanged and nobody's toes are being stepped on.



Now on to the next step. 


Now, I need to add the CMakeLists.text files to the clean source tree. (An added benefit would be to have them actually work, but let's start simple (: )


There are two starting points for this:


1. The existing CMakeLists.text in the VMMaker source tree from http://squeakvm.org/svn/squeak/trunk
2. The existing CMakeVMMaker tool at source.squeak.org/VMMaker  (If you are not familiar with it, it defines and generates CMakeLists.txt and puts them in the source tree)


Estaban has stated:



if I can give an opinion, I would go through making a “SqueakVMMaker”, PharoVMMaker style.  
then you don’t need to fork the common base who will still be available for all platforms.  
 
Esteban 



I am cool with this. I was/am hesitant to clutter up the pharo team work, but if they are ok, me too.


Another option is to fork CMMakeVMMaker and create CMMakeVMMaker.oscg




You guys let me know.


thx.


tty























-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20140507/c9ee37ac/attachment.htm


More information about the Vm-dev mailing list