[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