<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Sorry to be late responding. Maybe I'm too late, but anyway...<br>
<br>
<br>
gettimothy wrote:
<blockquote
 cite="mid:14643603cf4.568287443112944638.-1808832808711117521@zoho.com"
 type="cite">
  <pre wrap=""> </pre>
  <br>
  <hr size="4" width="90%"><br>
  <meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
  <div
 style="font-size: 10pt; font-family: Verdana,Arial,Helvetica,sans-serif;">Hi
Eliot,<br>
  <br>
I have condensed your email into somewhat of a bullet points version. I
do have one concern and that is newbie-end-user ease of use.<br>
  <em>I list my concerns and comments in italics</em> among your points.<br>
  <br>
  <br>
  <br>
  <blockquote
 style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);">
    <div> There are three VM configurations.  <br>
Assert configurations include assert code with -01 optimization <br>
Debug configurations include assert code with no optimization.<br>
Production has asserts removed by the preprocessor.<br>
    <br>
a and ast are prefixes for assert. <br>
d and dbg are prefixes for debug.<br>
t suffix is for "threaded" and means that these VMs have the threaded
heartbeat, with the others using the problematic itimer heartbeat. <br>
mt stands for multi-threaded, the experimental non-blocking FFI VM. <br>
    <br>
You much prefer a top level build.OS/WordSize/Processor directory with
a HowToBuild file that handles make, make debug and make assert builds.<br>
    <br>
build.win32x86<br>
build.macosx32x86<br>
build.linux32x86</div>
  </blockquote>
  <em>Sounds good. <br>
  <br>
I propose a build.linux32x86_64 to handle the special case of building
agianst 32 bit compat libs on debian/slackware.  Yes, it can be done in
the x86 directory, but consider the newbie end user who wants to get up
and running hacking vm's quickly.<br>
  <br>
  <br>
I also propose a parallel cmake_build.OS/WordSizeProcessor tree to
minimize confusion and traps while we get our heads around and learn
the idiosyncracies of CMake.<br>
  <br>
cmake_build.win32x86<br>
cmake_build.macosx32x86<br>
cmake_build.linux32x86<br>
cmake_build.linux32x86_64<br>
  </em></div>
</blockquote>
<br>
I find the repetition pattern of the 'x' in the name ('xNNxNN') a bit
hard to read.  Would you consider putting a period separator between
the OS/WordSize/Processor fields, or maybe just before the Processor. 
I find these easier to read...<br>
<br>
cmake_build.win32.x86<br>
cmake_build.macosx32.x86<br>
cmake_build.linux32.x86<br>
cmake_build.linux32.x86_64   <br>
<br>
cmake_build.x86.win32<br>
cmake_build.x86.macosx32<br>
cmake_build.x86.linux32<br>
cmake_build.x86.linux32_64<br>
<br>
I think the last one works well since the 32_64 puts the different word
sizes adjacent, rather than being split by the Processor<br>
...but no big deal you've proceeded too far to consider this.<br>
<br>
cheers -ben<br>
<blockquote
 cite="mid:14643603cf4.568287443112944638.-1808832808711117521@zoho.com"
 type="cite">
  <div
 style="font-size: 10pt; font-family: Verdana,Arial,Helvetica,sans-serif;"><em><br>
I will also re-name the CMakeVMMakerSqueak XYZConf classes to
SqueakBuildWin32x86Conf SqueakBuildMacOsX32x86Conf etc so there is a
one-to-one corresponsdence between the<br>
default configuration and its directory. (Customizations can be
subclassed off of these defaults and routed whereever by the developer
if needed)<br>
  </em><br>
  <br>
  <br>
  <blockquote
 style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);">
    <div> If CMake makes it possible and convenient to create the three
"pad" builds in build.linux32x86 then fine. <br>
e.g. on mac there's a CoreVM.xcode alongside a CoreMTVM.xcode and they
create Assert.app AssertMT.app et al<br>
on cygwin the one makefile cygwinbuild/Makefile creates build buildmt
builddbg et al. <br>
    </div>
  </blockquote>
  <br>
  <br>
  <div><em>I don't know. The current pharo/squeak structure just
specifies where the build directory is. </em></div>
  <div><em>Different configurations overwrite what is in the existing
directory.<br>
  </em></div>
  <em>I Did a quick search, I ran into this: <a moz-do-not-send="true"
 href="http://stackoverflow.com/questions/7724569/debug-vs-release-in-cmake"
 target="_blank">http://stackoverflow.com/questions/7724569/debug-vs-release-in-cmake</a>So,
I guess the answer is "yes" but it has not been implemented.<br>
I will try.<br>
  </em><br>
  <br>
  <br>
  <blockquote
 style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);">
    <div>Then in each non-autoconf build directory have a
lang/vmarch/mmarch directory <br>
lang is either squeak or newspeak, <br>
vmarch is either stack, cog or sista, and <br>
mmarch is either v3 (the current ObjectMemory) or spur. Hence:<br>
[squeak|newspeak][stack |cog | sista |][v3 | spur] [2!]x[3!]x[2!] = 24
directories<br>
squeak.stack.v3<br>
squeak.stack.spur<br>
squeak.cog.v3<br>
squeak.cog.spur<br>
squeak.sista.v3<br>
squeak.sista.spur<br>
newspeak.stack.v3<br>
newspeak.stack.spur<br>
newspeak.cog.v3<br>
newspeak.cog.spur<br>
newspeak.sista.v3<br>
newspeak.sista.spur<br>
    <br>
Then there would be a single HowToBuild in each top-level build dir
explaining how to build on that platform.<br>
    <br>
    <br>
    <div>Again on win32 under cygwin and on mac os x under xcode it is
easy to keep the non-mt and mt builds at the same level, sharing a
directory.</div>
    <div><br>
    </div>
    </div>
  </blockquote>
  <br>
  <div><em>I am a bit confused here. Are these top-level directories at
the same level as build.os.wordsize.platform? </em></div>
  <div><em>i.e:</em><br>
  </div>
  <br>
  <br>
  <blockquote
 style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);">
    <div> <br>
build.linux32x86/<br>
...<br>
squeak.stack.v3<br>
...</div>
  </blockquote>
  <br>
  <br>
  <em>or are they sub-directories of it? i.e</em><br>
  <br>
  <br>
  <blockquote
 style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);">
    <div> ...<br>
build.linux32x86/squeak.stack.v3<br>
...<br>
    <br>
    </div>
  </blockquote>
  <br>
  <br>
  <div id="1"><br>
Cheers.</div>
  <div><br>
  </div>
  <div>tty</div>
  </div>
</blockquote>
<br>
</body>
</html>