[Vm-dev] [commit][2981] Fix the defines to exclude VM labels on win32.

commits at squeakvm.org commits at squeakvm.org
Wed Jun 11 15:25:48 UTC 2014


Revision: 2981
Author:   eliot
Date:     2014-06-11 08:25:46 -0700 (Wed, 11 Jun 2014)
Log Message:
-----------
Fix the defines to exclude VM labels on win32.  Add HowToBuild files for the
flat win32 and macos32 builds and nuke theobsolete ones there-in.  Add missing
rc and ico files to some win32 newspeak builds.  Roll the SCCS version, as I
hope this is (finally!) ready for VM builds.

Modified Paths:
--------------
    branches/Cog/build.win32x86/newspeak.cog.spur/Makefile
    branches/Cog/build.win32x86/newspeak.cog.v3/Makefile
    branches/Cog/build.win32x86/newspeak.stack.spur/Makefile
    branches/Cog/build.win32x86/newspeak.stack.v3/Makefile
    branches/Cog/build.win32x86/squeak.cog.spur/Makefile
    branches/Cog/build.win32x86/squeak.cog.v3/Makefile
    branches/Cog/build.win32x86/squeak.stack.spur/Makefile
    branches/Cog/build.win32x86/squeak.stack.v3/Makefile

Added Paths:
-----------
    branches/Cog/build.macos32x86/HowToBuild
    branches/Cog/build.win32x86/HowToBuild
    branches/Cog/build.win32x86/newspeak.cog.spur/nsvm.def.in
    branches/Cog/build.win32x86/newspeak.cog.spur/nsvm.ico
    branches/Cog/build.win32x86/newspeak.stack.spur/nsvm.def.in
    branches/Cog/build.win32x86/newspeak.stack.spur/nsvm.ico

Removed Paths:
-------------
    branches/Cog/build.macos32x86/newspeak.cog.spur/HowToBuild
    branches/Cog/build.macos32x86/newspeak.cog.v3/HowToBuild
    branches/Cog/build.macos32x86/newspeak.stack.spur/HowToBuild
    branches/Cog/build.macos32x86/newspeak.stack.v3/HowToBuild
    branches/Cog/build.macos32x86/squeak.cog.spur/HowToBuild
    branches/Cog/build.macos32x86/squeak.cog.v3/HowToBuild
    branches/Cog/build.macos32x86/squeak.sista.spur/HowToBuild
    branches/Cog/build.macos32x86/squeak.sista.v3/HowToBuild
    branches/Cog/build.macos32x86/squeak.stack.spur/HowToBuild
    branches/Cog/build.macos32x86/squeak.stack.v3/HowToBuild
    branches/Cog/build.win32x86/newspeak.cog.v3/HowToBuild
    branches/Cog/build.win32x86/newspeak.stack.v3/HowToBuild
    branches/Cog/build.win32x86/squeak.cog.spur/HowToBuild
    branches/Cog/build.win32x86/squeak.cog.v3/HowToBuild
    branches/Cog/build.win32x86/squeak.stack.spur/HowToBuild
    branches/Cog/build.win32x86/squeak.stack.v3/HowToBuild

Property Changed:
----------------
    branches/Cog/platforms/Cross/vm/sqSCCSVersion.h

Added: branches/Cog/build.macos32x86/HowToBuild
===================================================================
--- branches/Cog/build.macos32x86/HowToBuild	                        (rev 0)
+++ branches/Cog/build.macos32x86/HowToBuild	2014-06-11 15:25:46 UTC (rev 2981)
@@ -0,0 +1,124 @@
+How To Build On Mac OS X
+---------------------
+
+
+Contents:
+	- Overview
+	- Checking out sources to build out-of-the-box
+	- Building out of the box
+	- Building the Bochs Support Libraries
+	- Optimization level and gcc version (please read!)
+
+
+Overview
+--------
+The "Cog" VM comes in a bewildering variety of forms.  The first distinction
+is between Squeak/Croquet VMs that run Squeak, Pharo, Cuis, Croquet images
+and their ilk, and between Newspeak VMs that run Newspeak.
+
+Another distinction is between Stack, Cog and Sista VMs.  Stack VMs are those
+with context-to-stack mapping that optimise message sending by keeping method
+activations on a stack instead of in contexts.  These are pure interpreters but
+significantly faster than the standard context-based Interpreter VM.  Cog VMs
+add a JIT to the mix, compiling methods used more than once to maxchine code on
+the fly.  Sista VMs, as yet unrealised and in development, add support for
+adaptive optimization that does speculative inlining at the bytecode-to-bytecode
+level.  These are targeted for release in 2015.
+
+Another distinction is between "v3" VMs and Spur VMs.  "v3" is the original
+object representation for Squeak as described in the back-to-the-future paper.
+Spur, as described on the www.mirandabanda.org blog, is a faster object
+representation which uses generation scavenging, lazy forwarding for fast
+become, and a single object header format common to 32 and 64 bit versions.
+
+Another distinction is between normal single-threaded VMs that schedule "green"
+Smalltalk processes above a single-threaded VM, and "multi-threaded" VMs that
+share the VM between any number of native threads such that only one native
+thread owns the VM at any one time, switching between threads on FFI calls and
+callbacks or on Smalltalk process switches when Smalltalk processes are owned
+by threads.  This multi-threaded support is as yet experimental.
+
+The final distinction is between production, assert and debug VMs.  Production
+VMs are fully optimized, although they may include debugging symbols, and as
+their name implies are for use in production.  Assert and debug VMs include
+many assert checks that are disabled in the production VMs.  These asserts are
+very helpful in debugging VM problems but significantly impact performance.
+The difference between assert and debug VMs is that assert VMs are compiled
+with moderate optimization, which improves the performance of the asserts,
+whereas debug VMs are compiled with no optimization at all, providing maximum
+debuggability with minimum performance.
+
+This directory tree provides build directories for some of this matrix.  For
+example, squeak.cog.v3 contains a build directory for Smalltalk Cog VMs using
+the old object representation, newspeak.stack.spur contains a build directory
+for Newspeak Stack VMs using the Spur object representation.  Build as desired.
+
+
+Checking out sources to build out-of-the-box
+--------------------------------------------
+Check-out at least the relevant platform sources, vm and plugin sources,
+processor sources and the relevant build directories
+     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
+     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
+     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/build.macos32x86
+     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src etc
+		(see section "VM source directories" in the root README)
+
+
+Building out of the box
+-----------------------
+0. As of this writing (June 2014) this Mac build system builds only on 10.6.x
+(and probably 10.5.x) using the old Carbon libraries.  I plan to build on
+Mavericks using John McIntosh's Cocoa platform support files soon.
+
+1. Install the tools (xcode etc);  the CoreVM.xcodeproj is set-up to build
+   using gcc 4.2 but you can optionally install the Intel C++ compiler 11.1
+   and change the compilerSpec in CoreVM.xcodeproj/project.pbxproj to get
+   better performance.
+
+2. Either disable the building of the Bochs plugin (see each makevm file,
+disabling the lines beginning "# Build the BochsIA32Plugin") or build the
+Bochs support libraries (see Building the Bochs Support Libraries below).
+
+3. cd to the VM configuration of your choice and execute
+	./mvm -A
+This will build Fast.app, Debug.app and Assert.app applivations containing the
+three basic VM configurations.  If the configuration includes the multi-threaded
+VM you can use mvm -AS to make the single-threaded VMs, mvm -AT to make the
+multi-threadeds in FastMT.app et al, and mvm -A to make them all.  mvm -d will
+make the Debug.app VM, etc.  mvm -? provides the gory details.
+
+
+Each build directory contains three files
+	plugins.int
+	plugins.ext
+On other platforms editing these and making is all one needs to do to change the
+set of plugins.  Alas on xcode one also has to edit the relevant xcode projects
+to add and remove source files.  If you're brave enough to contemplate this
+you're brave enough to figure out how to do this yourself.
+
+
+Building the Bochs Support Libraries
+------------------------------------
+If you want to get the Cog VM simulator working you'll need to build the
+BochsIA32Plugin and to build that you'll need to first build bochs.  First
+check-out the processor simulator source tree containing Bochs:
+     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
+Then build libraries macbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
+  $ cd ../processors/IA32/macbochs
+  $ ./conf.COG
+  $ ../bochs/makeem
+
+
+Optimization level and gcc version
+----------------------------------
+There are issues with gcc version > 4.2.1.  Any of the following flags may break the build at -O2:
+-ftree-pre
+-fpartial-inlining
+-fcaller-saves
+
+They're turned off in the xcode files provided.
+
+
+Eliot Miranda
+June 2014

Deleted: branches/Cog/build.macos32x86/newspeak.cog.spur/HowToBuild
===================================================================
--- branches/Cog/build.macos32x86/newspeak.cog.spur/HowToBuild	2014-06-11 14:02:34 UTC (rev 2980)
+++ branches/Cog/build.macos32x86/newspeak.cog.spur/HowToBuild	2014-06-11 15:25:46 UTC (rev 2981)
@@ -1,127 +0,0 @@
-How To Build On Linux
----------------------
-
-Contents:
-	- Checking out sources
-	- How to build the Cog Croquet VM on Unix
-	- Testing an external plugin has completely linked
-	- Compiling in 32-bit mode on a 64-bit linux
-	- Testing an external plugin has completely linked
-	- N.B. Please read: Optimization level and gcc version
-
-
-Checking out sources
--------------------------------
-To generate a VM check-out http://www.squeakvm.org/svn/squeak/branches/Cog/image
-which contains
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.changes
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.image
-Start up VMMaker-Squeak4.1.image.  In it is a workspace containing a doit that
-uses something like generate:and:to:platformDir:excluding:.  Doit.
-
-
-How to build the Cog Croquet VM on Unix
--------------------------------
-1. Install the tools (gcc, X11-devel, etc (e.g. libpng, libX11 & libxt source))
-2. Check out the following sources from svn (if you haven't already - if you're
-   reading this in unixbuild its likely you've already got the sources)
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/unixbuild
-3. Open a shell, cd into the unixbuild/bld directory and execute
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-     make install prefix=WhereYouWantTheVmToGo
-
-	N.B. If you're on a 64-bit linux read 3e below!!
-	N.B. On Ubuntu *do not* supply "LIBS=-lpthread", i.e. use
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0"
-
-4. At the end of it you'll get a new VM in the path provided via -prefix
-
-N.B. The plugin set is defined by plugins.ext and plugins.int in the build dir.
-
-
-3a. For an assert-enabled VM do
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O1 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-
-3b. For a full debug VM do
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g3 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=1" LIBS=-lpthread
-
-3c. For a multi-threaded VM open a shell and cd to the mtbld directory.  Then
-   execute
-     ../../platforms/unix/config/configure INTERP=cointerpmt --without-npsqueak CFLAGS="-g -O2 -msse2 -DNDEBUG -DCOGMTVM=1 -DDEBUGVM=0 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1" LIBS=-lpthread
-     make squeakmt
-     make installmt prefix=WhereYouWantTheVmToGo
-
-N.B.  As of early 2010 the linux pthreads implementation doesn't appear to
-provide a way of setting priorities for the default thread scheduling policy
-SCHED_OTHER (unlike e.g. Mac OS X) and doesn't appear to allow changing the
-policy to one that does (e.g. SCHED_RR).  So for now we use the itimer
-scheme.  See platforms/unix/vm/sqUnixHeartbeat.c
-
-3d. If you want to get the Cog VM simulator working you'll need to build the
-BochsIA32Plugin/BochsIA32Plugin.xcodeproj project and to build that you'll
-need to first build bochs.  First check-out the processor simulator source tree
-containing Bochs:
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
-Then build libraries linuxbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
-  $ cd ROOT/processors/IA32/linuxbochs
-  $ ./conf.COG
-  $ ../bochs/makeem
-and build the plugin via
-  $ cd ROOT/unixbuild/bld/BochsIA32Plugin
-  $ make
-
-3e. (see Compiling in 32-bit mode on a 64-bit linux below)
-If you're building the VM on a 64-bit OS, you'll need a compiler which can
-compile and link to 32-bit binaries. On most Linuxes the gcc-multilib package
-provides the 32-bit compiler and the ia32-libs provides the 32-bit libraries.
-You'll also have to add the -m32 switch to all gcc & g++ invocations.  The
-easiest way to do this is to add CC="gcc -m32" & CXX="g++ -m32" to the configure
-script:
-     ../../platforms/unix/config/configure CC="gcc -m32" CXX="g++ -m32" --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-To run a 32-bit VM on a 64-bit OS, you'll also need the 32-bit libraries
-provided by the ia32-libs package.
-
-Compiling in 32-bit mode on a 64-bit linux
--------------------------------
-Follow 3e. above.  Also note that according to Paul DeBruicker the following
-packages need to be installed to compile in 32-bt mode on 64-bit ubuntu.  YMMV.
-
-build-essential
-lib32asound2-dev
-libgl1-mesa-dev
-libglu1-mesa-dev
-ia32-libs
-gcc-multilib
-g++multilib
-
-In addition phil at highoctane.be installed libc6dev-i386.
-
-This in itself may not be enough, but persistence will pay off.  See for example
-http://permalink.gmane.org/gmane.comp.lang.smalltalk.pharo.devel/75198.
-
-
-Testing an external plugin has completely linked
--------------------------------
-You may find that an external plugin compiles and links but does not load.
-This is usually because it contans undefined symbols.  To find undefined
-symbols, remake the plugin, capturing the link step and then supply
-	-Wl,--warn-unresolved-symbols -Wl,--no-allow-shlib-undefined
-when manually repeating the link command
-
-
-Optimization level and gcc version
-----------------------------------
-There are issues with gcc version > 4.2.1.  Any of the following flags may break the build at -O2:
--ftree-pre
--fpartial-inlining
--fcaller-saves
-
-So turn them off.  e.g.
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -fno-caller-saves -fno-partial-inlining -fno-tree-pre -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-
-Clang
------
-So far Clang only works at -O1.  So it may also be subject to some of the same
-issues as gcc.  Please report back successes with clang, especially at -O2.

Deleted: branches/Cog/build.macos32x86/newspeak.cog.v3/HowToBuild
===================================================================
--- branches/Cog/build.macos32x86/newspeak.cog.v3/HowToBuild	2014-06-11 14:02:34 UTC (rev 2980)
+++ branches/Cog/build.macos32x86/newspeak.cog.v3/HowToBuild	2014-06-11 15:25:46 UTC (rev 2981)
@@ -1,127 +0,0 @@
-How To Build On Linux
----------------------
-
-Contents:
-	- Checking out sources
-	- How to build the Cog Croquet VM on Unix
-	- Testing an external plugin has completely linked
-	- Compiling in 32-bit mode on a 64-bit linux
-	- Testing an external plugin has completely linked
-	- N.B. Please read: Optimization level and gcc version
-
-
-Checking out sources
--------------------------------
-To generate a VM check-out http://www.squeakvm.org/svn/squeak/branches/Cog/image
-which contains
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.changes
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.image
-Start up VMMaker-Squeak4.1.image.  In it is a workspace containing a doit that
-uses something like generate:and:to:platformDir:excluding:.  Doit.
-
-
-How to build the Cog Croquet VM on Unix
--------------------------------
-1. Install the tools (gcc, X11-devel, etc (e.g. libpng, libX11 & libxt source))
-2. Check out the following sources from svn (if you haven't already - if you're
-   reading this in unixbuild its likely you've already got the sources)
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/unixbuild
-3. Open a shell, cd into the unixbuild/bld directory and execute
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-     make install prefix=WhereYouWantTheVmToGo
-
-	N.B. If you're on a 64-bit linux read 3e below!!
-	N.B. On Ubuntu *do not* supply "LIBS=-lpthread", i.e. use
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0"
-
-4. At the end of it you'll get a new VM in the path provided via -prefix
-
-N.B. The plugin set is defined by plugins.ext and plugins.int in the build dir.
-
-
-3a. For an assert-enabled VM do
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O1 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-
-3b. For a full debug VM do
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g3 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=1" LIBS=-lpthread
-
-3c. For a multi-threaded VM open a shell and cd to the mtbld directory.  Then
-   execute
-     ../../platforms/unix/config/configure INTERP=cointerpmt --without-npsqueak CFLAGS="-g -O2 -msse2 -DNDEBUG -DCOGMTVM=1 -DDEBUGVM=0 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1" LIBS=-lpthread
-     make squeakmt
-     make installmt prefix=WhereYouWantTheVmToGo
-
-N.B.  As of early 2010 the linux pthreads implementation doesn't appear to
-provide a way of setting priorities for the default thread scheduling policy
-SCHED_OTHER (unlike e.g. Mac OS X) and doesn't appear to allow changing the
-policy to one that does (e.g. SCHED_RR).  So for now we use the itimer
-scheme.  See platforms/unix/vm/sqUnixHeartbeat.c
-
-3d. If you want to get the Cog VM simulator working you'll need to build the
-BochsIA32Plugin/BochsIA32Plugin.xcodeproj project and to build that you'll
-need to first build bochs.  First check-out the processor simulator source tree
-containing Bochs:
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
-Then build libraries linuxbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
-  $ cd ROOT/processors/IA32/linuxbochs
-  $ ./conf.COG
-  $ ../bochs/makeem
-and build the plugin via
-  $ cd ROOT/unixbuild/bld/BochsIA32Plugin
-  $ make
-
-3e. (see Compiling in 32-bit mode on a 64-bit linux below)
-If you're building the VM on a 64-bit OS, you'll need a compiler which can
-compile and link to 32-bit binaries. On most Linuxes the gcc-multilib package
-provides the 32-bit compiler and the ia32-libs provides the 32-bit libraries.
-You'll also have to add the -m32 switch to all gcc & g++ invocations.  The
-easiest way to do this is to add CC="gcc -m32" & CXX="g++ -m32" to the configure
-script:
-     ../../platforms/unix/config/configure CC="gcc -m32" CXX="g++ -m32" --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-To run a 32-bit VM on a 64-bit OS, you'll also need the 32-bit libraries
-provided by the ia32-libs package.
-
-Compiling in 32-bit mode on a 64-bit linux
--------------------------------
-Follow 3e. above.  Also note that according to Paul DeBruicker the following
-packages need to be installed to compile in 32-bt mode on 64-bit ubuntu.  YMMV.
-
-build-essential
-lib32asound2-dev
-libgl1-mesa-dev
-libglu1-mesa-dev
-ia32-libs
-gcc-multilib
-g++multilib
-
-In addition phil at highoctane.be installed libc6dev-i386.
-
-This in itself may not be enough, but persistence will pay off.  See for example
-http://permalink.gmane.org/gmane.comp.lang.smalltalk.pharo.devel/75198.
-
-
-Testing an external plugin has completely linked
--------------------------------
-You may find that an external plugin compiles and links but does not load.
-This is usually because it contans undefined symbols.  To find undefined
-symbols, remake the plugin, capturing the link step and then supply
-	-Wl,--warn-unresolved-symbols -Wl,--no-allow-shlib-undefined
-when manually repeating the link command
-
-
-Optimization level and gcc version
-----------------------------------
-There are issues with gcc version > 4.2.1.  Any of the following flags may break the build at -O2:
--ftree-pre
--fpartial-inlining
--fcaller-saves
-
-So turn them off.  e.g.
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -fno-caller-saves -fno-partial-inlining -fno-tree-pre -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-
-Clang
------
-So far Clang only works at -O1.  So it may also be subject to some of the same
-issues as gcc.  Please report back successes with clang, especially at -O2.

Deleted: branches/Cog/build.macos32x86/newspeak.stack.spur/HowToBuild
===================================================================
--- branches/Cog/build.macos32x86/newspeak.stack.spur/HowToBuild	2014-06-11 14:02:34 UTC (rev 2980)
+++ branches/Cog/build.macos32x86/newspeak.stack.spur/HowToBuild	2014-06-11 15:25:46 UTC (rev 2981)
@@ -1,29 +0,0 @@
-To generate a VM check-out http://www.squeakvm.org/svn/squeak/branches/Cog/image
-which contains
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.changes
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.image
-
-How to Build a Croquet Cog Stack VM on Mac OS X
---------------------------------
-1. Install the tools (xcode etc);  the CoreVM.xcodeproj is set-up to build
-   using gcc 4.2 but you can optionally install the Intel C++ compiler 11.1
-   and change the compilerSpec in CoreVM.xcodeproj/project.pbxproj to get
-   better performance.
-
-2. Check out the following sources from svn (if you haven't already - if you're
-   reading this in macbuild its likely you've already got the sources)
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/macbuild
-
-3. Open a shell, cd into ROOT/macbuild directory and execute either
-     ./makevm
-  or
-     mvm -A
-  mvm is a convenience wrapper around makevm that will build different versions
-  (DeploymentSymbols, Debug, etc) and collect compiler output to log files.
-
-4. At the end of this process you should have a brand new Croquet.app in the
-   macbuild folder (or Fast.app Assert.app and Debug.app if you've used mvm).
-
-N.B. The plugin set is defined by plugins.ext and plugins.int in the build dir.

Deleted: branches/Cog/build.macos32x86/newspeak.stack.v3/HowToBuild
===================================================================
--- branches/Cog/build.macos32x86/newspeak.stack.v3/HowToBuild	2014-06-11 14:02:34 UTC (rev 2980)
+++ branches/Cog/build.macos32x86/newspeak.stack.v3/HowToBuild	2014-06-11 15:25:46 UTC (rev 2981)
@@ -1,127 +0,0 @@
-How To Build On Linux
----------------------
-
-Contents:
-	- Checking out sources
-	- How to build the Cog Croquet VM on Unix
-	- Testing an external plugin has completely linked
-	- Compiling in 32-bit mode on a 64-bit linux
-	- Testing an external plugin has completely linked
-	- N.B. Please read: Optimization level and gcc version
-
-
-Checking out sources
--------------------------------
-To generate a VM check-out http://www.squeakvm.org/svn/squeak/branches/Cog/image
-which contains
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.changes
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.image
-Start up VMMaker-Squeak4.1.image.  In it is a workspace containing a doit that
-uses something like generate:and:to:platformDir:excluding:.  Doit.
-
-
-How to build the Cog Croquet VM on Unix
--------------------------------
-1. Install the tools (gcc, X11-devel, etc (e.g. libpng, libX11 & libxt source))
-2. Check out the following sources from svn (if you haven't already - if you're
-   reading this in unixbuild its likely you've already got the sources)
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/unixbuild
-3. Open a shell, cd into the unixbuild/bld directory and execute
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-     make install prefix=WhereYouWantTheVmToGo
-
-	N.B. If you're on a 64-bit linux read 3e below!!
-	N.B. On Ubuntu *do not* supply "LIBS=-lpthread", i.e. use
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0"
-
-4. At the end of it you'll get a new VM in the path provided via -prefix
-
-N.B. The plugin set is defined by plugins.ext and plugins.int in the build dir.
-
-
-3a. For an assert-enabled VM do
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O1 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-
-3b. For a full debug VM do
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g3 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=1" LIBS=-lpthread
-
-3c. For a multi-threaded VM open a shell and cd to the mtbld directory.  Then
-   execute
-     ../../platforms/unix/config/configure INTERP=cointerpmt --without-npsqueak CFLAGS="-g -O2 -msse2 -DNDEBUG -DCOGMTVM=1 -DDEBUGVM=0 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1" LIBS=-lpthread
-     make squeakmt
-     make installmt prefix=WhereYouWantTheVmToGo
-
-N.B.  As of early 2010 the linux pthreads implementation doesn't appear to
-provide a way of setting priorities for the default thread scheduling policy
-SCHED_OTHER (unlike e.g. Mac OS X) and doesn't appear to allow changing the
-policy to one that does (e.g. SCHED_RR).  So for now we use the itimer
-scheme.  See platforms/unix/vm/sqUnixHeartbeat.c
-
-3d. If you want to get the Cog VM simulator working you'll need to build the
-BochsIA32Plugin/BochsIA32Plugin.xcodeproj project and to build that you'll
-need to first build bochs.  First check-out the processor simulator source tree
-containing Bochs:
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
-Then build libraries linuxbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
-  $ cd ROOT/processors/IA32/linuxbochs
-  $ ./conf.COG
-  $ ../bochs/makeem
-and build the plugin via
-  $ cd ROOT/unixbuild/bld/BochsIA32Plugin
-  $ make
-
-3e. (see Compiling in 32-bit mode on a 64-bit linux below)
-If you're building the VM on a 64-bit OS, you'll need a compiler which can
-compile and link to 32-bit binaries. On most Linuxes the gcc-multilib package
-provides the 32-bit compiler and the ia32-libs provides the 32-bit libraries.
-You'll also have to add the -m32 switch to all gcc & g++ invocations.  The
-easiest way to do this is to add CC="gcc -m32" & CXX="g++ -m32" to the configure
-script:
-     ../../platforms/unix/config/configure CC="gcc -m32" CXX="g++ -m32" --without-npsqueak CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-To run a 32-bit VM on a 64-bit OS, you'll also need the 32-bit libraries
-provided by the ia32-libs package.
-
-Compiling in 32-bit mode on a 64-bit linux
--------------------------------
-Follow 3e. above.  Also note that according to Paul DeBruicker the following
-packages need to be installed to compile in 32-bt mode on 64-bit ubuntu.  YMMV.
-
-build-essential
-lib32asound2-dev
-libgl1-mesa-dev
-libglu1-mesa-dev
-ia32-libs
-gcc-multilib
-g++multilib
-
-In addition phil at highoctane.be installed libc6dev-i386.
-
-This in itself may not be enough, but persistence will pay off.  See for example
-http://permalink.gmane.org/gmane.comp.lang.smalltalk.pharo.devel/75198.
-
-
-Testing an external plugin has completely linked
--------------------------------
-You may find that an external plugin compiles and links but does not load.
-This is usually because it contans undefined symbols.  To find undefined
-symbols, remake the plugin, capturing the link step and then supply
-	-Wl,--warn-unresolved-symbols -Wl,--no-allow-shlib-undefined
-when manually repeating the link command
-
-
-Optimization level and gcc version
-----------------------------------
-There are issues with gcc version > 4.2.1.  Any of the following flags may break the build at -O2:
--ftree-pre
--fpartial-inlining
--fcaller-saves
-
-So turn them off.  e.g.
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -fno-caller-saves -fno-partial-inlining -fno-tree-pre -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-
-Clang
------
-So far Clang only works at -O1.  So it may also be subject to some of the same
-issues as gcc.  Please report back successes with clang, especially at -O2.

Deleted: branches/Cog/build.macos32x86/squeak.cog.spur/HowToBuild
===================================================================
--- branches/Cog/build.macos32x86/squeak.cog.spur/HowToBuild	2014-06-11 14:02:34 UTC (rev 2980)
+++ branches/Cog/build.macos32x86/squeak.cog.spur/HowToBuild	2014-06-11 15:25:46 UTC (rev 2981)
@@ -1,58 +0,0 @@
-To generate a VM check-out http://www.squeakvm.org/svn/squeak/branches/Cog/image
-which contains
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.changes
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.image
-
-How to Build the Squeak Cog VM on Mac OS X
---------------------------------
-1. Install the tools (xcode etc);  the CoreVM.xcodeproj is set-up to build
-   using gcc 4.2 but you can optionally install the Intel C++ compiler 11.1
-   and change the compilerSpec in CoreVM.xcodeproj/project.pbxproj to get
-   better performance.
-
-2. Check out the following sources from svn (if you haven't already - if you're
-   reading this in macbuild its likely you've already got the sources)
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/macbuild
-
-3. Open a shell, cd into ROOT/macbuild directory and execute either
-     ./makevm
-  or
-     mvm -A
-  mvm is a convenience wrapper around makevm that will build different versions
-  (DeploymentSymbols, Debug, etc) and collect compiler output to log files.
-
-3a. If you want to get the Cog VM simulator working you'll need to build the
-BochsIA32Plugin/BochsIA32Plugin.xcodeproj project and to build that you'll
-need to first build bochs.  First check-out the processor simulator source tree
-containing Bochs:
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
-Then build the libraries macbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
-  $ cd ROOT/processors/IA32/macbochs
-  $ ./conf.COG
-  $ ../bochs/makeem
-Then build the plugin:
-  $ cd ROOT/macbuild/BochsIA32Plugin
-  $ xcodebuild
-
-4. At the end of this process you should have a brand new Croquet.app in the
-   macbuild folder (or Fast.app Assert.app and Debug.app if you've used mvm).
-
-N.B. The plugin set is defined by plugins.ext and plugins.int in the build dir.
-
-
-Optimization level and gcc version
-----------------------------------
-There are issues with gcc version > 4.2.1.  Any of the following flags may break the build at -O2:
--ftree-pre
--fpartial-inlining
--fcaller-saves
-
-So turn them off.  e.g.
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -fno-caller-saves -fno-partial-inlining -fno-tree-pre -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-
-Clang
------
-So far Clang only works at -O1.  So it may also be subject to some of the same
-issues as gcc.  Please report back successes with clang, especially at -O2.

Deleted: branches/Cog/build.macos32x86/squeak.cog.v3/HowToBuild
===================================================================
--- branches/Cog/build.macos32x86/squeak.cog.v3/HowToBuild	2014-06-11 14:02:34 UTC (rev 2980)
+++ branches/Cog/build.macos32x86/squeak.cog.v3/HowToBuild	2014-06-11 15:25:46 UTC (rev 2981)
@@ -1,58 +0,0 @@
-To generate a VM check-out http://www.squeakvm.org/svn/squeak/branches/Cog/image
-which contains
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.changes
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.image
-
-How to Build the Squeak Cog VM on Mac OS X
---------------------------------
-1. Install the tools (xcode etc);  the CoreVM.xcodeproj is set-up to build
-   using gcc 4.2 but you can optionally install the Intel C++ compiler 11.1
-   and change the compilerSpec in CoreVM.xcodeproj/project.pbxproj to get
-   better performance.
-
-2. Check out the following sources from svn (if you haven't already - if you're
-   reading this in macbuild its likely you've already got the sources)
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/macbuild
-
-3. Open a shell, cd into ROOT/macbuild directory and execute either
-     ./makevm
-  or
-     mvm -A
-  mvm is a convenience wrapper around makevm that will build different versions
-  (DeploymentSymbols, Debug, etc) and collect compiler output to log files.
-
-3a. If you want to get the Cog VM simulator working you'll need to build the
-BochsIA32Plugin/BochsIA32Plugin.xcodeproj project and to build that you'll
-need to first build bochs.  First check-out the processor simulator source tree
-containing Bochs:
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
-Then build the libraries macbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
-  $ cd ROOT/processors/IA32/macbochs
-  $ ./conf.COG
-  $ ../bochs/makeem
-Then build the plugin:
-  $ cd ROOT/macbuild/BochsIA32Plugin
-  $ xcodebuild
-
-4. At the end of this process you should have a brand new Croquet.app in the
-   macbuild folder (or Fast.app Assert.app and Debug.app if you've used mvm).
-
-N.B. The plugin set is defined by plugins.ext and plugins.int in the build dir.
-
-
-Optimization level and gcc version
-----------------------------------
-There are issues with gcc version > 4.2.1.  Any of the following flags may break the build at -O2:
--ftree-pre
--fpartial-inlining
--fcaller-saves
-
-So turn them off.  e.g.
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -fno-caller-saves -fno-partial-inlining -fno-tree-pre -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-
-Clang
------
-So far Clang only works at -O1.  So it may also be subject to some of the same
-issues as gcc.  Please report back successes with clang, especially at -O2.

Deleted: branches/Cog/build.macos32x86/squeak.sista.spur/HowToBuild
===================================================================
--- branches/Cog/build.macos32x86/squeak.sista.spur/HowToBuild	2014-06-11 14:02:34 UTC (rev 2980)
+++ branches/Cog/build.macos32x86/squeak.sista.spur/HowToBuild	2014-06-11 15:25:46 UTC (rev 2981)
@@ -1,58 +0,0 @@
-To generate a VM check-out http://www.squeakvm.org/svn/squeak/branches/Cog/image
-which contains
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.changes
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.image
-
-How to Build the Squeak Cog VM on Mac OS X
---------------------------------
-1. Install the tools (xcode etc);  the CoreVM.xcodeproj is set-up to build
-   using gcc 4.2 but you can optionally install the Intel C++ compiler 11.1
-   and change the compilerSpec in CoreVM.xcodeproj/project.pbxproj to get
-   better performance.
-
-2. Check out the following sources from svn (if you haven't already - if you're
-   reading this in macbuild its likely you've already got the sources)
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/macbuild
-
-3. Open a shell, cd into ROOT/macbuild directory and execute either
-     ./makevm
-  or
-     mvm -A
-  mvm is a convenience wrapper around makevm that will build different versions
-  (DeploymentSymbols, Debug, etc) and collect compiler output to log files.
-
-3a. If you want to get the Cog VM simulator working you'll need to build the
-BochsIA32Plugin/BochsIA32Plugin.xcodeproj project and to build that you'll
-need to first build bochs.  First check-out the processor simulator source tree
-containing Bochs:
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
-Then build the libraries macbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
-  $ cd ROOT/processors/IA32/macbochs
-  $ ./conf.COG
-  $ ../bochs/makeem
-Then build the plugin:
-  $ cd ROOT/macbuild/BochsIA32Plugin
-  $ xcodebuild
-
-4. At the end of this process you should have a brand new Croquet.app in the
-   macbuild folder (or Fast.app Assert.app and Debug.app if you've used mvm).
-
-N.B. The plugin set is defined by plugins.ext and plugins.int in the build dir.
-
-
-Optimization level and gcc version
-----------------------------------
-There are issues with gcc version > 4.2.1.  Any of the following flags may break the build at -O2:
--ftree-pre
--fpartial-inlining
--fcaller-saves
-
-So turn them off.  e.g.
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -fno-caller-saves -fno-partial-inlining -fno-tree-pre -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-
-Clang
------
-So far Clang only works at -O1.  So it may also be subject to some of the same
-issues as gcc.  Please report back successes with clang, especially at -O2.

Deleted: branches/Cog/build.macos32x86/squeak.sista.v3/HowToBuild
===================================================================
--- branches/Cog/build.macos32x86/squeak.sista.v3/HowToBuild	2014-06-11 14:02:34 UTC (rev 2980)
+++ branches/Cog/build.macos32x86/squeak.sista.v3/HowToBuild	2014-06-11 15:25:46 UTC (rev 2981)
@@ -1,58 +0,0 @@
-To generate a VM check-out http://www.squeakvm.org/svn/squeak/branches/Cog/image
-which contains
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.changes
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.image
-
-How to Build the Squeak Cog VM on Mac OS X
---------------------------------
-1. Install the tools (xcode etc);  the CoreVM.xcodeproj is set-up to build
-   using gcc 4.2 but you can optionally install the Intel C++ compiler 11.1
-   and change the compilerSpec in CoreVM.xcodeproj/project.pbxproj to get
-   better performance.
-
-2. Check out the following sources from svn (if you haven't already - if you're
-   reading this in macbuild its likely you've already got the sources)
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/macbuild
-
-3. Open a shell, cd into ROOT/macbuild directory and execute either
-     ./makevm
-  or
-     mvm -A
-  mvm is a convenience wrapper around makevm that will build different versions
-  (DeploymentSymbols, Debug, etc) and collect compiler output to log files.
-
-3a. If you want to get the Cog VM simulator working you'll need to build the
-BochsIA32Plugin/BochsIA32Plugin.xcodeproj project and to build that you'll
-need to first build bochs.  First check-out the processor simulator source tree
-containing Bochs:
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
-Then build the libraries macbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
-  $ cd ROOT/processors/IA32/macbochs
-  $ ./conf.COG
-  $ ../bochs/makeem
-Then build the plugin:
-  $ cd ROOT/macbuild/BochsIA32Plugin
-  $ xcodebuild
-
-4. At the end of this process you should have a brand new Croquet.app in the
-   macbuild folder (or Fast.app Assert.app and Debug.app if you've used mvm).
-
-N.B. The plugin set is defined by plugins.ext and plugins.int in the build dir.
-
-
-Optimization level and gcc version
-----------------------------------
-There are issues with gcc version > 4.2.1.  Any of the following flags may break the build at -O2:
--ftree-pre
--fpartial-inlining
--fcaller-saves
-
-So turn them off.  e.g.
-     ../../platforms/unix/config/configure --without-npsqueak CFLAGS="-g -O2 -msse2 -fno-caller-saves -fno-partial-inlining -fno-tree-pre -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0 -DDEBUGVM=0" LIBS=-lpthread
-
-Clang
------
-So far Clang only works at -O1.  So it may also be subject to some of the same
-issues as gcc.  Please report back successes with clang, especially at -O2.

Deleted: branches/Cog/build.macos32x86/squeak.stack.spur/HowToBuild
===================================================================
--- branches/Cog/build.macos32x86/squeak.stack.spur/HowToBuild	2014-06-11 14:02:34 UTC (rev 2980)
+++ branches/Cog/build.macos32x86/squeak.stack.spur/HowToBuild	2014-06-11 15:25:46 UTC (rev 2981)
@@ -1,29 +0,0 @@
-To generate a VM check-out http://www.squeakvm.org/svn/squeak/branches/Cog/image
-which contains
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.changes
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.image
-
-How to Build a Croquet Cog Stack VM on Mac OS X
---------------------------------
-1. Install the tools (xcode etc);  the CoreVM.xcodeproj is set-up to build
-   using gcc 4.2 but you can optionally install the Intel C++ compiler 11.1
-   and change the compilerSpec in CoreVM.xcodeproj/project.pbxproj to get
-   better performance.
-
-2. Check out the following sources from svn (if you haven't already - if you're
-   reading this in macbuild its likely you've already got the sources)
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/macbuild
-
-3. Open a shell, cd into ROOT/macbuild directory and execute either
-     ./makevm
-  or
-     mvm -A
-  mvm is a convenience wrapper around makevm that will build different versions
-  (DeploymentSymbols, Debug, etc) and collect compiler output to log files.
-
-4. At the end of this process you should have a brand new Croquet.app in the
-   macbuild folder (or Fast.app Assert.app and Debug.app if you've used mvm).
-
-N.B. The plugin set is defined by plugins.ext and plugins.int in the build dir.

Deleted: branches/Cog/build.macos32x86/squeak.stack.v3/HowToBuild
===================================================================
--- branches/Cog/build.macos32x86/squeak.stack.v3/HowToBuild	2014-06-11 14:02:34 UTC (rev 2980)
+++ branches/Cog/build.macos32x86/squeak.stack.v3/HowToBuild	2014-06-11 15:25:46 UTC (rev 2981)
@@ -1,29 +0,0 @@
-To generate a VM check-out http://www.squeakvm.org/svn/squeak/branches/Cog/image
-which contains
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.changes
-http://www.squeakvm.org/svn/squeak/branches/Cog/image/VMMaker-Squeak4.1.image
-
-How to Build a Croquet Cog Stack VM on Mac OS X
---------------------------------
-1. Install the tools (xcode etc);  the CoreVM.xcodeproj is set-up to build
-   using gcc 4.2 but you can optionally install the Intel C++ compiler 11.1
-   and change the compilerSpec in CoreVM.xcodeproj/project.pbxproj to get
-   better performance.
-
-2. Check out the following sources from svn (if you haven't already - if you're
-   reading this in macbuild its likely you've already got the sources)
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src
-     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/macbuild
-
-3. Open a shell, cd into ROOT/macbuild directory and execute either
-     ./makevm
-  or
-     mvm -A
-  mvm is a convenience wrapper around makevm that will build different versions
-  (DeploymentSymbols, Debug, etc) and collect compiler output to log files.
-
-4. At the end of this process you should have a brand new Croquet.app in the
-   macbuild folder (or Fast.app Assert.app and Debug.app if you've used mvm).
-
-N.B. The plugin set is defined by plugins.ext and plugins.int in the build dir.

Added: branches/Cog/build.win32x86/HowToBuild
===================================================================
--- branches/Cog/build.win32x86/HowToBuild	                        (rev 0)
+++ branches/Cog/build.win32x86/HowToBuild	2014-06-11 15:25:46 UTC (rev 2981)
@@ -0,0 +1,146 @@
+How To Build On Win32
+---------------------
+
+
+Contents:
+	- Overview
+	- Checking out sources to build out-of-the-box
+	- Building out of the box
+	- Building a Specific Plugin Dll
+	- Building the Bochs Support Libraries
+	- Building an MSI installer (Newspeak)
+	- Optimization level and gcc version (please read!)
+
+
+Overview
+--------
+The "Cog" VM comes in a bewildering variety of forms.  The first distinction
+is between Squeak/Croquet VMs that run Squeak, Pharo, Cuis, Croquet images
+and their ilk, and between Newspeak VMs that run Newspeak.
+
+Another distinction is between Stack, Cog and Sista VMs.  Stack VMs are those
+with context-to-stack mapping that optimise message sending by keeping method
+activations on a stack instead of in contexts.  These are pure interpreters but
+significantly faster than the standard context-based Interpreter VM.  Cog VMs
+add a JIT to the mix, compiling methods used more than once to maxchine code on
+the fly.  Sista VMs, as yet unrealised and in development, add support for
+adaptive optimization that does speculative inlining at the bytecode-to-bytecode
+level.  These are targeted for release in 2015.
+
+Another distinction is between "v3" VMs and Spur VMs.  "v3" is the original
+object representation for Squeak as described in the back-to-the-future paper.
+Spur, as described on the www.mirandabanda.org blog, is a faster object
+representation which uses generation scavenging, lazy forwarding for fast
+become, and a single object header format common to 32 and 64 bit versions.
+
+Another distinction is between normal single-threaded VMs that schedule "green"
+Smalltalk processes above a single-threaded VM, and "multi-threaded" VMs that
+share the VM between any number of native threads such that only one native
+thread owns the VM at any one time, switching between threads on FFI calls and
+callbacks or on Smalltalk process switches when Smalltalk processes are owned
+by threads.  This multi-threaded support is as yet experimental.
+
+The final distinction is between production, assert and debug VMs.  Production
+VMs are fully optimized, although they may include debugging symbols, and as
+their name implies are for use in production.  Assert and debug VMs include
+many assert checks that are disabled in the production VMs.  These asserts are
+very helpful in debugging VM problems but significantly impact performance.
+The difference between assert and debug VMs is that assert VMs are compiled
+with moderate optimization, which improves the performance of the asserts,
+whereas debug VMs are compiled with no optimization at all, providing maximum
+debuggability with minimum performance.
+
+This directory tree provides build directories for some of this matrix.  For
+example, squeak.cog.v3 contains a build directory for Smalltalk Cog VMs using
+the old object representation, newspeak.stack.spur contains a build directory
+for Newspeak Stack VMs using the Spur object representation.  Build as desired.
+
+
+Checking out sources to build out-of-the-box
+--------------------------------------------
+Check-out at least the relevant platform sources, vm and plugin sources, and
+the relevant build directories
+     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
+     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/build.win32x86
+     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/sources
+     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src etc
+		(see section "VM source directories" in the root README)
+
+
+Building out of the box
+-----------------------
+1. Install the tools:
+- Install cygwin from www.cygwin.com.  As of writing the VM is built using
+CYGWIN_NT-5.1 mcstalkerxp 1.5.24(0.156/4/2) 2007-01-31 10:57 i686 Cygwin
+Make sure you install the MinGW support, which is in the list of packages called
+"mingw-binutils: Binutils for MinGW.org Win32 toolchain".
+If on compiling you see the error
+	--export-dynamic is not supported for PE targets, did you mean --export-all-symbols?
+then replace --export-dynamic with --export-all-symbols in the makefiles.
+
+Then cd to the build directory of your choice, e.g.
+	build.win32x86/squeak.cog.spur/build
+Then either remove any BochsIA32Plugin line from plugins.ext or build the
+Bochs support libraries (see Building the Bochs Support Libraries below).
+Then execute
+	./mvm
+This builds debug, assert and production versions of the VM in builddbg/vm,
+buildast/vm and build/vm.  If the configuration includes multi-threaded builds
+it will also create VMs in buildmtdbg/vm, buildmtast/vm and buildmt/vm.  The
+system builds two VMs in each build/vm directory, e.g. Squeak.exe and
+SqueakConsole.exe.  The latter is to be used with console applications that wish
+to access standard i/o.
+
+Each build directory contains two files
+	plugins.int
+	plugins.ext
+that determine the set of plugins to be taken from the supplied plugins
+directory (which defaults to ../src/plugins), and which are to be linked
+into the VM (plugins.int) or compiled as external dlls to be dynamically
+linked at run-time (plugins.ext). Tailor these files as you wish.
+
+The Newspeak builds include an installer.  See Building an MSI installer below.
+
+Finally, at the build.win32x86 level the makeall script will run all the
+mvm scripts it can find.
+
+
+Building a Specific Plugin Dll
+------------------------------
+To make only a specific dll one must use the target of the plugin dll (or .lib)
+to be made.  e.g.
+  $ cd squeak.cog.spur
+  $ make build/vm/BochsIA32Plugin.dll
+
+
+Building the Bochs Support Libraries
+------------------------------------
+If you want to get the Cog VM simulator working you'll need to build the
+BochsIA32Plugin and to build that you'll need to first build bochs.  First
+check-out the processor simulator source tree containing Bochs:
+     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/processors
+Then build libraries winbochs/{cpu/libcpu.a,disasm/libdisasm.a,fpu/libfpu.a}
+  $ cd ../processors/IA32/winbochs
+  $ ./conf.COG
+  $ ../bochs/makeem
+
+
+Building an MSI installer (Newspeak)
+------------------------------------
+The Newspeak builds include an installer subdirectory.  The installer build
+creates an MSI installer that provides a platform-conformat install experience
+for the VM.  First build the VM then cd to the installer and make, e.g.:
+  $ cd newspeak.cog.v3
+  $ ./mvm
+  $ cd installer
+  $ make
+
+
+Optimization level and gcc version
+----------------------------------
+There are issues with gcc version > 4.2.1.  Any of the following flags may break the build at -O2:
+-ftree-pre
+-fpartial-inlining
+-fcaller-saves
+

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list