<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On 8 November 2013 16:49, Tobias Pape <span dir="ltr">&lt;<a href="mailto:Das.Linux@gmx.de" target="_blank">Das.Linux@gmx.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Igor,<br>
hi list,<br>
<br>
sorry for replying late,…<br>
<br>
My reply was intended to stir the conversation a litte,<br>
to keep it going, which, I assume, it did. I really like<br>
your opinion, Igor :)<br>
<div><div class="h5"><br>
<br>
On 07.11.2013, at 14:28, Igor Stasenko &lt;<a href="mailto:siguctua@gmail.com">siguctua@gmail.com</a>&gt; wrote:<br>
<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On 7 November 2013 08:58, Tobias Pape &lt;<a href="mailto:Das.Linux@gmx.de">Das.Linux@gmx.de</a>&gt; wrote:<br>
&gt;&gt; Hey Tim and all,<br>
&gt;&gt; On 07.11.2013, at 05:00, Ron Teitelbaum &lt;<a href="mailto:ron@usmedrec.com">ron@usmedrec.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; &gt; Hey Tim,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Göran and Eliot have been discussing this.  I just talked to Eliot about it<br>
&gt;&gt; &gt; yesterday.  He said he was happy to support cmake but didn&#39;t want to have to<br>
&gt;&gt; &gt; do the work himself.  I&#39;m hoping that the work Göran is doing on this now<br>
&gt;&gt; &gt; can be turned over to Eliot when it is finished.  I think there is agreement<br>
&gt;&gt; &gt; that combining the excellent work of pharo build with Eliot&#39;s new vm work is<br>
&gt;&gt; &gt; a very good thing to do.  The work to merge the build environments is<br>
&gt;&gt; &gt; already being done at 3D ICC.  We are working on this for the Mac also but<br>
&gt;&gt; &gt; have not discussed it with Ian yet.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Ron Teitelbaum<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; -----Original Message-----<br>
&gt;&gt; &gt;&gt; From: <a href="mailto:squeak-dev-bounces@lists.squeakfoundation.org">squeak-dev-bounces@lists.squeakfoundation.org</a> [mailto:<a href="mailto:squeak-dev-">squeak-dev-</a><br>
&gt;&gt; &gt;&gt; <a href="mailto:bounces@lists.squeakfoundation.org">bounces@lists.squeakfoundation.org</a>] On Behalf Of tim Rowledge<br>
&gt;&gt; &gt;&gt; Sent: Wednesday, November 06, 2013 9:04 PM<br>
&gt;&gt; &gt;&gt; To: The general-purpose Squeak developers list<br>
&gt;&gt; &gt;&gt; Subject: Re: [squeak-dev] A Bounty for CMake-ifying stack/Cog vm build<br>
&gt;&gt; &gt; process<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Wow, no interest? Is it because make is painful or because nobody needs to<br>
&gt;&gt; &gt;&gt; make any more money?<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; I actually have interest but I am currently reluctant,<br>
&gt;&gt; for time-capturing reasons in my personal and work life.<br>
&gt;&gt;<br>
&gt;&gt; However, Here is what I would do:<br>
&gt;&gt;<br>
&gt;&gt; • Start from Ians CMake work, and try to generalize it for the<br>
&gt;&gt;   non-Linux platforms<br>
&gt;&gt; • Windows would be kind-of straight-forward,<br>
&gt;&gt; • For OS X, I would really want to have the Cocoa-based VM stuff<br>
&gt;&gt;   (aka Squeak VM 5.4.7.x) integrated and proper Xcode files<br>
&gt;&gt;   generated, especially to be able to have iOS VMs built automatically.<br>
&gt;&gt;    Here, some information from John McIntosh would be helpfull, especially<br>
&gt;&gt;   a simple walk-through.<br>
&gt;&gt;    I have some experience with that[1]<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Despite all admiration I have for the way the PharoVM is built, there is one<br>
&gt;&gt; thing that bothers me:<br>
&gt;&gt; • You first somehow generate the VM sources (which is fine, and the automated way is amazing)<br>
&gt;&gt; • THEN, the a Script generates CMake-Files<br>
&gt;&gt; • CMake then generates Makefiles<br>
&gt;&gt; • and then finally a vm is compiled.<br>
&gt;&gt; This is one generating step too much, for my taste.<br>
&gt;&gt; Personally, I&#39;d prefer CMake to just pick up the C-files generated by VMMaker,<br>
&gt;&gt; so that adding a new platform does not need to change the VMMaker…<br>
&gt;&gt;<br>
&gt;&gt; The main big issue with &#39;platform-neutral&#39; static source files, that they tend to<br>
&gt;&gt; grow with tons of #ifdef-s over time, reducing readability and creating a mess.<br>
&gt;&gt;<br>
&gt; My point is that one or another way you have to deal with platform differences,<br>
&gt; and the way how i prefer to do it is using smalltalk code,<br>
&gt; but not .m4 files, or .cmake files, or writing a medium novel long configuration files<br>
&gt; using strange (better to say weird) scripting DSL.<br>
&gt; I can express all build process logic in smalltalk, which does not lessens the amount<br>
&gt; of work to deal with all platform nuances and dependencies etc, but at least it allows me to organize and shape it<br>
&gt; into some manageable form, which is easy to change &amp; learn.<br>
&gt;<br>
&gt;  And another difference is, that i prefer working with browser &amp; classes than<br>
&gt; with dozens of directories and files lying here and there.<br>
<br>
<br>
</div></div>I did not want to imply we have to do it my way, not at all.<br>
And you are certainly right. Smalltalk is a good way to do things.<br>
<br>
The only thing that got me thinking is,<br>
  a lot of people use tools like CMake to drive build processes, and<br>
  they know the edges of the domain very well. Building software can<br>
  be quite complex: think Platforms, compiler quirks, SDK restrictions,<br>
  cross compilations, to just name a few.<br>
   CMake (even more than autotools) is quite good at these tasks,<br>
  especially regarding the cross-platform part.<br>
If we now start to, effectively, reimplement CMake or autotools, we will<br>
run in the issues, those tools all have solved years ago. CMake even has<br>
beautiful output.<br>
<br>
I think it would take an tremendous effort to get a Build tool that<br>
(only thinking of the Squeak/Pharo VM)<br>
• can build well with different compilers (Clang/Gcc, probably Microsoft)<br>
• can handle the platform-discovery (Linux, OSX, Windows, RISC!)<br>
• can handle library discovery (finding stuff like libuuid)<br>
• can do cross-compilation and the signing-stuff (iOS, perhaps android)<br>
<br>
If we get this working, this would be amazing.<br>
I am a bit reluctant, it would be a lot of work for me…<br>
<div class="im"><br></div></blockquote><div> </div><div>hehe, do you think i felt something else when started work on trying make VM to be able to build automatically?<br></div><div>i doubt anyone can find it fun to grok through dozens of dusty old source &amp; configuration files<br>
</div><div>in attempt to put some order there.<br></div><div>i did what i did, and now we using it to build pharo. <br></div><div>And you free to use hours we spent on what we did. as well as free to not, of course.<br></div>
<div>i don&#39;t wanna advertise or convince anyone because you can just download it and see by yourself.<br> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">
<br>
<br>
&gt;<br>
&gt; But sure thing, it is a question of taste. If you prefer to maintain this:<br>
&gt; -------------------------<br>
<br>
</div>&gt; [22 lines old CMAKE]<br>
<br>
&gt; --------------------------<br>
&gt; And/or this:<br>
&gt; --------------------------<br>
<br>
&gt; [96 lines autoconf/make/whatever]<br>
<div class="im"><br>
&gt; ----------------------------<br>
&gt;<br>
&gt; instead of plain smalltalk code, it is up to you.<br>
&gt;<br>
&gt; But that&#39;s about &#39;too much&#39; for my taste.<br>
<br>
</div>I concur.<br>
<br>
My impression is, we can choose from four “evils”[1]:<br>
        1. Accept the status quo. Painful for starters with its 8+ ways<br>
           of doing essentially the same and every single one has some kind of<br>
           big drawback.<br>
        2. Use CMake completely. Painful, because we have to maintain two<br>
           bodies of knowledge, VMMaker and CMake.<br>
        3. Use cmake through CMakeVMMaker. Painful, because it can not fully<br>
           benefit from Smalltalk nor from CMake. You have always to make up your<br>
           mind whether to implement something on the Smalltalk or the CMake level<br>
        4. Have a Smalltalk-only build too. Painful, because it is going to take<br>
           a lot of time.<br>
<br>
I can accept any of them, but the first :)<br>
2. and 3. have the benefits that they are already there, to certain degrees.<br>
(2. only in the Unix-vm part, done by Ian, 3. currently only used by the Pharo<br>
 community)<br>
<br>
How shall we as the VM community[2] decide?<br>
<br>
Best<br>
        -Tobias<br>
<br>
[1] not really evil, only each painful to a certain degree<br>
[2] Who are we actually?<br>
    • The Pharo and Squeak people,<br>
    • The Cuis people<br>
    • The Newspeak People<br>
    • The CogVM people<br>
    • Whom am I missing?<br>
<br>
<br>
<br><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Best regards,<br>Igor Stasenko.
</div></div>