[Vm-dev] [commit][2932] CogVM source as per VMMaker.oscog-eem.734

commits at squeakvm.org commits at squeakvm.org
Wed May 28 15:20:06 UTC 2014


Revision: 2932
Author:   eliot
Date:     2014-05-28 08:19:56 -0700 (Wed, 28 May 2014)
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.734

Spur:
Fix bug in sortedFreeListPairwiseReverseDo:.  Post block
evaluation, free cannot be relied upon, so reconstruct the
position in the enumeration from prevPrevFree and
prevFree before moving on.

Cogit:
Make sure genMethodAbortTrampolineFor: has the same
linkRegister code as genMethodAbortTrampoline.

VMMaker:
Add Timothy's CMake VMMaker build scripts to the image directory.

Modified Paths:
--------------
    branches/Cog/nscogsrc/vm/cogit.c
    branches/Cog/nscogsrc/vm/cogit.h
    branches/Cog/nscogsrc/vm/cogmethod.h
    branches/Cog/nsspursrc/vm/cogit.c
    branches/Cog/nsspursrc/vm/cogit.h
    branches/Cog/nsspursrc/vm/cogmethod.h
    branches/Cog/nsspursrc/vm/cointerp.c
    branches/Cog/nsspursrc/vm/cointerp.h
    branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
    branches/Cog/nsspursrc/vm/interp.h
    branches/Cog/nsspursrc/vm/vmCallback.h
    branches/Cog/nsspurstacksrc/vm/gcc3x-interp.c
    branches/Cog/nsspurstacksrc/vm/interp.c
    branches/Cog/nsspurstacksrc/vm/interp.h
    branches/Cog/nsspurstacksrc/vm/vmCallback.h
    branches/Cog/sistasrc/vm/cogit.c
    branches/Cog/sistasrc/vm/cogit.h
    branches/Cog/sistasrc/vm/cogmethod.h
    branches/Cog/spursistasrc/vm/cogit.c
    branches/Cog/spursistasrc/vm/cogit.h
    branches/Cog/spursistasrc/vm/cogmethod.h
    branches/Cog/spursistasrc/vm/cointerp.c
    branches/Cog/spursistasrc/vm/cointerp.h
    branches/Cog/spursistasrc/vm/gcc3x-cointerp.c
    branches/Cog/spursistasrc/vm/interp.h
    branches/Cog/spursistasrc/vm/vmCallback.h
    branches/Cog/spursrc/vm/cogit.c
    branches/Cog/spursrc/vm/cogit.h
    branches/Cog/spursrc/vm/cogmethod.h
    branches/Cog/spursrc/vm/cointerp.c
    branches/Cog/spursrc/vm/cointerp.h
    branches/Cog/spursrc/vm/gcc3x-cointerp.c
    branches/Cog/spursrc/vm/interp.h
    branches/Cog/spursrc/vm/vmCallback.h
    branches/Cog/spurstacksrc/vm/gcc3x-interp.c
    branches/Cog/spurstacksrc/vm/interp.c
    branches/Cog/spurstacksrc/vm/interp.h
    branches/Cog/spurstacksrc/vm/vmCallback.h
    branches/Cog/src/vm/cogit.c
    branches/Cog/src/vm/cogit.h
    branches/Cog/src/vm/cogmethod.h

Added Paths:
-----------
    branches/Cog/image/BuildSqueak46CMakeImage.st
    branches/Cog/image/BuildSqueak46TrunkCMakeImage.st
    branches/Cog/image/BuildSqueakStandardImage.st
    branches/Cog/image/CMakeVMMakerSqueak.text
    branches/Cog/image/README
    branches/Cog/image/README.buildsqueakcmakeimage
    branches/Cog/image/VMMakerTool.text
    branches/Cog/image/buildsqueakcmakeimage.sh
    branches/Cog/image/vmm_stack_unix_max.config
    branches/Cog/image/vmm_stack_unix_min.config
    branches/Cog/image/vmm_standard_unix_max.config
    branches/Cog/image/vmm_standard_unix_min.config

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

Added: branches/Cog/image/BuildSqueak46CMakeImage.st
===================================================================
--- branches/Cog/image/BuildSqueak46CMakeImage.st	                        (rev 0)
+++ branches/Cog/image/BuildSqueak46CMakeImage.st	2014-05-28 15:19:56 UTC (rev 2932)
@@ -0,0 +1,69 @@
+| manifest load |
+Scanner prefAllowUnderscoreSelectors: true.
+
+manifest := #(	('http://source.squeak.org/FFI'					1	('FFI-Pools' 'FFI-Kernel'))
+				('http://source.squeak.org/VMMaker'		6	('Balloon-Engine-Pools' 'VMMaker.oscog' 'Cog' 'CogTools' 'ImageFormat' 'CMakeVMMaker' 'CMakeVMMakerSqueak')) 
+				('http://ss3.gemstone.com/ss/MethodMassage'		3	('MethodMassage' 'MethodMassageCompatibility'))
+				('http://www.squeaksource.com/AioPlugin'		7	('VMConstruction-Plugins-AioPlugin'))
+				('http://www.squeaksource.com/Alien'			0	('Alien'))
+				"('http://www.squeaksource.com/FreeTypePlus'	5	('FreeType')) can't load this.  it is toxic to Squeak 4.5"
+				('http://ss3.gemstone.com/ss/FreeTypePlus'	5	('FreeTypeConstants' 'FreeType' 'FreeTypeTests')) 
+				('http://www.squeaksource.com/FreetypePlugin'	8	('Freetype-Plugin'))
+				('http://www.squeaksource.com/OSProcess'		4	('OSProcess'))
+				('http://www.squeaksource.com/OSProcessPlugin'	9	('VMConstruction-Plugins-OSProcessPlugin.oscog'))
+				('http://www.squeaksource.com/rb'				5	('AST-Core' 'AST-Semantic' 'AST-Tests-Core' 'AST-Tests-Semantic' 'Refactoring-Changes' 'Refactoring-Core' 'Refactoring-Environment' 'Refactoring-Tests-Changes' 'Refactoring-Tests-Core' 'Refactoring-Tests-Environment'))
+				('http://www.squeaksource.com/Speech'			2	('SharedPool-Speech' ))).
+
+load := (manifest collect:
+				[:tuple|
+				[:path :order :packages| | repository |
+				repository := MCHttpRepository
+								location: path
+								user: 'squeak'
+								password: 'squeak'.
+				MCRepositoryGroup default addRepository: repository.
+				{repository. order. packages}] valueWithArguments: tuple])
+			sort: [:a :b| a second <= b second].
+
+#(	'FT2Constants.st'
+	'Object-performwithwithwithwithwith.st'
+	'CompiledMethod-usesAlternateBytecodeSet.st'
+	'FileDirectory-on-methods.st'
+	) do:
+	[:fileName| (FileDirectory default fileNamed: fileName) fileIn].
+
+World findATranscript: nil.
+
+load do:
+	[:tuple|
+	 [:repository :order :packages|
+	  packages do:
+		[:package| | latestVersion |
+		latestVersion := (repository versionNamesForPackageNamed: package) first.
+		[| version |
+		version := ((MCCacheRepository default includesVersionNamed: latestVersion)
+					ifTrue: [MCCacheRepository default]
+					ifFalse: [repository]) versionNamed: latestVersion.
+		 version load.
+		 version workingCopy repositoryGroup addRepository: repository]
+			on: Warning
+			do: [:ex|
+				(ex messageText beginsWith: 'This package depends on the following classes') ifFalse:
+					[ex pass].
+				ex resume]]]
+		valueWithArguments: tuple].
+
+
+VMMakerTool openInWorld.
+#( 'Workspace' 'VM Simulation Workspace' 'Slang Test Workspace' 'CMakeVMMakerSqueak') reverse do:
+	[:textFileName|
+	(StringHolder new contents: (FileDirectory default fileNamed: textFileName, '.text') contentsOfEntireFile)
+		openLabel: textFileName].
+
+(Utilities classPool at: #CommonRequestStrings) ifNotNil:
+	[:crs|
+	crs contents: crs contents, '\-\VMMaker generateConfiguration\VMMaker generateAllConfigurationsUnderVersionControl\VMClass openCogMultiWindowBrowser\VMClass openObjectMemoriesInterpretersBrowser' withCRs].
+
+CodeHolder useMultiWindowBrowsers: true.
+
+Smalltalk snapshot: true andQuit: true
Added: branches/Cog/image/BuildSqueak46TrunkCMakeImage.st
===================================================================
--- branches/Cog/image/BuildSqueak46TrunkCMakeImage.st	                        (rev 0)
+++ branches/Cog/image/BuildSqueak46TrunkCMakeImage.st	2014-05-28 15:19:56 UTC (rev 2932)
@@ -0,0 +1,7 @@
+"Change the update stream to trunk, update, then build as per 4.5"
+[MCMcmUpdater
+	defaultUpdateURL: 'http://source.squeak.org/trunk';
+	updateFromServer] valueSupplyingAnswer: true.
+
+"don't use fileIn; it causes an error when the saved image is started"
+Compiler evaluate: (FileStream oldFileNamed: 'BuildSqueak46CMakeImage.st') contentsOfEntireFile
Added: branches/Cog/image/BuildSqueakStandardImage.st
===================================================================
--- branches/Cog/image/BuildSqueakStandardImage.st	                        (rev 0)
+++ branches/Cog/image/BuildSqueakStandardImage.st	2014-05-28 15:19:56 UTC (rev 2932)
@@ -0,0 +1,57 @@
+| manifest load |
+manifest := #(('http://source.squeak.org/VMMaker'				1	( 'update'))).
+
+load := (manifest collect:
+				[:tuple|
+				[:path :order :packages| | repository |
+				repository := MCHttpRepository
+								location: path
+								user: 'squeak'
+								password: 'squeak'.
+				MCRepositoryGroup default addRepository: repository.
+				{repository. order. packages}] valueWithArguments: tuple])
+			sort: [:a :b| a second <= b second].
+
+#(	'FT2Constants.st'
+	'Object-performwithwithwithwithwith.st'
+	'CompiledMethod-usesAlternateBytecodeSet.st'
+	'FileDirectory-on-methods.st'
+	) do:
+	[:fileName| (FileDirectory default fileNamed: fileName) fileIn].
+
+
+
+load do:
+	[:tuple|
+	 [:repository :order :packages|
+	  packages do:
+		[:package| | latestVersion |
+		latestVersion := (repository versionNamesForPackageNamed: package) first.
+		[| version |
+		version := ((MCCacheRepository default includesVersionNamed: latestVersion)
+					ifTrue: [MCCacheRepository default]
+					ifFalse: [repository]) versionNamed: latestVersion.
+		 version load.
+                ]
+			on: Warning
+			do: [:ex|
+				(ex messageText beginsWith: 'This package depends on the following classes') ifFalse:
+					[ex pass].
+				ex resume]]]
+		valueWithArguments: tuple].
+
+World findATranscript: nil.
+VMMakerTool openInWorld.
+
+#( 'VMMakerTool') reverse do:
+	[:textFileName|
+	(StringHolder new contents: (FileDirectory default fileNamed: textFileName, '.text') contentsOfEntireFile)
+		openLabel: textFileName].
+
+(Utilities classPool at: #CommonRequestStrings) ifNotNil:
+	[:crs|
+	crs contents: crs contents, '\-\VMMaker generateConfiguration\VMMaker generateAllConfigurationsUnderVersionControl\VMClass openCogMultiWindowBrowser\VMClass openObjectMemoriesInterpretersBrowser' withCRs].
+
+CodeHolder useMultiWindowBrowsers: true.
+
+Smalltalk snapshot: true andQuit: true
Added: branches/Cog/image/CMakeVMMakerSqueak.text
===================================================================
--- branches/Cog/image/CMakeVMMakerSqueak.text	                        (rev 0)
+++ branches/Cog/image/CMakeVMMakerSqueak.text	2014-05-28 15:19:56 UTC (rev 2932)
@@ -0,0 +1,118 @@
+-------------------------Cog VM Configurations using a builder-------------------------
+
+SqueakCogMTBuilder buildUnix32.
+SqueakCogMTBuilder buildMacOSX32.
+SqueakCogMTBuilder buildWin32
+
+
+-------------------------Cog VM Configurations-------------------------
+
+SqueakCogMTUnixConfig generateWithSources.
+SqueakCogMTUnixConfig generate.
+
+SqueakCogOnDebian64Config generateWithSources
+SqueakCogOnDebian64Config generate
+
+SqueakCogUnixDebugConfig generateWithSources
+SqueakCogUnixDebugConfig generate
+
+SqueakCogUnixNoGLConfig generateWithSources.
+SqueakCogUnixNoGLConfig generate
+
+
+-------------------------Stack VM Configurations using a builder-------------------------
+SqueakStackVMBuilder 	buildSlackwareUnix64w32Libs
+SqueakStackVMBuilder 	buildSlackwareUnix64w32LibsNoGL
+
+
+-------------------------Stack VM configurations-------------------------
+SqueakStackCrossRaspbianConfig generateWithSources
+SqueakStackCrossRaspbianConfig generate   
+
+SqueakStackRaspbianFastBltConfig generateWithSources
+SqueakStackCrossRaspbianFastBltConfig generate
+
+
+SqueakStackRaspbianConfig generateWithSources
+SqueakStackRaspbianConfig generate
+
+
+SqueakStackRaspbianFastBltConfig generateWithSources
+SqueakStackRaspbianFastBltConfig generate
+
+
+SqueakStackUnixDebugConfig generateWithSources
+SqueakStackUnixDebugConfig generate
+
+SqueakStackEvtAndroidConfig generate   ""
+
+
+-------------------------BSD configs-------------------------
+SqueakCogFreeBSDConfig generateWithSources
+
+
+-------------------------SunOS configs-------------------------
+SqueakCogFreeBSDConfig generateWithSources
+
+
+
+-------------------------MacOS Configurations-------------------------
+
+SqueakCogMacOSConfig generateWithSources.
+SqueakCogMacOSConfig generate.
+
+SqueakCogMacOSDebugConfig generateWithSources.
+SqueakCogMacOSDebugConfig generate.
+
+
+SqueakCogMTMacOSConfig generateWithSources.
+SqueakCogMTMacOSConfig generate.
+
+
+SqueakStackMacOSConfig generateWithSources.
+SqueakStackMacOSConfig generate.
+
+
+SqueakStackMacOSDebugConfig generateWithSources.
+SqueakStackMacOSDebugConfig generate.
+
+
+-------------------------IOS Configurations-------------------------
+
+
+SqueakCogCocoaIOSConfig generateWithSources
+SqueakCogCocoaIOSConfig generate
+
+SqueakCogMTCocoaIOSConfig generateWithSources
+SqueakCogMTCocoaIOSConfig generate
+
+
+SqueakStackCocoaIOSConfig generateWithSources
+SqueakStackCocoaIOSConfig generate
+
+
+SqueakStackCocoaIOSCLANGConfig generateWithSources
+SqueakStackCocoaIOSCLANGConfig generate
+
+SqueakStackIPhoneConfig generateWithSources
+SqueakStackIPhoneConfig generate
+
+
+SqueakStackIPhoneSimulatorConfig generateWithSources
+SqueakStackIPhoneSimulatorConfig generate
+
+-------------------------Windows configs-------------------------
+SqueakCogWindowsConfig generateWithSources
+SqueakCogWindowsConfig generate.
+
+
+SqueakCogMTWindowsConfig generateWithSources
+SqueakCogMTWindowsConfig generate
+
+
+SqueakCogWindowsDebugConfig generateWithSources.
+SqueakCogWindowsDebugConfig generate.
+
+SqueakStackWindowsConfig generateWithSources
+SqueakStackWindowsConfig generate
+
Added: branches/Cog/image/README
===================================================================
--- branches/Cog/image/README	                        (rev 0)
+++ branches/Cog/image/README	2014-05-28 15:19:56 UTC (rev 2932)
@@ -0,0 +1,7 @@
+This directory contains scripts that can buld various VMMaker images.
+The standard Cog VMMaker image is built loading the latest VMMaker.oscog and Cog
+packages, plus support packages, into an updated Squeak trunk image.
+You can build this image using buildsqueaktrunkimage.sh.
+Once you start-up the image various workspaces contain useful expressions to
+run the simulator, test slang output and so on.  The "do..." menu off the main
+screen menu also contains expressions to generate VM sources.

Added: branches/Cog/image/README.buildsqueakcmakeimage
===================================================================
--- branches/Cog/image/README.buildsqueakcmakeimage	                        (rev 0)
+++ branches/Cog/image/README.buildsqueakcmakeimage	2014-05-28 15:19:56 UTC (rev 2932)
@@ -0,0 +1,47 @@
+buildsqueakcmakeimage.sh is a newbie friendly script that downloads and configures either a Cog VMMaker image or a StandardVMMaker image that is completely configured  for the end user to get productive quickly.
+While the image is set up for CMake, the existing GNU build infrastructure is maintained.
+
+If by chance you have not already done so, 
+
+svn co http://www.squeakvm.org/svn/squeak/branches/Cog will download the source tree containing this file; it exists as Cog/image/README.buildsqueakcmakimage
+
+Requirements to run the script are:
+
+svn
+wget
+zip
+rsync
+
+
+From withing the COG/image directory run buildsqueakcmakeimage.sh (buildsqueakcmakeimage.sh -h  for usage)
+
+For Cog installation, the script then 
+ downloads the appropriate squeak platform and creates CogVMMaker.image/changes and StandardVMMaker.image/changes for the Cog and Standard Interpreter respectively
+ installs the necessary Smalltalk classes on both images.
+ rsyncs the parent Cog directory as a sub-tree of the Squeak installation for use by CogVMMaker.image  to an appropriate subdirectory for the version of Squeak. 
+ The rsynced copy of the Cog svn source  is then populated with a parallel cmake_xyzbuild tree where the cmake build artifacts are installed (without breaking the existing gnu build stuff)
+
+
+To view/run your cog build system change directory to Cog/image/cogVMMaker/Squeak---.app/ and run squeakCogVMMaker.sh
+The source and build directories are in Cog/image/cogVMMaker/Squeak---.app/Contents/Resources/oscogvm/
+The cmake specific build directories are created by the script and are prefaces with 'cmake_'. This was done to avoid cluttering the existing GNU build system.
+After generating your build, change directory to your build directory (example: cd oscogvm/cmake_stackbuild/unixbuild/bld/) and invoke build.sh to launch cmake.
+
+After compilation, output files are stored in oscogvm/results
+
+
+
+
+When the Standard Interpreter, no special build tree is created. The system is just set up for use as-is described at http://wiki.squeak.org/squeak/6177
+to view/run your standard build system cd to Cog/image/standardVMMaker/
+
+
+
+
+
+
+
+
+
+
+

Added: branches/Cog/image/VMMakerTool.text
===================================================================
--- branches/Cog/image/VMMakerTool.text	                        (rev 0)
+++ branches/Cog/image/VMMakerTool.text	2014-05-28 15:19:56 UTC (rev 2932)
@@ -0,0 +1,19 @@
+This image encapsulates the steps required to set up a StandardVMMaker image as described here: http://wiki.squeak.org/squeak/6177
+
+Step 1. Generate the sources using VMMakerTool.
+
+  In the big green window labeled VMMaker  click the load button.
+  In the file selector, look for *.config files (example vm_standard_PLATFORM_min.config) this will configure the tool for that configuration.
+  Next to the 'Generate' Label, click the 'Entire' button to generate the sources.
+  (N.B. VMMakerTool is a front-end to VMMaker. As you gain experience, you will probably find it easier to utilize scripts rather than the GUI)
+  Read the class comments for more info: VMMakerTool browse
+
+
+Step 2. compile the sources
+ Exit Squeak and create install directory, configure,make,make-install
+ cd ~/..Cog/image/standardVMMaker/Squeak-4.5-All-in-One.app/Contents/Resources/build
+ ../platforms/unix/cmake/configure –help
+ mkdir ~/where/I/want/the/new/vm/executable/to/be/installed, your path is your preference used in –prefix= below
+ ../platforms/unix/cmake/configure --prefix=~/usr/local/standardVM32/ --src=../trunk/src/  --without-gl
+ make
+ make install
Added: branches/Cog/image/buildsqueakcmakeimage.sh
===================================================================
--- branches/Cog/image/buildsqueakcmakeimage.sh	                        (rev 0)
+++ branches/Cog/image/buildsqueakcmakeimage.sh	2014-05-28 15:19:56 UTC (rev 2932)
@@ -0,0 +1,501 @@
+#!/bin/bash  -x
+
+# Author tty.
+# 2014-05-01
+# This script downloads and configur
+#Overview of script flow assuming version 4.5 
+#  parse options
+#  case statement on -v  option
+#  clean_source_tree  (not used until migration to cmake is complete and GNU-B-GONE
+#  create_cmake_source_tree
+#  get_four_five
+#  launch_and_configure_four_five
+#  run_four_five
+#
+#  4.6 follows same flow.
+#  adding new versions should be evident
+
+
+
+#begin function declarations
+
+show_help() {
+cat << EOF
+Usage: ${0##*/} [-b]  [-h] [-s VERSION] [-t TRUNK]  [-v VERSION] 
+Download and configure a Squeak image configured for Cog and/or Standard VM building. load either stable or trunk classes. 
+
+    -b          Both Cog Interpreter configuration  and Standard Interpreter configuration on latest stable branch 
+    -c VERSION  Cog Interpreter configuration on squeak VERSION
+    -h          display this help and exit
+    -s VERSION  Standard Interpreter configuration on squeak VERSION 
+    -t          Monticello source is trunk (2014-05-05 only 4.5 supported  and is ignored otherwise)
+
+
+
+Example:  ./buildsqueakcmakeimage -b           (configure BOTH Squeak 4.6 for CMake VMMaker.oscog and  configure an additional Standard Intepreter VMMaker on 4.6) 
+          ./buildsqueakcmakeimage -c 4.5       (configure Squeak 4.5 for CMake VMMaker.oscog) 
+          ./buildsqueakcmakeimage -c 4.5 -t    (configure Squeak 4.5 for CMake VMMaker.oscog. Monticello source is trunk) 
+          ./buildsqueakcmakeimage -c 4.6       (configure Squeak 4.6 for CMake VMMaker.oscog) 
+          ./buildsqueakcmakeimage -s 4.5       (configure Squeak 4.5 for CMake VMMaker) 
+          ./buildsqueakcmakeimage -s 4.6       (configure Squeak 4.6 for CMake VMMaker) 
+          ./buildsqueakcmakeimage -c 4.6 -s    (same as cmakeify -b )
+
+SEE: README.buildsqueakcmakeimage for details of this script.
+EOF
+
+}                
+
+check_required(){
+  wget --help >/dev/null || (echo 'could not find wget.  you can find instructions on how to install it on google.' 1>&2; exit 1)
+  unzip --help >/dev/null || (echo 'could not find unzip.  you can find instructions on how to install it on google.' 1>&2; exit 1)
+  rsync --help >/dev/null || (echo 'could not find rsync.  you can find instructions on how to install it on google.' 1>&2; exit 1)
+  sed --help >/dev/null || (echo 'could not find sed.  you can find instructions on how to install it on google.' 1>&2; exit 1)
+}
+
+#create a parallel build tree for cmake
+create_cmake_source_tree(){
+
+    echo $1
+    cd $1
+    cp -Rv  cygwinbuild cmake_cygwinbuild 
+    cp -Rv  macbuild  cmake_macbuild 
+    cp -Rv  nsbuild    cmake_nsbuild   
+    cp -Rv  nscogbuild  cmake_nscogbuild 
+    cp -Rv  nsspurcogbuild   cmake_nsspurcogbuild 
+    cp -Rv  nsspurstackbuild  cmake_nsspurstackbuild 
+    cp -Rv  sistamacbuild  cmake_sistamacbuild 
+    cp -Rv  spurcogbuild   cmake_spurcogbuild  
+    cp -Rv  spursistamacbuild  cmake_spursistamacbuild 
+    cp -Rv  spurstackbuild cmake_spurstackbuild 
+    cp -Rv  stackbuild  cmake_stackbuild  
+    cp -Rv  unixbuild   cmake_unixbuild
+
+    find ./cmake_*  -type f -name "mvm" -exec rm -f {} \;
+    find ./cmake_*  -type f -name "HowToBuild" -exec rm -f {} \;
+
+    cd -
+}
+
+clean_source_tree(){
+echo $1
+    cd $1
+
+    find ./ -type f -name "ChangeLog" -exec rm -f {} \;
+    find ./ -type f -name "Makefile*" -exec rm -f {} \;
+    find ./ -type f -name "*README *" -exec rm -f {} \;
+    find ./ -type f -name "make*" -exec rm -f {} \;
+    find ./ -type f -name "mk*" -exec rm -f {} \;
+    find ./ -type f -name "mvm" -exec rm -f {} \;
+    find ./ -type f -name "plugins.int" -exec rm -f {} \;
+    find ./ -type f -name "plugins.ext" -exec rm -f {} \;
+    find ./ -type f -name "examplePlugins.*" -exec rm -f {} \;
+    find ./ -type f -name "HowToBuild" -exec rm -f {} \;
+
+    find ./ -type f -name "*.bat" -exec rm -f {} \;
+    find ./ -type f -name "*.~" -exec rm -f {} \;
+    find ./ -type f -name "*.config" -exec rm -f {} \;
+    find ./ -type f -name "*.gz" -exec rm -f {} \;
+    find ./ -type f -name "*.in" -exec rm -f {} \;
+    find ./ -type f -name "*.lproj" -exec rm -f {} \;
+    find ./ -type f -name "*.manifest" -exec rm -f {} \;
+    find ./ -type f -name "*.pch" -exec rm -f {} \;
+    find ./ -type f -name "*.rc" -exec rm -f {} \;
+    find ./ -type f \( -iname "*.sh" ! -iname "buildsqueaktrunkimage.sh" \)  -exec rm -f {} \;  #rm .sh files except this one! (:
+    find ./ -type d -name "*.xcodeproj" -exec rm -Rf {} \;
+    find ./ -type d -name "*.lproj" -exec rm -Rf {} \;
+echo $1
+    cd -
+}
+
+fourty_two(){
+echo 'Answer to the Ultimate Question of Life, the Universe, and Everything'
+exit
+}
+
+
+get_four_five(){
+
+  cd  $COGINSTALLDIRECTORY
+
+  check_required
+
+  wget -c http://ftp.squeak.org/4.5/$SQUEAK45ZIP
+#  cp ~/$SQUEAK45ZIP ./    #<--script development timesaver. do a copy instead of a wget
+  unzip $SQUEAK45ZIP
+  rm $SQUEAK45ZIP
+
+
+  cp -p $SQUEAK45.image              $SQUEAK45RESOURCES/CogVMMaker.image
+  cp -p $SQUEAK45.changes            $SQUEAK45RESOURCES/CogVMMaker.changes
+
+  cd -
+}
+
+launch_and_configure_four_five(){  #copy-n-paste-n-mangle from Bert's squeak.sh
+
+  case $OS in
+    BSD)	SQUEAK45VM="$COGINSTALLDIRECTORY/$SQUEAK45APP/Contents/MacOS/Squeak";;
+    Darwin)	SQUEAK45VM="$COGINSTALLDIRECTORY/$SQUEAK45APP/Contents/MacOS/Squeak";;
+    SOLARIS*)	SQUEAK45VM="$COGINSTALLDIRECTORY/$SQUEAK45APP/Contents/MacOS/Squeak";;
+    CYGWIN*)	SQUEAK45VM="$COGINSTALLDIRECTORY/$SQUEAK45APP/SqueakConsole.exe";;
+    Linux)	if [ "$CPU" = x86_64 ]; then
+		  CPU=i686
+		  echo Running 32-bit Squeak on a 64-bit System. Hope the 32-bit runtime libraries are installed ... 
+		 fi
+   	       SQUEAK45VM="$COGINSTALLDIRECTORY/$SQUEAK45APP/Contents/$OS-$CPU/bin/squeak";;
+  *)	echo "don't know how to run Squeak on your system.  bailing out." 1>&2; exit 2
+  esac
+
+  if [ "$TRUNK" = true ]; then
+     SCRIPT="$APP/BuildSqueak45TrunkCMakeImage.st"
+  else
+     SCRIPT="$APP/BuildSqueak45CMakeImage.st" 
+  fi
+
+  if [ "$CPU" = x86_64 ] ; then
+	  CPU=i686
+  fi
+
+  showerror() {
+      if [ -n "$DISPLAY" -a -x "`which kdialog 2>/dev/null`" ]; then
+	  kdialog --error "$1"
+      elif [ -n "$DISPLAY" -a -x "`which zenity 2>/dev/null`" ]; then
+	  zenity --error --text "$1"
+      else
+	  dialog --msgbox "$1" 0 0
+      fi
+  }
+
+  if [ ! -x "$SQUEAK45VM" ] ; then
+      if [ ! -r "$SQUEAK45VM" ] ; then
+	  showerror "This Squeak version does not support $OS-$CPU"
+      else
+	  showerror "Squeak does not have permissions to execute"
+      fi
+  fi
+
+
+  rsync -av --progress ../*  $COGINSTALLDIRECTORY/$SQUEAK45RESOURCES/oscogvm  --exclude $PWD                   #copy Cog source tree (minus this directory) to standard dir and remove GNU build artefacts
+
+  cd $COGINSTALLDIRECTORY/$SQUEAK45RESOURCES
+    ln -s oscogvm/platforms platforms                         #<--needed for VMMakerTool
+  cd -
+
+#    clean_source_tree $COGINSTALLDIRECTORY/$SQUEAK45RESOURCES/oscogvm                       
+  create_cmake_source_tree $COGINSTALLDIRECTORY/$SQUEAK45RESOURCES/oscogvm                       
+
+  cp $COGINSTALLDIRECTORY/$SQUEAK45APP/squeak.sh $COGINSTALLDIRECTORY/$SQUEAK45APP/squeakCogVMMaker.sh    #create a shell script that launches our CogVMMaker.image
+  sed -i -e "s/$SQUEAK45IMAGE/$COGIMAGE/g" $COGINSTALLDIRECTORY/$SQUEAK45APP/squeakCogVMMaker.sh   
+  
+
+  cp -p *.text       $COGINSTALLDIRECTORY/$SQUEAK45RESOURCES  #Workspaces with helpful text
+  cp -p *.config     $COGINSTALLDIRECTORY/$SQUEAK45RESOURCES  #VMMakerTool configuration files
+  cp -p *.st         $COGINSTALLDIRECTORY/$SQUEAK45RESOURCES  #Smalltalk 
+
+  "$SQUEAK45VM" "$COGINSTALLDIRECTORY/$SQUEAK45RESOURCES/$COGIMAGE" "$SCRIPT"
+  
+}
+
+get_four_five_standard_vm(){
+
+
+  cd    $STANDARDINSTALLDIRECTORY
+
+  check_required
+
+  if [ -d  ../$COGINSTALLDIRECTORY ]; then     #   if it exists copy the cog stuff over for reuse and  clean it up otherwise downaload via svn
+    cp -R ../$COGINSTALLDIRECTORY/$SQUEAK45APP ./
+    rm -f   $SQUEAK45RESOURCES/CogVMMaker.*
+    rm -Rf  $SQUEAK45RESOURCES/platforms
+    rm -Rf  $SQUEAK45RESOURCES/oscogvm
+  else
+    wget -c http://ftp.squeak.org/4.5/$SQUEAK45ZIP
+    unzip $SQUEAK45ZIP
+    rm $SQUEAK45ZIP
+  fi
+
+  cp -p $SQUEAK45.image              $SQUEAK45RESOURCES/StandardVMMaker.image
+  cp -p $SQUEAK45.changes            $SQUEAK45RESOURCES/StandardVMMaker.changes
+
+#  cp -R ~/trunk $SQUEAK45RESOURCES   #<--script development timesaver. use cp instead of svn
+  svn co http://squeakvm.org/svn/squeak/trunk $SQUEAK45RESOURCES/trunk
+
+  if [ -h  $SQUEAK45RESOURCES/platforms ]; then
+     rm -f $SQUEAK45RESOURCES/platforms 
+  fi
+  cd $SQUEAK45RESOURCES
+   ln -s trunk/platforms platforms                         #<--needed for VMMakerTool
+   mkdir build
+  cd -
+
+  cd ../
+
+}
+
+launch_and_configure_four_five_standard(){  
+#echo 'http://wiki.squeak.org/squeak/6177'
+  case $OS in
+    BSD)	SQUEAK45VM="$STANDARDINSTALLDIRECTORY/$SQUEAK45APP/Contents/MacOS/Squeak";;
+    Darwin)	SQUEAK45VM="$STANDARDINSTALLDIRECTORY/$SQUEAK45APP/Contents/MacOS/Squeak";;
+    SOLARIS*)	SQUEAK45VM="$STANDARDINSTALLDIRECTORY/$SQUEAK45APP/Contents/MacOS/Squeak";;
+    CYGWIN*)	SQUEAK45VM="$STANDARDINSTALLDIRECTORY/$SQUEAK45APP/SqueakConsole.exe";;
+    Linux)	if [ "$CPU" = x86_64 ]; then
+		  CPU=i686
+		  echo Running 32-bit Squeak on a 64-bit System. Hope the 32-bit runtime libraries are installed ... 
+		 fi
+   	       SQUEAK45VM="$STANDARDINSTALLDIRECTORY/$SQUEAK45APP/Contents/$OS-$CPU/bin/squeak";;
+  *)	echo "don't know how to run Squeak on your system.  bailing out." 1>&2; exit 2
+  esac
+  SCRIPT="$APP/BuildSqueakStandardImage.st" 
+
+
+  cp $STANDARDINSTALLDIRECTORY/$SQUEAK45APP/squeak.sh $STANDARDINSTALLDIRECTORY/$SQUEAK45APP/squeakStandardVMMaker.sh    #create a shell script that launches our CogVMMaker.image
+  sed -i -e "s/$SQUEAK45IMAGE/$STANDARDIMAGE/g" $STANDARDINSTALLDIRECTORY/$SQUEAK45APP/squeakStandardVMMaker.sh   
+
+  rm -f  $STANDARDINSTALLDIRECTORY/$SQUEAK45APP/squeakCogVMMaker.sh    #if we copied Squeak from the cogVMMaker directory, remove the cog launch script
+
+
+ cp -p *.text                      $STANDARDINSTALLDIRECTORY/$SQUEAK45RESOURCES  #Workspaces with helpful text
+ cp -p *.config                    $STANDARDINSTALLDIRECTORY/$SQUEAK45RESOURCES  #VMMakerTool configuration files
+ cp -p BuildSqueakStandardImage.st $STANDARDINSTALLDIRECTORY/$SQUEAK45RESOURCES  #Smalltalk 
+
+ "$SQUEAK45VM" "$STANDARDINSTALLDIRECTORY/$SQUEAK45RESOURCES/$STANDARDIMAGE" "$SCRIPT"
+
+}
+## 4.6 is not an all-in-one as of 2014-04-30 therefore, we need a cog vm 
+get_four_six(){
+
+  cd $COGINSTALLDIRECTORY
+
+  check_required
+
+  case $OS in     #TODO windows mac etc
+    Linux)	
+
+                wget -c http://www.mirandabanda.org/files/Cog/VM/VM.r2776/coglinux-13.33.2776.tgz  #TODO <--do I need to generalize this?
+                tar -xf coglinux-13.33.2776.tgz
+                rm -f   coglinux-13.33.2776.tgz
+
+                wget -c ftp.squeak.org/4.6alpha/$SQUEAK46ZIP 
+                unzip $SQUEAK46ZIP  -d $COGLINUX
+                rm $SQUEAK46ZIP 
+
+		cd $COGLINUX
+                cp -p $SQUEAK46.image    CogVMMaker.image
+                cp -p $SQUEAK46.changes  CogVMMaker.changes
+                 
+                cd ../
+
+                ;;
+         *)	echo "No Cog found.  bailing out." 1>&2; exit 2
+  esac
+
+  cd ../
+}
+
+
+launch_and_configure_four_six(){
+
+  cp -p BuildSqueak46CMake* $COGINSTALLDIRECTORY/coglinux
+  cp -p *.text              $COGINSTALLDIRECTORY/coglinux
+  cp -p *.config            $COGINSTALLDIRECTORY/coglinux
+
+  rsync -avq --progress ../*  $COGINSTALLDIRECTORY/coglinux/oscogvm  --exclude $PWD                  #copy Cog source tree (minus this directory) to standard dir and remove GNU build artefacts
+
+#  clean_source_tree $COGINSTALLDIRECTORY/$SQUEAK45RESOURCES/oscogvm
+  create_cmake_source_tree $COGINSTALLDIRECTORY/$COGLINUX/oscogvm
+
+
+  cd $COGINSTALLDIRECTORY/$COGLINUX
+  ln -s  oscogvm/platforms platforms   #<--needed for VMMakerTool
+  ./squeak CogVMMaker.image BuildSqueak46CMakeImage.st
+  cd -
+
+  cd ../
+} 
+
+
+get_four_six_standard_vm(){
+
+
+
+  cd    $STANDARDINSTALLDIRECTORY
+
+  check_required
+
+  if [ -d   ../$COGINSTALLDIRECTORY ]; then     #   if it exists copy the cog stuff over for reuse and  clean it up otherwise downaload via svn
+    cp -R   ../$COGINSTALLDIRECTORY/$COGLINUX ./
+    rm -f   $COGLINUX/CogVMMaker.*
+    rm -f   $COGLINUX/squeakCogVMMaker.sh
+    rm -Rf   $COGLINUX/oscogvm
+  else
+    wget -c http://www.mirandabanda.org/files/Cog/VM/VM.r2776/coglinux-13.33.2776.tgz  #TODO <--do I need to generalize this?
+    tar -xf coglinux-13.33.2776.tgz
+    rm -f   coglinux-13.33.2776.tgz
+
+    wget -c ftp.squeak.org/4.6alpha/$SQUEAK46ZIP 
+    unzip $SQUEAK46ZIP  -d $COGLINUX
+    rm $SQUEAK46ZIP 
+
+    cd $COGLINUX
+      cp -p $SQUEAK46.image    StandardVMMaker.image
+      cp -p $SQUEAK46.changes  StandardVMMaker.changes
+    cd ../
+  fi
+
+
+#   cp -R ~/trunk $COGLINUX   #<--script development timesaver. use cp instead of svn
+   svn co http://squeakvm.org/svn/squeak/trunk $COGLINUX/trunk
+
+   if [ -h  $COGLINUX/platforms ]; then
+      rm -f $COGLINUX/platforms 
+   fi
+   cd $COGLINUX
+    ln -s trunk/platforms platforms                         #<--needed for VMMakerTool
+    mkdir build
+   cd -
+
+  cd ../
+
+}
+
+launch_and_configure_four_six_standard(){  
+#echo 'http://wiki.squeak.org/squeak/6177'
+
+
+  cp -p BuildSqueakStandardImage.st  $STANDARDINSTALLDIRECTORY/$COGLINUX
+  cp -p *.text         $STANDARDINSTALLDIRECTORY/$COGLINUX
+  cp -p *.config       $STANDARDINSTALLDIRECTORY/$COGLINUX
+  cd $STANDARDINSTALLDIRECTORY/$COGLINUX
+  ./squeak StandardVMMaker.image BuildSqueakStandardImage.st
+  cd -
+}
+
+
+#end function declarations
+#begin script proper
+
+# initialize variables:
+
+#Flow Control Variables
+APP=`dirname "$0"`
+APP=`cd "$APP";pwd`
+OS=`uname -s`
+CPU=`uname -m`
+COG=false                  #include cog configuration
+STANDARD=false             #include standard configuration
+TRUNK=false                #build from trunk
+VERSION=4.6
+NO_ARGS=0 
+E_OPTERROR=85
+
+#Squeak 4.5 specific variables
+SQUEAK45ZIP=Squeak-4.5-All-in-One.zip
+SQUEAK45APP=Squeak-4.5-All-in-One.app
+SQUEAK45RESOURCES=$SQUEAK45APP/Contents/Resources
+SQUEAK45=$SQUEAK45RESOURCES/Squeak4.5-13680
+SQUEAK45IMAGE="Squeak4.5-13680.image"
+SQUEAK45VM="DETERMINED IN launch_and_configure_four_five()"
+
+#Squeak 4.6 specific variables
+SQUEAK46=Squeak4.6-13700
+SQUEAK46ZIP=$SQUEAK46.zip
+COGLINUX=coglinux
+
+#Squeak Common variables 
+COGIMAGE="CogVMMaker.image"                
+STANDARDIMAGE="StandardVMMaker.image"           
+COGINSTALLDIRECTORY="cogVMMaker"                #Cog buildsqueakcmakeimage end result lives here
+STANDARDINSTALLDIRECTORY="standardVMMaker"      #Standard Intepreter buildsqueakcmakeimage end result lives here
+
+
+
+if [ $# -eq "$NO_ARGS" ]    # Script invoked with no command-line args
+then
+  show_help
+  exit $E_OPTERROR          # Exit and explain usage.
+fi  
+
+#parse options
+OPTIND=1 
+while getopts "bc:hs:t" opt; do
+    case "$opt" in
+	b)  VERSION=4.5   #latest stable branch
+	    COG=true
+            STANDARD=true
+	    TRUNK=false
+	    ;;
+        c)  VERSION=$OPTARG
+            COG=true
+            ;;
+        h)
+            show_help
+            exit 0
+            ;;
+        s)  VERSION=$OPTARG
+            STANDARD=true
+            ;;
+
+        t)  TRUNK=true
+            ;;
+
+        '?')
+1            show_help >&2
+            exit 1
+            ;;
+    esac
+done
+shift "$((OPTIND-1))" # Shift off the options and optional --.
+
+
+
+
+##download squeak and launch it with appropriate smalltalk script.
+case "$VERSION" in 
+    4.5)
+       if [ "$COG" = true ]; then
+          mkdir $COGINSTALLDIRECTORY
+          [ "$TRUNK" == true ] && printf 'Loading Squeak version %s and configuring from trunk\n' "$VERSION"  || printf 'Loading Squeak version %s\n' "$VERSION"
+          [ "$TRUNK" == true ] && (get_four_five $TRUNK) || (get_four_five)
+          launch_and_configure_four_five $TRUNK
+  	  printf  'to run CogVMMaker:  cd %s; ./squeakCogVMMaker.sh\n'  "$COGINSTALLDIRECTORY/$SQUEAK45APP"
+       fi
+
+       if [ "$STANDARD" = true ]; then
+          mkdir $STANDARDINSTALLDIRECTORY
+          get_four_five_standard_vm
+          launch_and_configure_four_five_standard
+   	  printf  'to run StandardVMMaker:  cd %s; ./squeakStandardVMMaker.sh\n'  "$STANDARDINSTALLDIRECTORY/$SQUEAK45APP"
+       fi
+
+       [ "$TRUNK" == true ] && (echo 'Squeak 4.5 Trunk installation and configuration complete. ';) || (echo 'Squeak 4.5 installation and configuration complete. ';)
+	;;
+    4.6)
+       if [ "$COG" = true ]; then
+          mkdir $COGINSTALLDIRECTORY
+          printf 'Loading Squeak version %s\n' "$VERSION"
+          get_four_six
+          launch_and_configure_four_six
+
+    	  printf 'to run CogVMMaker:  cd %s; squeak CogVMMaker.image' "$COGINSTALLDIRECTORY/coglinux"
+       fi
+       if [ "$STANDARD" = true ]; then
+          mkdir $STANDARDINSTALLDIRECTORY
+          get_four_six_standard_vm
+          launch_and_configure_four_six_standard
+ 	  printf 'to run StandardVMMaker:  cd %s; squeak StandardVMMaker.image' "$STANDARDINSTALLDIRECTORY/coglinux"  
+       fi
+          echo 'Squeak 4.6 installation and configuration complete. ';
+	  exit
+	;;
+
+    42)
+        fourty_two;
+	;;
+     *) echo 'version $VERSION not supported. Try 4.5 or 4.6'
+        exit 2
+        ;;
+  esac
+
+
+exit


Property changes on: branches/Cog/image/buildsqueakcmakeimage.sh
___________________________________________________________________
Added: svn:executable
   + *

Added: branches/Cog/image/vmm_stack_unix_max.config
===================================================================
--- branches/Cog/image/vmm_stack_unix_max.config	                        (rev 0)
+++ branches/Cog/image/vmm_stack_unix_max.config	2014-05-28 15:19:56 UTC (rev 2932)
@@ -0,0 +1,50 @@
+#(#(#ADPCMCodecPlugin
+#AsynchFilePlugin
+#BMPReadWriterPlugin
+#CameraPlugin
+#CroquetPlugin
+#DSAPlugin
+#DeflatePlugin
+#DropPlugin
+#FFIPlugin
+#FFTPlugin
+#FileCopyPlugin
+#FilePlugin
+#FloatArrayPlugin
+#FloatMathPlugin
+#IA32ABIPlugin
+#JPEGReadWriter2Plugin
+#JPEGReaderPlugin
+#JoystickTabletPlugin
+#KlattSynthesizerPlugin
+#LargeIntegersPlugin
+#LocalePlugin
+#MIDIPlugin
+#Matrix2x3Plugin
+#MiscPrimitivePlugin
+#Mpeg3Plugin
+#RePlugin
+#SecurityPlugin
+#SerialPlugin
+#SocketPlugin
+#SoundCodecPlugin
+#SoundGenerationPlugin
+#SoundPlugin
+#SqueakSSLPlugin
+#StarSqueakPlugin
+#UUIDPlugin
+#UnicodePlugin
+#UnixAioPlugin
+#UnixOSProcessPlugin
+)
+#()
+true
+false
+'unix'
+'oscogvm/stacksrc'
+'platforms'
+4
+true
+true
+'StackInterpreter'
+)
\ No newline at end of file

Added: branches/Cog/image/vmm_stack_unix_min.config
===================================================================
--- branches/Cog/image/vmm_stack_unix_min.config	                        (rev 0)
+++ branches/Cog/image/vmm_stack_unix_min.config	2014-05-28 15:19:56 UTC (rev 2932)
@@ -0,0 +1,19 @@
+#(#(#ADPCMCodecPlugin
+#AsynchFilePlugin
+#B2DPlugin
+# BitBltPlugin \
+#FilePlugin
+#MiscPrimitivePlugin
+#SocketPlugin
+)
+#()
+true
+false
+'unix'
+'oscogvm/stacksrc'
+'platforms'
+4
+true
+true
+'StackInterpreter'
+)
\ No newline at end of file

Added: branches/Cog/image/vmm_standard_unix_max.config
===================================================================
--- branches/Cog/image/vmm_standard_unix_max.config	                        (rev 0)
+++ branches/Cog/image/vmm_standard_unix_max.config	2014-05-28 15:19:56 UTC (rev 2932)
@@ -0,0 +1,50 @@
+#(#(#ADPCMCodecPlugin
+#AsynchFilePlugin
+#BMPReadWriterPlugin
+#CameraPlugin
+#CroquetPlugin
+#DSAPlugin
+#DeflatePlugin
+#DropPlugin
+#FFIPlugin
+#FFTPlugin
+#FileCopyPlugin
+#FilePlugin
+#FloatArrayPlugin
+#FloatMathPlugin
+#IA32ABIPlugin
+#JPEGReadWriter2Plugin
+#JPEGReaderPlugin
+#JoystickTabletPlugin
+#KlattSynthesizerPlugin
+#LargeIntegersPlugin
+#LocalePlugin
+#MIDIPlugin
+#Matrix2x3Plugin
+#MiscPrimitivePlugin
+#Mpeg3Plugin
+#RePlugin
+#SecurityPlugin
+#SerialPlugin
+#SocketPlugin
+#SoundCodecPlugin
+#SoundGenerationPlugin
+#SoundPlugin
+#SqueakSSLPlugin
+#StarSqueakPlugin
+#UUIDPlugin
+#UnicodePlugin
+#UnixAioPlugin
+#UnixOSProcessPlugin
+)
+#()
+true
+false
+'unix'
+'trunk/src'
+'platforms'
+4
+true
+true
+'Interpreter'
+)
\ No newline at end of file

Added: branches/Cog/image/vmm_standard_unix_min.config
===================================================================
--- branches/Cog/image/vmm_standard_unix_min.config	                        (rev 0)
+++ branches/Cog/image/vmm_standard_unix_min.config	2014-05-28 15:19:56 UTC (rev 2932)
@@ -0,0 +1,19 @@
+#(#(#ADPCMCodecPlugin
+#AsynchFilePlugin
+#B2DPlugin
+# BitBltPlugin \
+#FilePlugin
+#MiscPrimitivePlugin
+#SocketPlugin
+)
+#()
+true
+false
+'unix'
+'trunk/src'
+'platforms'
+4
+true
+true
+'Interpreter'
+)
\ No newline at end of file

Modified: branches/Cog/nscogsrc/vm/cogit.c
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.c	2014-05-26 20:28:22 UTC (rev 2931)
+++ branches/Cog/nscogsrc/vm/cogit.c	2014-05-28 15:19:56 UTC (rev 2932)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785
+	CCodeGenerator VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785
+	StackToRegisterMappingCogit VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -13749,6 +13749,7 @@
 	genoperandoperand(CmpCqR, 0, ReceiverResultReg);
 	/* begin JumpNonZero: */
 	jumpSICMiss = genoperand(JumpNonZero, ((sqInt)0));
+	
 	compileTrampolineForcallJumpBarnumArgsargargargargsaveRegsresultReg(ceStackOverflow, 1, 1, SendNumArgsReg, null, null, null, 0, null);
 	jmpTarget(jumpSICMiss, gLabel());
 	genPushRegisterArgsForAbortMissNumArgs(backEnd, numArgs);

Modified: branches/Cog/nscogsrc/vm/cogit.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogit.h	2014-05-26 20:28:22 UTC (rev 2931)
+++ branches/Cog/nscogsrc/vm/cogit.h	2014-05-28 15:19:56 UTC (rev 2932)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785
+	CCodeGenerator VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa
  */
 
 

Modified: branches/Cog/nscogsrc/vm/cogmethod.h
===================================================================
--- branches/Cog/nscogsrc/vm/cogmethod.h	2014-05-26 20:28:22 UTC (rev 2931)
+++ branches/Cog/nscogsrc/vm/cogmethod.h	2014-05-28 15:19:56 UTC (rev 2932)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785
+	CCodeGenerator VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa
  */
 
 typedef struct {

Modified: branches/Cog/nsspursrc/vm/cogit.c
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.c	2014-05-26 20:28:22 UTC (rev 2931)
+++ branches/Cog/nsspursrc/vm/cogit.c	2014-05-28 15:19:56 UTC (rev 2932)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785
+	CCodeGenerator VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa
    from
-	StackToRegisterMappingCogit VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785
+	StackToRegisterMappingCogit VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa
  */
-static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785 " __DATE__ ;
+static char __buildInfo[] = "StackToRegisterMappingCogit VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa " __DATE__ ;
 char *__cogitBuildInfo = __buildInfo;
 
 
@@ -15040,6 +15040,7 @@
 	genoperandoperand(CmpCqR, 0, ReceiverResultReg);
 	/* begin JumpNonZero: */
 	jumpSICMiss = genoperand(JumpNonZero, ((sqInt)0));
+	
 	compileTrampolineForcallJumpBarnumArgsargargargargsaveRegsresultReg(ceStackOverflow, 1, 1, SendNumArgsReg, null, null, null, 0, null);
 	jmpTarget(jumpSICMiss, gLabel());
 	genPushRegisterArgsForAbortMissNumArgs(backEnd, numArgs);

Modified: branches/Cog/nsspursrc/vm/cogit.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogit.h	2014-05-26 20:28:22 UTC (rev 2931)
+++ branches/Cog/nsspursrc/vm/cogit.h	2014-05-28 15:19:56 UTC (rev 2932)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785
+	CCodeGenerator VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa
  */
 
 

Modified: branches/Cog/nsspursrc/vm/cogmethod.h
===================================================================
--- branches/Cog/nsspursrc/vm/cogmethod.h	2014-05-26 20:28:22 UTC (rev 2931)
+++ branches/Cog/nsspursrc/vm/cogmethod.h	2014-05-28 15:19:56 UTC (rev 2932)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGenerator VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785
+	CCodeGenerator VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa
  */
 
 typedef struct {

Modified: branches/Cog/nsspursrc/vm/cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.c	2014-05-26 20:28:22 UTC (rev 2931)
+++ branches/Cog/nsspursrc/vm/cointerp.c	2014-05-28 15:19:56 UTC (rev 2932)
@@ -1,9 +1,9 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa
    from
-	CoInterpreter VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785
+	CoInterpreter VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1480,9 +1480,9 @@
 _iss sqInt rememberedSetSize;
 _iss unsigned char primTraceLogIndex;
 _iss SpurContiguousObjStack unscannedEphemerons;
-_iss sqInt firstFreeChunk;
 _iss StackPage * mostRecentlyUsedPage;
 _iss SpurNewSpaceSpace pastSpace;
+_iss sqInt firstFreeChunk;
 _iss sqInt numStackPages;
 _iss usqInt newSpaceStart;
 _iss sqInt classTableFirstPage;
@@ -1517,6 +1517,7 @@
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt lkupClass;
 _iss sqInt backwardJumpCount;
+_iss sqInt lastFreeChunk;
 _iss sqInt metaclassNumSlots;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
@@ -1546,7 +1547,6 @@
 _iss sqInt thisClassIndex;
 _iss sqInt fullScreenFlag;
 _iss sqInt interruptPending;
-_iss sqInt lastFreeChunk;
 _iss sqInt lastHash;
 _iss sqInt longRunningPrimitiveCheckSequenceNumber;
 _iss sqInt marking;
@@ -2230,7 +2230,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.733";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.734";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -22741,7 +22741,6 @@
     sqInt i;
     sqInt low;
     sqInt nextFree;
-    sqInt nextFree1;
     usqInt numSlots;
     usqInt numSlots1;
     sqInt prevFree;
@@ -22762,12 +22761,7 @@
 		free = GIV(lastFreeChunk);
 		prevPrevFree = (prevFree = 0);
 		while (free != 0) {
-			nextFree = (longAt((free + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
-			assert((free == 0)
-			 || (isFreeObject(free)));
-			assert((prevFree == 0)
-			 || (prevFree > free));
-			
+			;
 			/* begin addressAfter: */
 			/* begin numSlotsOfAny: */
 			numSlots1 = byteAt(free + 7);
@@ -22793,31 +22787,25 @@
 				}
 			}
 
-			assert((prevFree == 0)
-			 || (isFreeObject(prevFree)));
-			assert((prevPrevFree == 0)
-			 || (isFreeObject(prevPrevFree)));
-			if (!(((longAt(free)) & 0x3FFFFF) == 0)) {
-				free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
+			if (prevFree == 0) {
+				assert(free == GIV(lastFreeChunk));
+				prevFree = GIV(lastFreeChunk);
+				free = (longAt((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2))) ^ 0;
 			}
-			if ((nextFree == 0)
-			 || (((longAt(nextFree)) & 0x3FFFFF) == 0)) {
-				prevPrevFree = prevFree;
-				prevFree = free;
-				free = (prevFree == GIV(firstFreeChunk)
-					? 0
-					: nextFree);
-			}
 			else {
-				free = GIV(lastFreeChunk);
-				prevPrevFree = (prevFree = 0);
-				while (free > nextFree) {
-					nextFree = (longAt((free + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
-					assert(isFreeObject(nextFree));
+				assert(isFreeObject(prevFree));
+				if (prevPrevFree == 0) {
+					assert(free == (nextInSortedFreeListLinkgiven(GIV(lastFreeChunk), 0)));
+					prevPrevFree = GIV(lastFreeChunk);
+					prevFree = (longAt((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2))) ^ 0;
+				}
+				else {
+					assert(isFreeObject(prevPrevFree));
+					free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
 					prevPrevFree = prevFree;
 					prevFree = free;
-					free = nextFree;
 				}
+				free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
 			}
 		}
 		null;
@@ -22830,11 +22818,11 @@
 	free1 = GIV(firstFreeChunk);
 	prevPrevFree1 = (prevFree1 = 0);
 	while (free1 != 0) {
-		nextFree1 = (longAt((free1 + (BaseHeaderSize)) + (0 << 2))) ^ prevFree1;
+		nextFree = (longAt((free1 + (BaseHeaderSize)) + (0 << 2))) ^ prevFree1;
 		assert(isFreeObject(free1));
-		assert((nextFree1 == 0)
-		 || ((nextFree1 > free1)
-		 && (isFreeObject(nextFree1))));
+		assert((nextFree == 0)
+		 || ((nextFree > free1)
+		 && (isFreeObject(nextFree))));
 		assert((prevFree1 == 0)
 		 || (prevFree1 < free1));
 		bytes = bytesInObject(free1);
@@ -22847,7 +22835,7 @@
 
 		prevPrevFree1 = prevFree1;
 		prevFree1 = free1;
-		free1 = nextFree1;
+		free1 = nextFree;
 	}
 	/* begin checkFreeSpace */
 	assert(bitsSetInFreeSpaceMaskForAllFreeLists());

Modified: branches/Cog/nsspursrc/vm/cointerp.h
===================================================================
--- branches/Cog/nsspursrc/vm/cointerp.h	2014-05-26 20:28:22 UTC (rev 2931)
+++ branches/Cog/nsspursrc/vm/cointerp.h	2014-05-28 15:19:56 UTC (rev 2932)
@@ -1,5 +1,5 @@
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa
  */
 
 

Modified: branches/Cog/nsspursrc/vm/gcc3x-cointerp.c
===================================================================
--- branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2014-05-26 20:28:22 UTC (rev 2931)
+++ branches/Cog/nsspursrc/vm/gcc3x-cointerp.c	2014-05-28 15:19:56 UTC (rev 2932)
@@ -2,11 +2,11 @@
 
 
 /* Automatically generated by
-	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785
+	CCodeGeneratorGlobalStructure VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa
    from
-	CoInterpreter VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785
+	CoInterpreter VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa
  */
-static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.733 uuid: 6d38bb55-fe48-480d-a606-d577925a2785 " __DATE__ ;
+static char __buildInfo[] = "CoInterpreter VMMaker.oscog-eem.734 uuid: d6a50836-2b47-4425-a81b-07dcc902faaa " __DATE__ ;
 char *__interpBuildInfo = __buildInfo;
 
 
@@ -1483,9 +1483,9 @@
 _iss sqInt rememberedSetSize;
 _iss unsigned char primTraceLogIndex;
 _iss SpurContiguousObjStack unscannedEphemerons;
-_iss sqInt firstFreeChunk;
 _iss StackPage * mostRecentlyUsedPage;
 _iss SpurNewSpaceSpace pastSpace;
+_iss sqInt firstFreeChunk;
 _iss sqInt numStackPages;
 _iss usqInt newSpaceStart;
 _iss sqInt classTableFirstPage;
@@ -1520,6 +1520,7 @@
 _iss sqInt lastMethodCacheProbeWrite;
 _iss sqInt lkupClass;
 _iss sqInt backwardJumpCount;
+_iss sqInt lastFreeChunk;
 _iss sqInt metaclassNumSlots;
 _iss usqLong nextWakeupUsecs;
 _iss sqInt preemptionYields;
@@ -1549,7 +1550,6 @@
 _iss sqInt thisClassIndex;
 _iss sqInt fullScreenFlag;
 _iss sqInt interruptPending;
-_iss sqInt lastFreeChunk;
 _iss sqInt lastHash;
 _iss sqInt longRunningPrimitiveCheckSequenceNumber;
 _iss sqInt marking;
@@ -2233,7 +2233,7 @@
 	/* 574 */ (void (*)(void))0,
 	/* 575 */ (void (*)(void))0,
  0 };
-const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.733";
+const char *interpreterVersion = "Newspeak Virtual Machine CoInterpreter_VMMaker.oscog-eem.734";
 sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* 10 */;
 volatile int sendTrace;
 
@@ -22750,7 +22750,6 @@
     sqInt i;
     sqInt low;
     sqInt nextFree;
-    sqInt nextFree1;
     usqInt numSlots;
     usqInt numSlots1;
     sqInt prevFree;
@@ -22771,12 +22770,7 @@
 		free = GIV(lastFreeChunk);
 		prevPrevFree = (prevFree = 0);
 		while (free != 0) {
-			nextFree = (longAt((free + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
-			assert((free == 0)
-			 || (isFreeObject(free)));
-			assert((prevFree == 0)
-			 || (prevFree > free));
-			
+			;
 			/* begin addressAfter: */
 			/* begin numSlotsOfAny: */
 			numSlots1 = byteAt(free + 7);
@@ -22802,31 +22796,25 @@
 				}
 			}
 
-			assert((prevFree == 0)
-			 || (isFreeObject(prevFree)));
-			assert((prevPrevFree == 0)
-			 || (isFreeObject(prevPrevFree)));
-			if (!(((longAt(free)) & 0x3FFFFF) == 0)) {
-				free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
+			if (prevFree == 0) {
+				assert(free == GIV(lastFreeChunk));
+				prevFree = GIV(lastFreeChunk);
+				free = (longAt((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2))) ^ 0;
 			}
-			if ((nextFree == 0)
-			 || (((longAt(nextFree)) & 0x3FFFFF) == 0)) {
-				prevPrevFree = prevFree;
-				prevFree = free;
-				free = (prevFree == GIV(firstFreeChunk)
-					? 0
-					: nextFree);
-			}
 			else {
-				free = GIV(lastFreeChunk);
-				prevPrevFree = (prevFree = 0);
-				while (free > nextFree) {
-					nextFree = (longAt((free + (BaseHeaderSize)) + (0 << 2))) ^ prevFree;
-					assert(isFreeObject(nextFree));
+				assert(isFreeObject(prevFree));
+				if (prevPrevFree == 0) {
+					assert(free == (nextInSortedFreeListLinkgiven(GIV(lastFreeChunk), 0)));
+					prevPrevFree = GIV(lastFreeChunk);
+					prevFree = (longAt((GIV(lastFreeChunk) + (BaseHeaderSize)) + (0 << 2))) ^ 0;
+				}
+				else {
+					assert(isFreeObject(prevPrevFree));
+					free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
 					prevPrevFree = prevFree;
 					prevFree = free;
-					free = nextFree;
 				}
+				free = (longAt((prevFree + (BaseHeaderSize)) + (0 << 2))) ^ prevPrevFree;
 			}
 		}
 		null;
@@ -22839,11 +22827,11 @@
 	free1 = GIV(firstFreeChunk);
 	prevPrevFree1 = (prevFree1 = 0);
 	while (free1 != 0) {
-		nextFree1 = (longAt((free1 + (BaseHeaderSize)) + (0 << 2))) ^ prevFree1;
+		nextFree = (longAt((free1 + (BaseHeaderSize)) + (0 << 2))) ^ prevFree1;
 		assert(isFreeObject(free1));
-		assert((nextFree1 == 0)
-		 || ((nextFree1 > free1)
-		 && (isFreeObject(nextFree1))));
+		assert((nextFree == 0)
+		 || ((nextFree > free1)
+		 && (isFreeObject(nextFree))));
 		assert((prevFree1 == 0)
 		 || (prevFree1 < free1));
 		bytes = bytesInObject(free1);

@@ Diff output truncated at 50000 characters. @@


More information about the Vm-dev mailing list