<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, May 16, 2014 at 4:38 PM, gettimothy <span dir="ltr">&lt;<a href="mailto:gettimothy@zoho.com" target="_blank">gettimothy@zoho.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> <br><u></u><div><div style="font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif">
<div>Hi Eliot.<br></div><div><br></div><div><br></div><div><div dir="ltr"><br><blockquote style="border:1px solid rgb(204,204,204);padding:7px;background-color:rgb(245,245,245)"><div><div><div dir="ltr">Hi Tty,<div><br></div>
<div>    just to confirm form my POV, echoing Tim&#39;s point.  It is a hard and fast requirement that one be able to check out <a href="http://www.squeakvm.org/svn/squeak/branches/Cog" target="_blank">http://www.squeakvm.org/svn/squeak/branches/Cog</a><span style="font-size:13px;color:rgb(0,0,0);font-family:verdana,arial,helvetica,sans-serif;background-color:rgb(245,245,245)">  and build *without* invoking VMMaker.  VMMaker shoudl be invoked to create new versions of the generated source in </span><a href="http://www.squeakvm.org/svn/squeak/branches/Cog" target="_blank">http://www.squeakvm.org/svn/squeak/branches/Cog</a><span style="font-size:13px;color:rgb(0,0,0);font-family:verdana,arial,helvetica,sans-serif;background-color:rgb(245,245,245)"> (e.g. src/vm/gcc3x-cointerp.c et al) but must *not* be a prerequisite for a build.</span></div>
</div></div> </div></blockquote><br></div></div><div><br></div><div>Thanks for clarifying. </div><div><br></div><div>There is a bit of a chicken and egg problem here. Namely, how are the CMakeLists.text and associated files going to get there in the first place?</div>
</div></div></blockquote><div><br></div><div>In exactly the same way as the generated source files got into the tree.  By starting up a VMMaker image and generating them.  You&#39;re missing the point.  The point is not that VMMaker isn&#39;t used to generate source and/or configurations.  It is.  The point is that it is not used during VM build.  So the process to introduce a new configuration is...</div>
<div><br></div><div>1. fire up a VMMaker image, modify the configuration there-in and publish the new <span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px">CMakeVMMaker package.</span></div>
<div><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px">2. generate the relevant configurations from that image</span></div><div><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px">3. check-in the modified svn source tree</span></div>
<div><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px">4. check out the svn source tree and build</span></div><div><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px"><br>
</span></div><div><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px">Note that step 4 can ten be done on its own without doing steps 1. 2. &amp; 3. providing a repeatable VM build.</span></div>
<div><span style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif;font-size:13px"><br></span></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div><div style="font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif"><div><br></div><div>What about the existing GNU auto-tools infrastructure?</div></div></div></blockquote><div><br></div><div>You mean autoconf?  It&#39;s horrible isn&#39;t it?  Once it isn&#39;t necessary it can be dropped.  But not until.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div style="font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif">
<div> </div><div><br></div><div>I don&#39;t think it makes sense to have both GNU and CMAKE on the same source tree; am I wrong?</div></div></div></blockquote><div><br></div><div>For the time being they can coexst.  In fact they do coexist already.  Once the CMAKE stuff works the old unused autoconf stuff can be deleted.  But not until.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div style="font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif">
<div><br></div><div>Assuming I am not, here is the approach.</div><div><br></div><div>1 get the existing source tree.</div><div>2. strip out the existing GNU stuff.</div><div>3. generate the new CMake stuff in place of the GNU stuff. (the tool currently invokes VMMaker as well--I can put something together that does not)</div>
<div>4. cmake. make.</div><div><br></div><div>The Pharo stuff that I am emulating does invoke VMMaker, however, I am sure I can  bypass that and just put in the CMake stuff without re-generating code.</div><div><br></div>
<div>However, Tim mentioned that sometimes launching and image to generate the CMake files is not possible. How then, to they get into the SVN tree so that the process becomes</div><div><br></div><div>1. svn co <a href="http://source.squeak.org/cmake_foo" target="_blank">http://source.squeak.org/cmake_foo</a></div>
<div>2. cd Cog</div><div>3. cmake. make</div><div><br></div><div>?</div><div><br></div><div>That&#39;s what I am confused over. </div></div></div></blockquote><div><br></div><div>I don&#39;t know; I don&#39;t use cmake.  But that&#39;s what one can do with autoconf.  And that&#39;s what one needs to be able to do with cmake.  Isn&#39;t it simply that CMakeVMMaker generates cmake input files?</div>
<div><br><div><div style="font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif"><div><br></div><div><br>---- On Fri, 16 May 2014 16:17:39 -0700 <b>Eliot Miranda&lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt;</b> wrote ---- <br>
</div><br><blockquote style="border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,255);padding-left:6px;margin:0px 0px 0px 5px"> <div dir="ltr">Hi Tty,<div><br></div><div>    just to confirm form my POV, echoing Tim&#39;s point.  It is a hard and fast requirement that one be able to check out <a href="http://www.squeakvm.org/svn/squeak/branches/Cog" target="_blank">http://www.squeakvm.org/svn/squeak/branches/Cog</a><span style="font-size:13px;color:rgb(0,0,0);font-family:verdana,arial,helvetica,sans-serif;background-color:rgb(245,245,245)">  and build *without* invoking VMMaker.  VMMaker shoudl be invoked to create new versions of the generated source in </span><a href="http://www.squeakvm.org/svn/squeak/branches/Cog" target="_blank">http://www.squeakvm.org/svn/squeak/branches/Cog</a><span style="font-size:13px;color:rgb(0,0,0);font-family:verdana,arial,helvetica,sans-serif;background-color:rgb(245,245,245)"> (e.g. src/vm/gcc3x-cointerp.c et al) but must *not* be a prerequisite for a build.</span></div>
 </div><div><br><br><div>On Fri, May 16, 2014 at 10:33 AM, gettimothy <span dir="ltr">&lt;<a href="mailto:gettimothy@zoho.com" target="_blank">gettimothy@zoho.com</a>&gt;</span> wrote:<br> <blockquote style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
 <br><div><div style="font-size:10pt;font-family:verdana,arial,helvetica,sans-serif">Hi Tim.<br><blockquote style="border:1px solid rgb(204,204,204);padding:7px;background-color:rgb(245,245,245)"> <div> &gt; Here is what I have in place so far: <br>
&gt;  <br>&gt; 1. Get the latest Cog tree from  svn co <a href="http://www.squeakvm.org/svn/squeak/branches/Cog" target="_blank">http://www.squeakvm.org/svn/squeak/branches/Cog</a> <br> &gt; 2. cd Cog/image/ and run script to build an image which:  <br>
&gt;  2.a builds image with tools per current process. <br>&gt;  2.b (additionally loads FT2Plus Toxic bypass) <br>&gt;  2.c additionally load the CMakeVMMaker package from <a href="http://source.squeak.org" target="_blank">source.squeak.org</a> (now loading from SmalltalkHub) <br>
 &gt;  2.d Recursively copies the parent Cog source code to image_directory/oscogvm/* <br>&gt;  3.e Cleans the source tree to just source by finding and deleting all GNU-Build artefacts (Makefiles, autotool stuff) <br>&gt; 3. User launches new image with the pristine source tree underneath it. <br>
 &gt; 4. Run process SqueakVMBuilder buildXYZ (same as pharo process, but squeak names) to generate the source code and  CMake stuff in the clean source tree. <br>&gt; 5. Run generated &#39;build.sh&#39; script which invokes CMake and make. <br>
  <br> <br>It’s those last two parts that imply something is going a bit off-track here. <br> <br>Now don’t forget I’m a fan of VMMaker, after all I invented it 14 years ago (actually so far as I can tell pretty much *exactly* ) but the convenience of being able to do an svn co, hit the OS-appropriate buttons and autoconfigure/build is considerable. Yes, I suppose one could have multiple svn branches for the (many, many) different versions of *nix but making use of the already existing CMake capability strikes me as more sensible. </div>
 </blockquote><br><br><div>Existing functionality is unchanged. </div><div>There is only 1 SVN branch. </div><div>VMaker is unchanged</div><div>My additions are non-intrusive.<br></div><div><br></div><div>Regarding existing CMake capability, I am leveraging what the pharo team has already done.  It appears Ian&#39;s work is hand coded CMakeLists.txt in trunk/platforms/unix and a configure script that generates the plugin CMake files. </div>
 <div><br></div><div>Regarding your ability to just svn co and run cmake, I agree that will be nice and it can be done. However until the tool is mature we need something that will work with what we have without getting in the way. I believe this approach will accomplish that.</div>
 <div><br></div><div>Hopefully I will have something in place tomorrow that you can test-drive.</div><div><br></div><div>cordially,</div><div><br></div><div><br></div><div>tty.</div><div><br></div><div><br></div></div></div>
 <br></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div> </div> </blockquote><br></div></div><br></div></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div></div>