[Vm-dev] VM Maker: CMakeVMMakerSqueak-tty.45.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Jun 12 17:13:41 UTC 2014


Timothy M uploaded a new version of CMakeVMMakerSqueak to project VM Maker:
http://source.squeak.org/VMMaker/CMakeVMMakerSqueak-tty.45.mcz

==================== Summary ====================

Name: CMakeVMMakerSqueak-tty.45
Author: tty
Time: 12 June 2014, 1:13:42.816 pm
UUID: 280ce16d-9925-4065-869f-3d2f496d3b7b
Ancestors: CMakeVMMakerSqueak-tty.44

resubmit tty.44 due to missing username on save

=============== Diff against CMakeVMMakerSqueak-tty.43 ===============

Item was changed:
+ Linux32x86Config subclass: #Linux32ARMv6StackV3CrossRaspbianConfig
- Linux32x86SqueakStackV3Configz subclass: #Linux32ARMv6StackV3CrossRaspbianConfig
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-Linux32ARMv6'!
  
  !Linux32ARMv6StackV3CrossRaspbianConfig commentStamp: 'tty 6/7/2014 10:41' prior: 0!
  This is a concrete class which generates a StackVM for Raspbian (debian on RaspberryPi). But in cross compilation usage.
  
  
  Usage: 
  Linux32ARMv6StackV3CrossRaspbianConfig generateWithSources
  Or:
  Linux32ARMv6StackV3CrossRaspbianConfig generate
  
  Or:
  find my Builder in CMakeVMMakerSqueak-Builder category and use that to query me or invoke me
  
  !

Item was changed:
+ Linux32x86Config subclass: #Linux32ARMv6StackV3RaspbianConfig
- Linux32x86SqueakStackV3Configz subclass: #Linux32ARMv6StackV3RaspbianConfig
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-Linux32ARMv6'!
  
  !Linux32ARMv6StackV3RaspbianConfig commentStamp: 'tty 6/7/2014 10:42' prior: 0!
  This is a concrete class which generates a StackVM for Raspbian (debian on RaspberryPi).
  
  Usage: 
  Linux32ARMv6StackV3RaspbianConfig generateWithSources
  Or:
  Linux32ARMv6StackV3RaspbianConfig generate
  
  Or:
  find my Builder in CMakeVMMakerSqueak-Builder category and use that to query me or invoke me
  !

Item was changed:
  ----- Method: Linux32x86Config>>buildDirName (in category 'squeak compatibility') -----
  buildDirName
  	buildType isNil
+ 		ifTrue:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, 'build']
+ 		ifFalse:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, buildType asString]!
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was changed:
  ----- Method: Linux32x86Config>>defaultExternalPlugins (in category 'plugins') -----
  defaultExternalPlugins
  " tty 2014.06.10  cut-n-paste from Cog/build.linux32x86/newspeak.cog.spur/build/plugins.ext"
  	^ #(B3DAcceleratorPlugin 
  		BochsIA32Plugin 
+ 	      ThreadedFFIPlugin    "moduleName->SqueakFFIPrims "
+ 		"FFIPlugin"                   "moduleName->SqueakFFIPrims "
+ 		SqueakSSLPlugin       "moduleName->SqueakSSL" 
- 		SqueakFFIPrims 
- 		SqueakSSL 
  		LocalePlugin 
  		UnixOSProcessPlugin 
+ 		UUIDPlugin)
+ 
+ 
+ "N.B. Regarding ThreadedFFIPlugin and FFIPlugin from eem:
+ 
+ Use  ThreadedFFIPlugin.  The FFIPlugin is obsolete (it requires assembler support files, and is non-reentrant).  This should generate in src/plugins/SqueakFFIPrims/{SqueakFFIPrims.c,ARM32FFIPlugin.c,IA32FFIPlugin.c} and you should compile only src/plugins/SqueakFFIPrims/SqueakFFIPrims.c.  src/plugins/SqueakFFIPrims/SqueakFFIPrims.c is a simple wrapper that includes ARM32FFIPlugin.c or IA32FFIPlugin.c as appropriate (and others can be added as they are developed).
+ 
+ 
+ "!
- 		UUIDPlugin)!

Item was changed:
  ----- Method: Linux32x86Config>>defaultInternalPlugins (in category 'plugins') -----
  defaultInternalPlugins
+ " tty 2014.06.10  cut-n-paste from Cog/build.linux32x86/newspeak.cog.spur/build/plugins.int
+    N.B. moduleName->XYZ means XYZ appears in the GNU-Build's plugins.int/ext. However, Smalltalk requires the class name.
+                                  XYZSmalltalkClass  moduleName->XYZ as it appears in plugins.int/ext
+ "
- " tty 2014.06.10  cut-n-paste from Cog/build.linux32x86/newspeak.cog.spur/build/plugins.int"
  	^ #(
+ 	    ADPCMCodecPlugin
+     AsynchFilePlugin
+     BalloonEnginePlugin "moduleName -->B2DPlugin"
+     BitBltSimulation        "moduleName->BitBltPlugin"
+     BMPReadWriterPlugin
+     CroquetPlugin
+     DeflatePlugin               "moduleName->ZipPlugin"
+     DropPlugin
+     DSAPlugin                    "moduleName->DSAPrims"
+     FFTPlugin
+     FileCopyPlugin
+     FilePlugin
+     FloatArrayPlugin
+     FloatMathPlugin
+     IA32ABIPlugin             "moduleName->IA32ABI"
+     InflatePlugin               "moduleName->ZipPlugin"
+     JoystickTabletPlugin
+     JPEGReaderPlugin
+     JPEGReadWriter2Plugin
+     KlattSynthesizerPlugin  "moduleName->Klatt"
+     LargeIntegersPlugin      "moduleName->LargeIntegers"
+     Matrix2x3Plugin
+     MIDIPlugin
+     MiscPrimitivePlugin
+     Mpeg3Plugin
+     RePlugin
+     SecurityPlugin
+     SerialPlugin
+     SocketPlugin
+     SoundCodecPlugin        "moduleName->SoundCodecPrims"
+     SoundGenerationPlugin
+     SoundPlugin
+     StarSqueakPlugin
+     SurfacePlugin
+     VMProfileLinuxSupportPlugin)!
- 		AsynchFilePlugin 
- 		BMPReadWriterPlugin 
- 		B2DPlugin 
- 		BitBltPlugin 
- 		DSAPrims 
- 		DropPlugin 
- 		FileCopyPlugin 
- 		FilePlugin 
- 		FloatArrayPlugin 
- 		FloatMathPlugin 
- 		ZipPlugin 
- 		JPEGReadWriter2Plugin 
- 		JPEGReaderPlugin 
- 		LargeIntegers 
- 		Matrix2x3Plugin 
- 		MiscPrimitivePlugin 
- 		IA32ABI 
- 		RePlugin 
- 		SecurityPlugin 
- 		SocketPlugin 
- 		SurfacePlugin 
- 		UUIDPlugin 
- 		UnixOSProcessPlugin 
- 		VMProfileLinuxSupportPlugin)!

Item was added:
+ ----- Method: Linux32x86Config>>dirArmv6 (in category 'cmake') -----
+ dirArmv6
+ 	^'cmake.build.arm.v6'!

Item was removed:
- ----- Method: Linux32x86SqueakCogSpurConfig>>defaultExternalPlugins (in category 'plugins') -----
- defaultExternalPlugins
- 	^ #(#B3DAcceleratorPlugin 
- 		 #BochsIA32Plugin 
- 		#SqueakFFIPrims 
- 		#SqueakSSL 
- 		#LocalePlugin 
- 		#UnixOSProcessPlugin 
- 		#UUIDPlugin)!

Item was removed:
- ----- Method: Linux32x86SqueakCogSpurConfig>>defaultInternalPlugins (in category 'plugins') -----
- defaultInternalPlugins
- 	^ #(#AsynchFilePlugin
- 		#BMPReadWriterPlugin
- 		#B2DPlugin
- 		#BitBltPlugin
- 		#DSAPrims
- 		#DropPlugin
- 		#FileCopyPlugin
- 		#FilePlugin
- 		#FloatArrayPlugin
- 		#FloatMathPlugin
- 		#ZipPlugin
- 		#JPEGReadWriter2Plugin
- 		#JPEGReaderPlugin
- 		#LargeIntegers
- 		#Matrix2x3Plugin
- 		#MiscPrimitivePlugin
- 		#IA32ABI
- 		#RePlugin
- 		#SecurityPlugin
- 		#SocketPlugin
- 		#SurfacePlugin
- 		#UUIDPlugin
- 		#UnixOSProcessPlugin
- 		#VMProfileLinuxSupportPlugin)!

Item was removed:
- ----- Method: Linux32x86SqueakCogV3Config>>defaultExternalPlugins (in category 'plugins') -----
- defaultExternalPlugins
- 	^ #(#B3DAcceleratorPlugin 
- 		 #BochsIA32Plugin 
- 		#SqueakFFIPrims 
- 		#SqueakSSL 
- 		#LocalePlugin 
- 		#UnixOSProcessPlugin 
- 		#UUIDPlugin)!

Item was removed:
- ----- Method: Linux32x86SqueakCogV3Config>>defaultInternalPlugins (in category 'plugins') -----
- defaultInternalPlugins
- 	^ #(#AsynchFilePlugin
- 		#BMPReadWriterPlugin
- 		#B2DPlugin
- 		#BitBltPlugin
- 		#DSAPrims
- 		#DropPlugin
- 		#FileCopyPlugin
- 		#FilePlugin
- 		#FloatArrayPlugin
- 		#FloatMathPlugin
- 		#ZipPlugin
- 		#JPEGReadWriter2Plugin
- 		#JPEGReaderPlugin
- 		#LargeIntegers
- 		#Matrix2x3Plugin
- 		#MiscPrimitivePlugin
- 		#IA32ABI
- 		#RePlugin
- 		#SecurityPlugin
- 		#SocketPlugin
- 		#SurfacePlugin
- 		#UUIDPlugin
- 		#UnixOSProcessPlugin
- 		#VMProfileLinuxSupportPlugin)!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Config>>interpreterClass (in category 'source generation') -----
+ interpreterClass
+ 	^ CoInterpreter!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Config>>prepareForGeneration (in category 'source generation') -----
+ prepareForGeneration
+ 	^ self prepareForCogGeneration
+ !

Item was removed:
- ----- Method: Linux32x86SqueakCogV3Config>>todo (in category 'as yet unclassified') -----
- todo
- 	self flag:'tty'!

Item was changed:
+ Linux32x86Config subclass: #Linux32x86SqueakCogV3Debian64Config
- Linux32x86SqueakCogV3Configz subclass: #Linux32x86SqueakCogV3Debian64Config
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-LinuxX86_64-32Compatibility'!
  
  !Linux32x86SqueakCogV3Debian64Config commentStamp: 'tty 6/7/2014 10:28' prior: 0!
  Used to build 32 bit Cog on Debian 64 bits.
  
  You need to prepare Debian this way:
  
  apt-get install ia32-libs libc6-dev-i386 gcc-multilib g++-multilib
  
  ln -s /usr/lib32/libSM.so.6 /usr/lib32/libSM.so
  ln -s /usr/lib32/libICE.so.6 /usr/lib32/libICE.so
  ln -s /usr/lib32/libGL.so.1 /usr/lib32/libGL.so
  ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so
  
  Then you can go on Linux32x86SqueakCogV3Debian64Config generateWithSources.
  
  or find my Builder in CMakeVMMakerSqueak-Builder category and use that to query me or invoke me
  
  
  !

Item was removed:
- ----- Method: Linux32x86SqueakSistaSpurConfig>>defaultExternalPlugins (in category 'plugins') -----
- defaultExternalPlugins
- 	^ #(#B3DAcceleratorPlugin 
- 		 #BochsIA32Plugin 
- 		#SqueakFFIPrims 
- 		#SqueakSSL 
- 		#LocalePlugin 
- 		#UnixOSProcessPlugin 
- 		#UUIDPlugin)!

Item was removed:
- ----- Method: Linux32x86SqueakSistaSpurConfig>>defaultInternalPlugins (in category 'plugins') -----
- defaultInternalPlugins
- 	^ #(#AsynchFilePlugin
- 		#BMPReadWriterPlugin
- 		#B2DPlugin
- 		#BitBltPlugin
- 		#DSAPrims
- 		#DropPlugin
- 		#FileCopyPlugin
- 		#FilePlugin
- 		#FloatArrayPlugin
- 		#FloatMathPlugin
- 		#ZipPlugin
- 		#JPEGReadWriter2Plugin
- 		#JPEGReaderPlugin
- 		#LargeIntegers
- 		#Matrix2x3Plugin
- 		#MiscPrimitivePlugin
- 		#IA32ABI
- 		#RePlugin
- 		#SecurityPlugin
- 		#SocketPlugin
- 		#SurfacePlugin
- 		#UUIDPlugin
- 		#UnixOSProcessPlugin
- 		#VMProfileLinuxSupportPlugin)!

Item was removed:
- ----- Method: Linux32x86SqueakSistaV3Config>>defaultExternalPlugins (in category 'plugins') -----
- defaultExternalPlugins
- 	^ #(#B3DAcceleratorPlugin 
- 		 #BochsIA32Plugin 
- 		#SqueakFFIPrims 
- 		#SqueakSSL 
- 		#LocalePlugin 
- 		#UnixOSProcessPlugin 
- 		#UUIDPlugin)!

Item was removed:
- ----- Method: Linux32x86SqueakSistaV3Config>>defaultInternalPlugins (in category 'plugins') -----
- defaultInternalPlugins
- 	^ #(#AsynchFilePlugin
- 		#BMPReadWriterPlugin
- 		#B2DPlugin
- 		#BitBltPlugin
- 		#DSAPrims
- 		#DropPlugin
- 		#FileCopyPlugin
- 		#FilePlugin
- 		#FloatArrayPlugin
- 		#FloatMathPlugin
- 		#ZipPlugin
- 		#JPEGReadWriter2Plugin
- 		#JPEGReaderPlugin
- 		#LargeIntegers
- 		#Matrix2x3Plugin
- 		#MiscPrimitivePlugin
- 		#IA32ABI
- 		#RePlugin
- 		#SecurityPlugin
- 		#SocketPlugin
- 		#SurfacePlugin
- 		#UUIDPlugin
- 		#UnixOSProcessPlugin
- 		#VMProfileLinuxSupportPlugin)!

Item was removed:
- ----- Method: Linux32x86SqueakStackSpurConfig>>defaultExternalPlugins (in category 'plugins') -----
- defaultExternalPlugins
- 	^ #(#B3DAcceleratorPlugin 
- 		 #BochsIA32Plugin 
- 		#SqueakFFIPrims 
- 		#SqueakSSL 
- 		#LocalePlugin 
- 		#UnixOSProcessPlugin 
- 		#UUIDPlugin)!

Item was removed:
- ----- Method: Linux32x86SqueakStackSpurConfig>>defaultInternalPlugins (in category 'plugins') -----
- defaultInternalPlugins
- 	^ #(#AsynchFilePlugin
- 		#BMPReadWriterPlugin
- 		#B2DPlugin
- 		#BitBltPlugin
- 		#DSAPrims
- 		#DropPlugin
- 		#FileCopyPlugin
- 		#FilePlugin
- 		#FloatArrayPlugin
- 		#FloatMathPlugin
- 		#ZipPlugin
- 		#JPEGReadWriter2Plugin
- 		#JPEGReaderPlugin
- 		#LargeIntegers
- 		#Matrix2x3Plugin
- 		#MiscPrimitivePlugin
- 		#IA32ABI
- 		#RePlugin
- 		#SecurityPlugin
- 		#SocketPlugin
- 		#SurfacePlugin
- 		#UUIDPlugin
- 		#UnixOSProcessPlugin
- 		#VMProfileLinuxSupportPlugin)!

Item was removed:
- ----- Method: Linux32x86SqueakStackV3Config>>defaultExternalPlugins (in category 'plugins') -----
- defaultExternalPlugins
- 	^ #(#B3DAcceleratorPlugin 
- 		 #BochsIA32Plugin 
- 		#SqueakFFIPrims 
- 		#SqueakSSL 
- 		#LocalePlugin 
- 		#UnixOSProcessPlugin 
- 		#UUIDPlugin)!

Item was removed:
- ----- Method: Linux32x86SqueakStackV3Config>>defaultInternalPlugins (in category 'plugins') -----
- defaultInternalPlugins
- 	^ #(#AsynchFilePlugin
- 		#BMPReadWriterPlugin
- 		#B2DPlugin
- 		#BitBltPlugin
- 		#DSAPrims
- 		#DropPlugin
- 		#FileCopyPlugin
- 		#FilePlugin
- 		#FloatArrayPlugin
- 		#FloatMathPlugin
- 		#ZipPlugin
- 		#JPEGReadWriter2Plugin
- 		#JPEGReaderPlugin
- 		#LargeIntegers
- 		#Matrix2x3Plugin
- 		#MiscPrimitivePlugin
- 		#IA32ABI
- 		#RePlugin
- 		#SecurityPlugin
- 		#SocketPlugin
- 		#SurfacePlugin
- 		#UUIDPlugin
- 		#UnixOSProcessPlugin
- 		#VMProfileLinuxSupportPlugin)!

Item was changed:
  ----- Method: Linux32x86SqueakStackV3Config>>todo (in category 'as yet unclassified') -----
  todo
  	self flag:'tty'!

Item was changed:
+ Linux32x86Config subclass: #Linux32x86SqueakStackV3SlackwareConfig
- Linux32x86SqueakStackV3Configz subclass: #Linux32x86SqueakStackV3SlackwareConfig
  	uses: TCPlatformConfigForSqueak
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-LinuxX86_64-32Compatibility'!
  
  !Linux32x86SqueakStackV3SlackwareConfig commentStamp: 'tty 6/7/2014 10:28' prior: 0!
  A SqueakStackUnix64w32CompatLibsSlackwareConfig is a configuration for CMake on a 64 bit Slackware linux with 32 bit compat libs and includes linking to GL. 
  
  
  
  Usage:
  Linux32x86SqueakStackV3SlackwareConfig generateWithSources.
  Or:
  Linux32x86SqueakStackV3SlackwareConfig generate
  Or:
  find my Builder in CMakeVMMakerSqueak-Builder category and use that to query me or invoke me
  
  
  !
  Linux32x86SqueakStackV3SlackwareConfig class
  	uses: TCPlatformConfigForSqueak classTrait
  	instanceVariableNames: ''!

Item was changed:
  ----- Method: Linux64Config>>buildDirName (in category 'squeak compatibility') -----
  buildDirName
  	buildType isNil
+ 		ifTrue:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, 'build']
+ 		ifFalse:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, buildType asString]!
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was changed:
  ----- Method: SqueakBSDConfig>>buildDirName (in category 'squeak compatibility') -----
  buildDirName
  	buildType isNil
+ 		ifTrue:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, 'build']
+ 		ifFalse:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, buildType asString]!
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was changed:
  Object subclass: #SqueakCMakeVMMakerAbstractBuilder
  	instanceVariableNames: 'buildTypeAndDirectoryInfo config'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-Builder'!
  SqueakCMakeVMMakerAbstractBuilder class
  	instanceVariableNames: 'default'!
  
+ !SqueakCMakeVMMakerAbstractBuilder commentStamp: 'tty 6/11/2014 10:09' prior: 0!
- !SqueakCMakeVMMakerAbstractBuilder commentStamp: 'tty 6/10/2014 12:46' prior: 0!
  I am an abstract base class for various CMakeVMMakerSqueak builders.
  
  I am a singleton.
  I am a facade to the various Squeak[Platform][WordSize][VM][MemoryManager]Config classes
  I provide facilities to query my configurations.
  I use the Visitor pattern in collecting information about my configurations.
  
  Usage: 
  -------------------------Using CMakeVMMakerSqueak-------------------------
+ These instructions are duplicated in SqueakCMakeVMMakerAbstractBuilder class comments.
- The easiest way to use this is to utilize one of the concrete Builders in category CMakeVMMakerSqueak-Builder.
  
+ 
+ The easiest way to use this tool is to utilize one of the concrete Builders in category CMakeVMMakerSqueak-Builder.
+ 
  With a builder, you can query it for information and then invoke it to generate configurations and or source.
  
  Printing or inspecting the following lines will give you a flavor of a typical work-flow.
  
- -------------Buildable/non-buildable configurations---------
  
+ -------------Buildable/non-buildable configurations---------
  SqueakCMakeVMMakerAbstractBuilder showExcludeFromBuild:false    "buildable configurations"
  SqueakCMakeVMMakerAbstractBuilder showExcludeFromBuild:true.    "edit that configs 'excludeFromBuild' method to change"
  SqueakCMakeVMMakerAbstractBuilder availableBuildTypes
+ -------------------------Querying Builders---------------
- 
- -------------------------Querying Builders and CMake Configurations---------------
- 
  SqueakLinux32X86Builder configurationsCategory 
  SqueakLinux32X86Builder buildDirectory 
  SqueakLinux32X86Builder availableBuilds	 
  SqueakLinux32X86Builder availableBuildTypesFor:(SqueakLinux32X86Builder availableBuilds at:1)
  SqueakLinux32X86Builder availableBuildTypesFor: #Linux32x86SqueakStackSpurConfig
  SqueakLinux32X86Builder availableBuildTypesFor: #Linux32x86SqueakStackV3Config
  SqueakLinux32X86Builder sourceDirectoryFor:(SqueakLinux32X86Builder availableBuilds at:1)
  
+ -------------------------Invoking Builders-------------------------
+ "generate only CMake config files"
- -------------------------Generating CMake files and/or Source code-------------------------
- 
  SqueakLinux32X86Builder 
+ 	configureABuildFor: #Linux32x86SqueakCogV3Config withBuildType: #assertWithHeartbeatTimer;
+ 	generate   
- 	configureABuildFor: #Linux32x86SqueakCogV3Config withBuildType: #debug
- 	generate   "generate only CMake config files"
  
+ "generate configurations and invoke VMMaker to generate source code"
  SqueakLinux32X86Builder 
+ 	configureABuildFor: #Linux32x86SqueakCogV3Config withBuildType: #debug;
+ 	generateSources  
- 	configureABuildFor: #Linux32x86SqueakCogV3Config withBuildType: #debug
- 	generateWithSources  "generate configurations and invoke VMMaker to generate source code"
  
  -------------------------Compiling Instructions-------------------------
  open a terminal and go to the configurations build directory for that configuration. (SqueakLinux32X86Builder buildDirectory)
  change into the build type subdirectory (build, build.assert, build.debug...etc)
+ source build.sh will run 'cmake. make' 
- source build.sh will run the build process
  executable is placed in  /products folder.  (SqueakLinux32X86Builder ouputDirectory)
  
+ 
+ ----------------------Editing/Constructing Configurations--------------
+ 
+ Configurations are organized by category:  OperatingSystem, VM Word Size, Processor . (i.e MacOSX32x86 configurations reside in CMakeVMMakerSqueak-MacOSX32x86a)
+ For a OperatingSystem,VM Word Size, Processor, configurations are then organized by Language.VM.MemoryManafger (newswpeak.stack.v3, squeak.sista.spur. squeak.cog.spur, etc)
+ 
+ IF an existing configuratin exists, you may edit or subclass it. For a Builder to see it, it must remain in the category.
+ 
+ The flag excludeFromBuild determines wether the builder will build it or not. This flag is set to exclude configurations that are just placeholders.
+ 
+ If you have a special case for an existing [OS][WordSize][Processor].[lang][vm][mm] configuration just subclass it and provide customizations.
+ 
+ TODO: Provide typical customizations and how to implement them
+ 
+ internal/external plugins?
+ compiler flags?
+ includes?
+ 
+ 
+ 
+ 
+ ----------------------Improvements needed-------------------------
+ 
+ The CMakeVMMakerSqueak package has some design hacks because it extends 
+ the pharo CMakeVMMaker package without modifying that code base.
+ Therefore, things that should have been done by introducing squeak sub-classes in the pharo source tree could not be done.
+ 
+ The biggest design 'quirk' is the use of the Trait TCPlatformConfigForSqueak to enforce a pseudo abstract base class mechanism.
+ The other design 'quirk' are the overrides of methods in CPlatformConfig in pharo's package of incompatible methods. (see protocol squeak-compatibility)
+ Because of the existing inheritance tree, the overrides could not happen in one squeak compatibility class, but are implemented
+ in several subclasses of CPlatformConfig.
+ 
+ The Squeak Builders implementation also differs significantly from the pharo implementation.
+ The pharo code's 'configForDebug/configForReleaase' has been expanded to support the squeak build needs.
+ 
  !
  SqueakCMakeVMMakerAbstractBuilder class
  	instanceVariableNames: 'default'!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>generateSources (in category 'building') -----
+ generateSources
+ 	default ifNil:[default:= self new].
+ 	^default  generateSources!

Item was removed:
- ----- Method: SqueakCMakeVMMakerAbstractBuilder class>>generateWithSource (in category 'building') -----
- generateWithSource
- 	default ifNil:[default:= self new].
- 	^default  generateWithSource!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>generateSources (in category 'building') -----
+ generateSources
+ 	(config isKindOf: CPlatformConfig)
+ 		ifTrue:[config generateSources]
+ 		!

Item was removed:
- ----- Method: SqueakCMakeVMMakerAbstractBuilder>>generateWithSource (in category 'building') -----
- generateWithSource
- 	(config isKindOf: CPlatformConfig)
- 		ifTrue:[config generateWithSource]
- 		!

Item was removed:
- ----- Method: SqueakFreeBSDNewspeakCogSpurConfig>>buildDirName (in category 'squeak compatibility') -----
- buildDirName
- 	buildType isNil
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was removed:
- ----- Method: SqueakFreeBSDNewspeakCogV3Config>>buildDirName (in category 'squeak compatibility') -----
- buildDirName
- 	buildType isNil
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was removed:
- ----- Method: SqueakFreeBSDNewspeakSistaSpurConfig>>buildDirName (in category 'squeak compatibility') -----
- buildDirName
- 	buildType isNil
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was removed:
- ----- Method: SqueakFreeBSDNewspeakSistaV3Config>>buildDirName (in category 'squeak compatibility') -----
- buildDirName
- 	buildType isNil
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was removed:
- ----- Method: SqueakFreeBSDNewspeakStackSpurConfig>>buildDirName (in category 'squeak compatibility') -----
- buildDirName
- 	buildType isNil
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was removed:
- ----- Method: SqueakFreeBSDNewspeakStackV3Config>>buildDirName (in category 'squeak compatibility') -----
- buildDirName
- 	buildType isNil
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was removed:
- ----- Method: SqueakFreeBSDSqueakCogSpurConfig>>buildDirName (in category 'squeak compatibility') -----
- buildDirName
- 	buildType isNil
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was removed:
- ----- Method: SqueakFreeBSDSqueakCogV3Config>>buildDirName (in category 'squeak compatibility') -----
- buildDirName
- 	buildType isNil
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was removed:
- ----- Method: SqueakFreeBSDSqueakSistaSpurConfig>>buildDirName (in category 'squeak compatibility') -----
- buildDirName
- 	buildType isNil
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was removed:
- ----- Method: SqueakFreeBSDSqueakSistaV3Config>>buildDirName (in category 'squeak compatibility') -----
- buildDirName
- 	buildType isNil
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was removed:
- ----- Method: SqueakFreeBSDSqueakStackSpurConfig>>buildDirName (in category 'squeak compatibility') -----
- buildDirName
- 	buildType isNil
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was removed:
- ----- Method: SqueakFreeBSDSqueakStackV3Config>>buildDirName (in category 'squeak compatibility') -----
- buildDirName
- 	buildType isNil
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was changed:
  ----- Method: SqueakIA32BochsConfig>>buildDirName (in category 'squeak compatibility') -----
  buildDirName
  	buildType isNil
+ 		ifTrue:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, 'build']
+ 		ifFalse:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, buildType asString]!
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was changed:
  ----- Method: SqueakMacOSConfig>>buildDirName (in category 'squeak compatibility') -----
  buildDirName
  	buildType isNil
+ 		ifTrue:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, 'build']
+ 		ifFalse:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, buildType asString]!
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was removed:
- ----- Method: SqueakMacOSV3Config>>buildDirName (in category 'directories') -----
- buildDirName
- 	^ 'cmake_macbuild'!

Item was changed:
  ----- Method: SqueakMacOSX32x86Config>>buildDirName (in category 'directories') -----
  buildDirName
+ 	buildType isNil
+ 		ifTrue:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, 'build']
+ 		ifFalse:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, buildType asString]!
- 	^ 'cmake_macbuild'!

Item was changed:
  ----- Method: SqueakMacOSXPowerPCConfig>>buildDirName (in category 'directories') -----
  buildDirName
+ 	buildType isNil
+ 		ifTrue:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, 'build']
+ 		ifFalse:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, buildType asString]!
- 	^ 'cmake_macbuild'!

Item was changed:
  ----- Method: SqueakSunOS32x86Config>>buildDirName (in category 'squeak compatibility') -----
  buildDirName
  	buildType isNil
+ 		ifTrue:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, 'build']
+ 		ifFalse:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, buildType asString]!
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was changed:
  ----- Method: SqueakWin32x86CogFamilyConfig>>buildDirName (in category 'directories') -----
  buildDirName
  	buildType isNil
+ 		ifTrue:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, 'build']
+ 		ifFalse:[^self dirBuildPlatform, FileDirectory slash, self dirBuildLanguageVMMM, FileDirectory slash, buildType asString]!
- 		ifTrue:[^self dirBuildPlatform, self dirBuildLanguageVMMM, 'build']
- 		ifFalse:[^self dirBuildPlatform, self dirBuildLanguageVMMM, buildType asString]!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>dirARMv6 (in category 'cmake') -----
+ dirARMv6
+ 	^'cmake.build.arm.v6'!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>dirBSD32x86 (in category 'cmake') -----
  dirBSD32x86
+ 	^'cmake.build.bsd32x86'!
- 	^'cmake_build.bsd32x86'!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>dirIA32Bochs (in category 'cmake') -----
  dirIA32Bochs
+ 	^'cmake.build.ia32bochs'!
- 	^'cmake_build.ia32bochs'!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>dirIOS (in category 'cmake') -----
  dirIOS
+ 	^'cmake.build.ios'!
- 	^'cmake_build.ios'!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>dirLinux32Armv6 (in category 'cmake') -----
  dirLinux32Armv6
+ 	^'cmake.build.linux32armv6'!
- 	^'cmake_build.linux32armv6'!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>dirLinux32x86 (in category 'cmake') -----
  dirLinux32x86
+ 	^'cmake.build.linux32x86'!
- 	^'cmake_build.linux32x86'!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>dirLinux32x8664 (in category 'cmake') -----
  dirLinux32x8664
+ 	^'cmake.build.linux32_64x86'!
- 	^'cmake_build.linux32x86_64'!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>dirMacOS (in category 'cmake') -----
  dirMacOS
+ 	^'cmake.build.macos'!
- 	^'cmake_build.macos'!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>dirMacOSPowerPC (in category 'cmake') -----
  dirMacOSPowerPC
+ 	^'cmake.build.macospowerpc'!
- 	^'cmake_build.macospowerpc'!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>dirMacOSX32x86 (in category 'cmake') -----
  dirMacOSX32x86
+ 	^'cmake.build.macosx32x86'!
- 	^'cmake_build.macosx32x86'!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>dirOutput (in category 'cmake') -----
  dirOutput
+ 	^'cmake.products'!
- 	^'cmake_products'!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>dirSunOS32x86 (in category 'cmake') -----
  dirSunOS32x86
+ 	^'cmake.build.sunos32x86'!
- 	^'cmake_build.sunos32x86'!

Item was removed:
- ----- Method: TCPlatformConfigForSqueak>>dirSunOS32x8664 (in category 'cmake') -----
- dirSunOS32x8664
- 	^'cmake_build.sunos32x86_64'!

Item was changed:
  ----- Method: TCPlatformConfigForSqueak>>dirWin32x86 (in category 'cmake') -----
  dirWin32x86
+ 	^'cmake.build.win32x86'!
- 	^'cmake_build.win32x86'!



More information about the Vm-dev mailing list