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

commits at source.squeak.org commits at source.squeak.org
Mon Jun 9 16:40:44 UTC 2014


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

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

Name: CMakeVMMakerSqueak-tty.39
Author: tty
Time: 9 June 2014, 12:40:45.466 pm
UUID: 5cb78cca-db81-4323-a74c-0147c85a5331
Ancestors: CMakeVMMakerSqueak-tty.38

Added infrastructure such that a Builder can instruct a Configuration to configure itself prior to a build. 
so something like: 

SqueakLinux32X86Builder 
	configureABuildFor:#Linux32x86SqueakCogV3Config withBuildType: #debug

checks configuratin exists, makes sure that configuration supports that build type and when tests pass, the configuration sets its internal flag.

Next up: roll the standard build types (#assert #assertWithHeartbeatTimer #debug #debugWithHeartbeatTimer #release #releaseHeartbeatTimer etc...)

 into each of the 24 standard configurations of  [Language][VM][MemoryManager]

Then, glom on special case configurations as subclasses of those 24 when warranted.

=============== Diff against CMakeVMMakerSqueak-tty.38 ===============

Item was changed:
  SystemOrganization addCategory: #CMakeVMMakerSqueak!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-Android'!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-BSD32x86'!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-Builder'!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-IA32-Bochs'!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-IOS'!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-Libs'!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-Linux32ARMv6'!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-Linux32x86'!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-LinuxX86_64'!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-LinuxX86_64-32Compatibility'!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-MacOS'!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-MacOSPowerPC'!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-MacOSX32x86'!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-SunOS32x86'!
- SystemOrganization addCategory: #'CMakeVMMakerSqueak-SunOS32x86_64'!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-Tests'!
  SystemOrganization addCategory: #'CMakeVMMakerSqueak-Win32x86'!

Item was changed:
  CPlatformConfig subclass: #Linux32x86Config
  	uses: TCPlatformConfigForSqueak
+ 	instanceVariableNames: 'buildType generateForAssert generateForAssertWithHeartbeatTimer generateForDebug generateForDebugWithHeartbeatTimer generateForDebugMultiThreadedFFI generateForReleaseHeartbeatTimer generateForReleaseMultiThreadedFFI generateForAssertHeartbeatTimer'
- 	instanceVariableNames: 'buildType'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-Linux32x86'!
  
  !Linux32x86Config commentStamp: 'tty 6/7/2014 10:40' prior: 0!
  A Linux32x86Config is a Squeak Compatibility Layer between the Pharo code in CMakeVMMaker and CMakeVMakerSqueak.
  
  I exist because modifying the pharo tree is verbotten as of 2014.06.10
  
  !
  Linux32x86Config class
  	uses: TCPlatformConfigForSqueak classTrait
  	instanceVariableNames: ''!

Item was added:
+ ----- Method: Linux32x86Config>>configureForAssert (in category 'cmake') -----
+ configureForAssert
+ 	generateForAssert := true.!

Item was added:
+ ----- Method: Linux32x86Config>>configureForAssertWithHeartbeatTimer (in category 'cmake') -----
+ configureForAssertWithHeartbeatTimer
+ 	generateForAssertWithHeartbeatTimer := true!

Item was added:
+ ----- Method: Linux32x86Config>>configureForDebug (in category 'cmake') -----
+ configureForDebug
+ 	generateForDebug := true!

Item was added:
+ ----- Method: Linux32x86Config>>configureForDebugMultiThreadedFFI (in category 'cmake') -----
+ configureForDebugMultiThreadedFFI
+ 	generateForDebugMultiThreadedFFI := true!

Item was added:
+ ----- Method: Linux32x86Config>>configureForDebugWithHeartbeatTimer (in category 'cmake') -----
+ configureForDebugWithHeartbeatTimer
+ 	generateForDebugWithHeartbeatTimer := true!

Item was added:
+ ----- Method: Linux32x86Config>>configureForRelease (in category 'cmake') -----
+ configureForRelease
+ 	"this variable is in pharo class CPlatformConfig"
+ 	generateForRelease := true.!

Item was added:
+ ----- Method: Linux32x86Config>>configureForReleaseHeartbeatTimer (in category 'cmake') -----
+ configureForReleaseHeartbeatTimer
+ 	generateForReleaseHeartbeatTimer := true.!

Item was added:
+ ----- Method: Linux32x86Config>>configureForReleaseMultiThreadedFFI (in category 'cmake') -----
+ configureForReleaseMultiThreadedFFI
+ 	generateForReleaseMultiThreadedFFI := true!

Item was added:
+ ----- Method: Linux32x86Config>>initialize (in category 'initialize-release') -----
+ initialize
+ 	super initialize.
+ 	"this should be in my superclass, but I do not have permission to modify it. tty"
+ 	 generateForAssert:= generateForAssertHeartbeatTimer:= generateForDebug :=generateForDebugWithHeartbeatTimer:= generateForDebugMultiThreadedFFI:= generateForReleaseHeartbeatTimer:= generateForReleaseMultiThreadedFFI:=false!

Item was changed:
  CogFamilyUnixConfig subclass: #Linux32x86SqueakCogV3Config
  	uses: TCPlatformConfigForSqueak
+ 	instanceVariableNames: 'buildType generateForAssert generateForDebug generateForDebugWithHeartbeatTimer generateForDebugMultiThreadedFFI generateForReleaseHeartbeatTimer generateForReleaseMultiThreadedFFI generateForAssertHeartbeatTimer'
- 	instanceVariableNames: 'buildType'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-Linux32x86'!
  
  !Linux32x86SqueakCogV3Config commentStamp: 'tty 6/7/2014 10:35' prior: 0!
  Base and concrete configuration for building a CogVM on Unix platform(s).
  
  Usage: 
  Linux32x86SqueakCogV3Config generateWithSources
  or
  Linux32x86SqueakCogV3Config generate   "if VMMaker sources already there"
  
  Or:
  find my Builder in CMakeVMMakerSqueak-Builder category and use that to query me or invoke me
  !
  Linux32x86SqueakCogV3Config class
  	uses: TCPlatformConfigForSqueak classTrait
  	instanceVariableNames: ''!

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Config>>configureForAssert (in category 'cmake') -----
+ configureForAssert
+ 	generateForAssert := true
+ !

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Config>>configureForAssertWithHeartbeatTimer (in category 'cmake') -----
+ configureForAssertWithHeartbeatTimer
+ 	generateForAssertHeartbeatTimer := true.
+ 
+ !

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Config>>configureForDebug (in category 'cmake') -----
+ configureForDebug
+ 	generateForDebug := true
+ !

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Config>>configureForDebugMultiThreadedFFI (in category 'cmake') -----
+ configureForDebugMultiThreadedFFI
+ 	generateForDebugMultiThreadedFFI := true
+ 
+ !

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Config>>configureForDebugWithHeartbeatTimer (in category 'cmake') -----
+ configureForDebugWithHeartbeatTimer
+ 	generateForDebugWithHeartbeatTimer := true
+ !

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Config>>configureForRelease (in category 'cmake') -----
+ configureForRelease
+ 	"this variable is in pharo class CPlatformConfig"
+ 	generateForRelease := true.
+ 
+ !

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Config>>configureForReleaseHeartbeatTimer (in category 'cmake') -----
+ configureForReleaseHeartbeatTimer
+ 	generateForReleaseHeartbeatTimer := true.
+ 
+ !

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Config>>configureForReleaseMultiThreadedFFI (in category 'cmake') -----
+ configureForReleaseMultiThreadedFFI
+ 	generateForReleaseMultiThreadedFFI := true
+ !

Item was added:
+ ----- Method: Linux32x86SqueakCogV3Config>>initialize (in category 'initialize-release') -----
+ initialize
+ 	super initialize.
+ 	"this should be in my superclass, but I do not have permission to modify it. tty"
+ 	 generateForAssert:= generateForAssertHeartbeatTimer:= generateForDebug :=generateForDebugWithHeartbeatTimer:= generateForDebugMultiThreadedFFI:= generateForReleaseHeartbeatTimer:= generateForReleaseMultiThreadedFFI:=false!

Item was changed:
  StackUnixConfig subclass: #Linux32x86SqueakStackV3Config
  	uses: TCPlatformConfigForSqueak
+ 	instanceVariableNames: 'buildType generateForAssert generateForDebug generateForDebugWithHeartbeatTimer generateForDebugMultiThreadedFFI generateForReleaseHeartbeatTimer generateForReleaseMultiThreadedFFI generateForAssertHeartbeatTimer'
- 	instanceVariableNames: 'buildType'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-Linux32x86'!
  
  !Linux32x86SqueakStackV3Config commentStamp: 'tty 6/7/2014 10:33' prior: 0!
  A Linux32x86SqueakStackV3Config  configures a VM according to my name's form: [Operating System] [WordSize] [Processor Language][VM MemoryManager][BuildType]Conf
  
  Usage: 
  Linux32x86SqueakStackV3Config generate
  Or: 
  Linux32x86SqueakStackV3Config generateWithSources
  Or: 
  find my Builder in CMakeVMMakerSqueak-Builder category and use that to query me or invoke me
  !
  Linux32x86SqueakStackV3Config class
  	uses: TCPlatformConfigForSqueak classTrait
  	instanceVariableNames: ''!

Item was added:
+ ----- Method: Linux32x86SqueakStackV3Config>>configureForAssert (in category 'cmake') -----
+ configureForAssert
+ 	generateForAssert := true
+ !

Item was added:
+ ----- Method: Linux32x86SqueakStackV3Config>>configureForAssertWithHeartbeatTimer (in category 'cmake') -----
+ configureForAssertWithHeartbeatTimer
+ 	generateForAssertHeartbeatTimer := true.
+ !

Item was added:
+ ----- Method: Linux32x86SqueakStackV3Config>>configureForDebug (in category 'cmake') -----
+ configureForDebug
+ 	generateForDebug := true
+ !

Item was added:
+ ----- Method: Linux32x86SqueakStackV3Config>>configureForDebugMultiThreadedFFI (in category 'cmake') -----
+ configureForDebugMultiThreadedFFI
+ 	generateForDebugMultiThreadedFFI := true
+ !

Item was added:
+ ----- Method: Linux32x86SqueakStackV3Config>>configureForDebugWithHeartbeatTimer (in category 'cmake') -----
+ configureForDebugWithHeartbeatTimer
+ 	generateForDebugWithHeartbeatTimer := true
+ !

Item was added:
+ ----- Method: Linux32x86SqueakStackV3Config>>configureForRelease (in category 'cmake') -----
+ configureForRelease
+ 	"this variable is in pharo class CPlatformConfig"
+ 	generateForRelease := true.
+ !

Item was added:
+ ----- Method: Linux32x86SqueakStackV3Config>>configureForReleaseHeartbeatTimer (in category 'cmake') -----
+ configureForReleaseHeartbeatTimer
+ 	generateForReleaseHeartbeatTimer := true.
+ !

Item was added:
+ ----- Method: Linux32x86SqueakStackV3Config>>configureForReleaseMultiThreadedFFI (in category 'cmake') -----
+ configureForReleaseMultiThreadedFFI
+ 	generateForReleaseMultiThreadedFFI := true!

Item was added:
+ ----- Method: Linux32x86SqueakStackV3Config>>initialize (in category 'initialize-release') -----
+ initialize
+ 	super initialize.
+ 	"this should be in my superclass, but I do not have permission to modify it. tty"
+ 	 generateForAssert:= generateForAssertHeartbeatTimer:= generateForDebug :=generateForDebugWithHeartbeatTimer:= generateForDebugMultiThreadedFFI:= generateForReleaseHeartbeatTimer:= generateForReleaseMultiThreadedFFI:=false!

Item was changed:
  CPlatformConfig subclass: #SqueakAndroidStackEvtConfig
  	uses: TCPlatformConfigForSqueak
+ 	instanceVariableNames: 'buildType generateForAssert generateForAssertWithHeartbeatTimer generateForDebug generateForDebugWithHeartbeatTimer generateForDebugMultiThreadedFFI generateForReleaseHeartbeatTimer generateForReleaseMultiThreadedFFI generateForAssertHeartbeatTimer'
- 	instanceVariableNames: 'buildType'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-Android'!
  
  !SqueakAndroidStackEvtConfig commentStamp: 'tty 5/21/2014 12:18' prior: 0!
  A class to configure the Event-driven Stack Cog for Android. This configuration does not lead to building an executable; rather it prepares the source tree to be plugged into the jni subdirectory of an Android project.
  
  Requires AndroidPlugin
  
  Ported from pharo to squeak. !
  SqueakAndroidStackEvtConfig class
  	uses: TCPlatformConfigForSqueak classTrait
  	instanceVariableNames: ''!

Item was added:
+ ----- Method: SqueakAndroidStackEvtConfig>>configureForAssert (in category 'cmake') -----
+ configureForAssert
+ 	generateForAssert := true!

Item was added:
+ ----- Method: SqueakAndroidStackEvtConfig>>configureForAssertWithHeartbeatTimer (in category 'cmake') -----
+ configureForAssertWithHeartbeatTimer
+ 	generateForAssertHeartbeatTimer := true.!

Item was added:
+ ----- Method: SqueakAndroidStackEvtConfig>>configureForDebug (in category 'cmake') -----
+ configureForDebug
+ 	generateForDebug := true!

Item was added:
+ ----- Method: SqueakAndroidStackEvtConfig>>configureForDebugMultiThreadedFFI (in category 'cmake') -----
+ configureForDebugMultiThreadedFFI
+ 	generateForDebugMultiThreadedFFI := true!

Item was added:
+ ----- Method: SqueakAndroidStackEvtConfig>>configureForDebugWithHeartbeatTimer (in category 'cmake') -----
+ configureForDebugWithHeartbeatTimer
+ 	generateForDebugWithHeartbeatTimer := true!

Item was added:
+ ----- Method: SqueakAndroidStackEvtConfig>>configureForNoBuildType (in category 'cmake') -----
+ configureForNoBuildType
+ 	self initialize!

Item was added:
+ ----- Method: SqueakAndroidStackEvtConfig>>configureForRelease (in category 'cmake') -----
+ configureForRelease
+ 	"this variable is in pharo class CPlatformConfig"
+ 	generateForRelease := true.!

Item was added:
+ ----- Method: SqueakAndroidStackEvtConfig>>configureForReleaseHeartbeatTimer (in category 'cmake') -----
+ configureForReleaseHeartbeatTimer
+ 	generateForReleaseHeartbeatTimer := true.!

Item was added:
+ ----- Method: SqueakAndroidStackEvtConfig>>configureForReleaseMultiThreadedFFI (in category 'cmake') -----
+ configureForReleaseMultiThreadedFFI
+ 	generateForReleaseMultiThreadedFFI := true!

Item was added:
+ ----- Method: SqueakAndroidStackEvtConfig>>initialize (in category 'initialize-release') -----
+ initialize
+ 	super initialize.
+ 	"this should be in my superclass, but I do not have permission to modify it. tty"
+ 	 generateForAssert:= generateForAssertHeartbeatTimer:= generateForDebug :=generateForDebugWithHeartbeatTimer:= generateForDebugMultiThreadedFFI:= generateForReleaseHeartbeatTimer:= generateForReleaseMultiThreadedFFI:=false!

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

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>buildTypeAndDirectoryInfo (in category 'accessing') -----
+ buildTypeAndDirectoryInfo
+ 
+ 	^ buildTypeAndDirectoryInfo!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>configureABuildFor:withBuildType: (in category 'building') -----
+ configureABuildFor: configSymbol withBuildType: typeSymbol
+ 	|config i |
+ 	"Do some sanity checks, then set the internal state of a Configuration for a particular build type. "
+ 	[
+ 	((Smalltalk at: configSymbol)  category) =  (self configurationsCategory)  "verify the class is handled by this concrete builder"
+ 		ifTrue:[	
+ 				config := (Smalltalk at: configSymbol) new.                              "verify this config can handle this build type."
+ 				i:=config availableBuilds indexOf:typeSymbol                                    
+ 						ifAbsent:[^self userErrorInvalidBuildType: typeSymbol 
+ 										forConfiguration: configSymbol 
+ 										hasTypes: config availableBuilds].
+ 				config configureForBuildType: typeSymbol.                             "config configure yourself"
+ 				^config]
+ 		ifFalse:[^self userErrorInvalidTarget: configSymbol]
+ 	] ifError:[^'error configureABuildFor: ''', configSymbol].
+ 
+ 	^nil.
+ 	
+ 
+ 	!

Item was added:
+ ----- Method: SqueakCMakeVMMakerAbstractBuilder>>userErrorInvalidBuildType:forConfiguration:hasTypes: (in category 'queries') -----
+ userErrorInvalidBuildType: typeSymbol forConfiguration: configSymbol hasTypes: anOrderedCollection
+ 	^'The configuration: ', configSymbol, 'does not support buildType ', typeSymbol, '. supported types are:', anOrderedCollection
+ !

Item was changed:
  CPlatformConfig subclass: #SqueakIA32BochsConfig
  	uses: TCPlatformConfigForSqueak
+ 	instanceVariableNames: 'buildType generateForAssert generateForAssertWithHeartbeatTimer generateForDebug generateForDebugWithHeartbeatTimer generateForDebugMultiThreadedFFI generateForReleaseHeartbeatTimer generateForReleaseMultiThreadedFFI generateForAssertHeartbeatTimer'
- 	instanceVariableNames: 'buildType'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-IA32-Bochs'!
  
  !SqueakIA32BochsConfig commentStamp: 'tty 6/7/2014 10:46' prior: 0!
  A SqueakIA32BochsConfig is a Squeak Compatibility Layer between the Pharo code in CMakeVMMaker and CMakeVMakerSqueak.
  
  I exist because modifying the pharo tree is verbotten as of 2014.06.10!
  SqueakIA32BochsConfig class
  	uses: TCPlatformConfigForSqueak classTrait
  	instanceVariableNames: ''!

Item was added:
+ ----- Method: SqueakIA32BochsConfig>>configureForAssert (in category 'cmake') -----
+ configureForAssert
+ 	generateForAssert := true
+ !

Item was added:
+ ----- Method: SqueakIA32BochsConfig>>configureForAssertWithHeartbeatTimer (in category 'cmake') -----
+ configureForAssertWithHeartbeatTimer
+ 	generateForAssertHeartbeatTimer := true.
+ !

Item was added:
+ ----- Method: SqueakIA32BochsConfig>>configureForDebug (in category 'cmake') -----
+ configureForDebug
+ 	generateForDebug := true
+ !

Item was added:
+ ----- Method: SqueakIA32BochsConfig>>configureForDebugMultiThreadedFFI (in category 'cmake') -----
+ configureForDebugMultiThreadedFFI
+ 	generateForDebugMultiThreadedFFI := true
+ !

Item was added:
+ ----- Method: SqueakIA32BochsConfig>>configureForDebugWithHeartbeatTimer (in category 'cmake') -----
+ configureForDebugWithHeartbeatTimer
+ 	generateForDebugWithHeartbeatTimer := true
+ !

Item was added:
+ ----- Method: SqueakIA32BochsConfig>>configureForRelease (in category 'cmake') -----
+ configureForRelease
+ 	"this variable is in pharo class CPlatformConfig"
+ 	generateForRelease := true.
+ !

Item was added:
+ ----- Method: SqueakIA32BochsConfig>>configureForReleaseHeartbeatTimer (in category 'cmake') -----
+ configureForReleaseHeartbeatTimer
+ 	generateForReleaseHeartbeatTimer := true.
+ !

Item was added:
+ ----- Method: SqueakIA32BochsConfig>>configureForReleaseMultiThreadedFFI (in category 'cmake') -----
+ configureForReleaseMultiThreadedFFI
+ 	generateForReleaseMultiThreadedFFI := true
+ !

Item was added:
+ ----- Method: SqueakIA32BochsConfig>>initialize (in category 'initialize-release') -----
+ initialize
+ 	super initialize.
+ 	"this should be in my superclass, but I do not have permission to modify it. tty"
+ 	 generateForAssert:= generateForAssertHeartbeatTimer:= generateForDebug :=generateForDebugWithHeartbeatTimer:= generateForDebugMultiThreadedFFI:= generateForReleaseHeartbeatTimer:= generateForReleaseMultiThreadedFFI:=false!

Item was changed:
  CPlatformConfig subclass: #SqueakMacOSConfig
  	uses: TCPlatformConfigForSqueak
+ 	instanceVariableNames: 'buildType generateForAssert generateForDebug generateForDebugWithHeartbeatTimer generateForDebugMultiThreadedFFI generateForReleaseHeartbeatTimer generateForReleaseMultiThreadedFFI generateForAssertHeartbeatTimer'
- 	instanceVariableNames: 'buildType'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-MacOS'!
  
  !SqueakMacOSConfig commentStamp: 'tty 6/7/2014 10:26' prior: 0!
  A SqueakMacOSConfig  configures a VM according to my name's form: [Operating System] [WordSize] [Processor Language][VM MemoryManager][BuildType]Conf
  !
  SqueakMacOSConfig class
  	uses: TCPlatformConfigForSqueak classTrait
  	instanceVariableNames: ''!

Item was added:
+ ----- Method: SqueakMacOSConfig>>configureForAssert (in category 'cmake') -----
+ configureForAssert
+ 	generateForAssert := true
+ !

Item was added:
+ ----- Method: SqueakMacOSConfig>>configureForAssertWithHeartbeatTimer (in category 'cmake') -----
+ configureForAssertWithHeartbeatTimer
+ 	generateForAssertHeartbeatTimer := true.
+ !

Item was added:
+ ----- Method: SqueakMacOSConfig>>configureForDebug (in category 'cmake') -----
+ configureForDebug
+ 	generateForDebug := true
+ !

Item was added:
+ ----- Method: SqueakMacOSConfig>>configureForDebugMultiThreadedFFI (in category 'cmake') -----
+ configureForDebugMultiThreadedFFI
+ 	generateForDebugMultiThreadedFFI := true
+ !

Item was added:
+ ----- Method: SqueakMacOSConfig>>configureForDebugWithHeartbeatTimer (in category 'cmake') -----
+ configureForDebugWithHeartbeatTimer
+ 	generateForDebugWithHeartbeatTimer := true
+ !

Item was added:
+ ----- Method: SqueakMacOSConfig>>configureForRelease (in category 'cmake') -----
+ configureForRelease
+ 	"this variable is in pharo class CPlatformConfig"
+ 	generateForRelease := true.
+ !

Item was added:
+ ----- Method: SqueakMacOSConfig>>configureForReleaseHeartbeatTimer (in category 'cmake') -----
+ configureForReleaseHeartbeatTimer
+ 	generateForReleaseHeartbeatTimer := true.
+ !

Item was added:
+ ----- Method: SqueakMacOSConfig>>configureForReleaseMultiThreadedFFI (in category 'cmake') -----
+ configureForReleaseMultiThreadedFFI
+ 	generateForReleaseMultiThreadedFFI := true
+ !

Item was added:
+ ----- Method: SqueakMacOSConfig>>initialize (in category 'initialize-release') -----
+ initialize
+ 	super initialize.
+ 	"this should be in my superclass, but I do not have permission to modify it. tty"
+ 	 generateForAssert:= generateForAssertHeartbeatTimer:= generateForDebug :=generateForDebugWithHeartbeatTimer:= generateForDebugMultiThreadedFFI:= generateForReleaseHeartbeatTimer:= generateForReleaseMultiThreadedFFI:=false!

Item was removed:
- CPlatformConfig subclass: #SqueakSunOS32x8664CogConfig
- 	uses: TCPlatformConfigForSqueak
- 	instanceVariableNames: 'buildType'
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'CMakeVMMakerSqueak-SunOS32x86_64'!
- 
- !SqueakSunOS32x8664CogConfig commentStamp: 'tty 6/7/2014 10:23' prior: 0!
- A SqueakSunOS32x8664CogConfig is xxxxxxxxx.
- 
- 
- usage: 
- SqueakSunOS32x8664CogConfig generate
- or
- SqueakSunOS32x8664CogConfig generateWithSources
- or:
- find my Builder in CMakeVMMakerSqueak-Builder category and use that to query me or invoke me!
- SqueakSunOS32x8664CogConfig class
- 	uses: TCPlatformConfigForSqueak classTrait
- 	instanceVariableNames: ''!

Item was removed:
- ----- Method: SqueakSunOS32x8664CogConfig>>availableBuilds (in category 'cmake') -----
- availableBuilds
- 	^SqueakCMakeVMMakerAbstractBuilder  default  noBuildConfigurations
- 
- !

Item was removed:
- ----- Method: SqueakSunOS32x8664CogConfig>>buildDir (in category 'squeak compatibility') -----
- buildDir
- 	^ buildDir ifNil: [ buildDir := ( self topDir / self buildDirName) assureExistence].!

Item was removed:
- ----- Method: SqueakSunOS32x8664CogConfig>>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: SqueakSunOS32x8664CogConfig>>buildType: (in category 'squeak compatibility') -----
- buildType: aSymbol
- 	buildType:= aSymbol!

Item was removed:
- ----- Method: SqueakSunOS32x8664CogConfig>>defaultExternalPlugins (in category 'cmake') -----
- defaultExternalPlugins
- 	^#(	)!

Item was removed:
- ----- Method: SqueakSunOS32x8664CogConfig>>defaultInternalPlugins (in category 'cmake') -----
- defaultInternalPlugins
- 	^#(	)!

Item was removed:
- ----- Method: SqueakSunOS32x8664CogConfig>>dirBuildLanguageVMMM (in category 'cmake') -----
- dirBuildLanguageVMMM
- 	"the directory under buildPlatformDir  example: newspeak.cog.spur. use squeak.cog.v3 as default"
- 	^self squeakCogV3!

Item was removed:
- ----- Method: SqueakSunOS32x8664CogConfig>>dirBuildPlatform (in category 'cmake') -----
- dirBuildPlatform
- 	"the directory for the platform. example: build.linux32x86"
- 	^self dirSunOS32x8664!

Item was removed:
- ----- Method: SqueakSunOS32x8664CogConfig>>outputDir (in category 'squeak compatibility') -----
- outputDir
- 	^ outputDir ifNil: [ outputDir := (self topDir / self outputDirName) ]	
- !

Item was removed:
- ----- Method: SqueakSunOS32x8664CogConfig>>srcDir (in category 'squeak compatibility') -----
- srcDir
- 		^ srcDir ifNil: [ srcDir := (self topDir directoryNamed: 'src' )]!

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

Item was removed:
- ----- Method: SqueakSunOS32x8664CogConfig>>topDir (in category 'squeak compatibility') -----
- topDir
- 		^ topDir ifNil: [ topDir := FileDirectory default directoryNamed: self oscogvm ]!

Item was changed:
  CPlatformConfig subclass: #SqueakSunOS32x86CogConfig
  	uses: TCPlatformConfigForSqueak
+ 	instanceVariableNames: 'buildType generateForAssert generateForDebug generateForDebugWithHeartbeatTimer generateForDebugMultiThreadedFFI generateForReleaseHeartbeatTimer generateForReleaseMultiThreadedFFI generateForAssertHeartbeatTimer'
- 	instanceVariableNames: 'buildType'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-SunOS32x86'!
  
  !SqueakSunOS32x86CogConfig commentStamp: 'tty 6/7/2014 10:24' prior: 0!
  A SqueakSunOS32x86CogConfig is xxxxxxxxx.
  
  
  usage: 
  SqueakSunOS32x86CogConfig generate
  or
  SqueakSunOS32x86CogConfig generateWithSources
  or:
  find my Builder in CMakeVMMakerSqueak-Builder category and use that to query me or invoke me!
  SqueakSunOS32x86CogConfig class
  	uses: TCPlatformConfigForSqueak classTrait
  	instanceVariableNames: ''!

Item was added:
+ ----- Method: SqueakSunOS32x86CogConfig>>configureForAssert (in category 'cmake') -----
+ configureForAssert
+ 	generateForAssert := true
+ !

Item was added:
+ ----- Method: SqueakSunOS32x86CogConfig>>configureForAssertWithHeartbeatTimer (in category 'cmake') -----
+ configureForAssertWithHeartbeatTimer
+ 	generateForAssertHeartbeatTimer := true.
+ !

Item was added:
+ ----- Method: SqueakSunOS32x86CogConfig>>configureForDebug (in category 'cmake') -----
+ configureForDebug
+ 	generateForDebug := true
+ !

Item was added:
+ ----- Method: SqueakSunOS32x86CogConfig>>configureForDebugMultiThreadedFFI (in category 'cmake') -----
+ configureForDebugMultiThreadedFFI
+ 	generateForDebugMultiThreadedFFI := true
+ !

Item was added:
+ ----- Method: SqueakSunOS32x86CogConfig>>configureForDebugWithHeartbeatTimer (in category 'cmake') -----
+ configureForDebugWithHeartbeatTimer
+ 	generateForDebugWithHeartbeatTimer := true
+ !

Item was added:
+ ----- Method: SqueakSunOS32x86CogConfig>>configureForRelease (in category 'cmake') -----
+ configureForRelease
+ 	"this variable is in pharo class CPlatformConfig"
+ 	generateForRelease := true.
+ !

Item was added:
+ ----- Method: SqueakSunOS32x86CogConfig>>configureForReleaseHeartbeatTimer (in category 'cmake') -----
+ configureForReleaseHeartbeatTimer
+ 	generateForReleaseHeartbeatTimer := true.
+ !

Item was added:
+ ----- Method: SqueakSunOS32x86CogConfig>>configureForReleaseMultiThreadedFFI (in category 'cmake') -----
+ configureForReleaseMultiThreadedFFI
+ 	generateForReleaseMultiThreadedFFI := true!

Item was added:
+ ----- Method: SqueakSunOS32x86CogConfig>>initialize (in category 'initialize-release') -----
+ initialize
+ 	super initialize.
+ 	"this should be in my superclass, but I do not have permission to modify it. tty"
+ 	 generateForAssert:= generateForAssertHeartbeatTimer:= generateForDebug :=generateForDebugWithHeartbeatTimer:= generateForDebugMultiThreadedFFI:= generateForReleaseHeartbeatTimer:= generateForReleaseMultiThreadedFFI:=false!

Item was changed:
  CPlatformConfig subclass: #SqueakWin32x86CogFamilyConfig
  	uses: TCPlatformConfigForSqueak
+ 	instanceVariableNames: 'buildType generateForAssert generateForDebug generateForDebugWithHeartbeatTimer generateForDebugMultiThreadedFFI generateForReleaseHeartbeatTimer generateForReleaseMultiThreadedFFI generateForAssertHeartbeatTimer'
- 	instanceVariableNames: 'buildType'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-Win32x86'!
  
  !SqueakWin32x86CogFamilyConfig commentStamp: '<historical>' prior: 0!
  This is an abstract class and it is the root configuration for building all types of Cog VMs on MS-Windows platform.
  
  
  What you need to get started:
  
  Download and install Msys, with C/C++ compiler support:
  	http://www.mingw.org/wiki/msys
  	
  Download and install Git:
  	http://code.google.com/p/msysgit/
  	
  
  ///
  Optional: add git to the PATH variable:
  
  Add path to git for msys:
  Control panel -> System -> System Properies / Advanced  [ Environment Variables ]
  
  There should be already:
  C:\Program Files\Git\cmd
  
  add:
  
  C:\Program Files\Git\bin
  
  /// For automated builds, add SQUEAKVM environment variable and set it to the full path to squeak executable.
  
  (Control panel -> System -> System Properies / Advanced  [ Environment Variables ])
  
  in windows shell you can use it then to run squeak: %SQUEAKVM%  , and in mingw bash shell, use $SQUEAKVM
  
  /// Install CMake:
  http://www.cmake.org/cmake/resources/software.html
  
  (during installation, in install options , make sure that you choose to add CMake to PATH)
  
  
  Note, to run cmake under msys shell, you have to explicitly specify the msys makefiles generator, because default one is MS:
  
  cmake . -G"MSYS Makefiles"
  
  
  Fore more information, check the class comments of all the superclasses.
  !
  SqueakWin32x86CogFamilyConfig class
  	uses: TCPlatformConfigForSqueak classTrait
  	instanceVariableNames: ''!

Item was changed:
+ ----- Method: SqueakWin32x86CogFamilyConfig>>addThirdpartyLibrary: (in category 'thirdparty libs') -----
- ----- Method: SqueakWin32x86CogFamilyConfig>>addThirdpartyLibrary: (in category 'as yet unclassified') -----
  addThirdpartyLibrary: libName
  	| libs lib |
  	
  	libs := self thirdpartyLibs.
  	
  	lib :=  libs 
  		detect: [:each | each canonicalName = libName ] 
  		ifNone: [ nil ].
  		
  	lib ifNil: [ 
  		lib := SqueakCMThirdpartyLibrary named: libName config: self.
  		"add dependencies first, so thirpartyLibs collection will be naturally dependency sorted"
  		lib dependencies do: [:dep | self addThirdpartyLibrary: dep ].
  		libs add: lib ].
  
  	^ lib!

Item was added:
+ ----- Method: SqueakWin32x86CogFamilyConfig>>initialize (in category 'initialize-release') -----
+ initialize
+ 	super initialize.
+ 	"this should be in my superclass, but I do not have permission to modify it. tty"
+ 	 generateForAssert:= generateForAssertHeartbeatTimer:= generateForDebug :=generateForDebugWithHeartbeatTimer:= generateForDebugMultiThreadedFFI:= generateForReleaseHeartbeatTimer:= generateForReleaseMultiThreadedFFI:=false!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>configureForAssert (in category 'cmake') -----
+ configureForAssert
+ 	self required!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>configureForAssertWithHeartbeatTimer (in category 'cmake') -----
+ configureForAssertWithHeartbeatTimer
+ 	self required!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>configureForBuildType: (in category 'cmake') -----
+ configureForBuildType: aSymbol
+ 	| d |
+ 	self configureForNoBuildType.                "reset all internal flags"
+ 	d:= SqueakCMakeVMMakerAbstractBuilder default buildTypeAndDirectoryInfo.
+ 	d 
+ 		at: #assert put:[self configureForAssert];
+ 		at: #assertWithHeartbeatTimer put: [self configureForAssertWithHeartbeatTimer];
+             at:#debug put: [self configureForDebug];
+ 		at: #debugWithHeartbeatTimer put: [self configureForDebugWithHeartbeatTimer];
+ 		at: #debugMultiThreadedFFI put: [self configureForDebugMultiThreadedFFI];
+ 		at: #release put: [self configureForRelease];
+ 		at: #releaseHeartbeatTimer put: [self configureForReleaseHeartbeatTimer];
+ 		at: #releaseMultiThreadedFFI put: [self configureForReleaseMultiThreadedFFI].
+      ^(d at: aSymbol) value!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>configureForDebug (in category 'cmake') -----
+ configureForDebug
+ 	self required!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>configureForDebugMultiThreadedFFI (in category 'cmake') -----
+ configureForDebugMultiThreadedFFI
+ 	self required!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>configureForDebugWithHeartbeatTimer (in category 'cmake') -----
+ configureForDebugWithHeartbeatTimer
+ 	self required!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>configureForNoBuildType (in category 'cmake') -----
+ configureForNoBuildType
+ 	"this could be dangerous. If it becomes so, then just reset all the generateForXYZ flags in the topmost config. Currently that is all that initialize does."
+ 	self initialize!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>configureForRelease (in category 'cmake') -----
+ configureForRelease
+ 	self required!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>configureForReleaseHeartbeatTimer (in category 'cmake') -----
+ configureForReleaseHeartbeatTimer
+ 	self required!

Item was added:
+ ----- Method: TCPlatformConfigForSqueak>>configureForReleaseMultiThreadedFFI (in category 'cmake') -----
+ configureForReleaseMultiThreadedFFI
+ 	self required!

Item was changed:
  CPlatformConfig subclass: #Win32x86NewspeakCogV3Config
  	uses: TCPlatformConfigForSqueak
+ 	instanceVariableNames: 'buildType generateForAssert generateForAssertHeartbeatTimer generateForDebug generateForDebugWithHeartbeatTimer generateForDebugMultiThreadedFFI generateForReleaseHeartbeatTimer generateForReleaseMultiThreadedFFI'
- 	instanceVariableNames: 'buildType'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-Win32x86'!
  
  !Win32x86NewspeakCogV3Config commentStamp: 'tty 6/7/2014 10:22' prior: 0!
  I configure a VM according to my name's form: [Operating System] [WordSize] [Processor Language][VM MemoryManager][BuildType]Conf
  
  
  !
  Win32x86NewspeakCogV3Config class
  	uses: TCPlatformConfigForSqueak classTrait
  	instanceVariableNames: ''!

Item was added:
+ ----- Method: Win32x86NewspeakCogV3Config>>initialize (in category 'cmake') -----
+ initialize
+ 	super initialize.
+ 	"this should be in my superclass, but I do not have permission to modify it. tty"
+ 	 generateForAssert:= generateForAssertHeartbeatTimer:= generateForDebug :=generateForDebugWithHeartbeatTimer:= generateForDebugMultiThreadedFFI:= generateForReleaseHeartbeatTimer:= generateForReleaseMultiThreadedFFI:=false!

Item was changed:
  CPlatformConfig subclass: #Win32x86NewspeakStackV3Config
  	uses: TCPlatformConfigForSqueak
+ 	instanceVariableNames: 'buildType generateForAssert generateForAssertHeartbeatTimer generateForDebug generateForDebugWithHeartbeatTimer generateForDebugMultiThreadedFFI generateForReleaseHeartbeatTimer generateForReleaseMultiThreadedFFI'
- 	instanceVariableNames: 'buildType'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-Win32x86'!
  
  !Win32x86NewspeakStackV3Config commentStamp: 'tty 6/7/2014 10:22' prior: 0!
  I configure a VM according to my name's form: [Operating System] [WordSize] [Processor Language][VM MemoryManager][BuildType]Conf
  
  
  !
  Win32x86NewspeakStackV3Config class
  	uses: TCPlatformConfigForSqueak classTrait
  	instanceVariableNames: ''!

Item was added:
+ ----- Method: Win32x86NewspeakStackV3Config>>initialize (in category 'initialize-release') -----
+ initialize
+ 	super initialize.
+ 	"this should be in my superclass, but I do not have permission to modify it. tty"
+ 	 generateForAssert:= generateForAssertHeartbeatTimer:= generateForDebug :=generateForDebugWithHeartbeatTimer:= generateForDebugMultiThreadedFFI:= generateForReleaseHeartbeatTimer:= generateForReleaseMultiThreadedFFI:=false!

Item was changed:
  CPlatformConfig subclass: #Win32x86SqueakCogSpurConfig
  	uses: TCPlatformConfigForSqueak
+ 	instanceVariableNames: 'buildType generateForAssert generateForAssertHeartbeatTimer generateForDebug generateForDebugWithHeartbeatTimer generateForDebugMultiThreadedFFI generateForReleaseHeartbeatTimer generateForReleaseMultiThreadedFFI'
- 	instanceVariableNames: 'buildType'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-Win32x86'!
  
  !Win32x86SqueakCogSpurConfig commentStamp: 'tty 6/7/2014 10:22' prior: 0!
  I configure a VM according to my name's form: [Operating System] [WordSize] [Processor Language][VM MemoryManager][BuildType]Conf
  
  
  !
  Win32x86SqueakCogSpurConfig class
  	uses: TCPlatformConfigForSqueak classTrait
  	instanceVariableNames: ''!

Item was added:
+ ----- Method: Win32x86SqueakCogSpurConfig>>initialize (in category 'initialize-release') -----
+ initialize
+ 	super initialize.
+ 	"this should be in my superclass, but I do not have permission to modify it. tty"
+ 	 generateForAssert:= generateForAssertHeartbeatTimer:= generateForDebug :=generateForDebugWithHeartbeatTimer:= generateForDebugMultiThreadedFFI:= generateForReleaseHeartbeatTimer:= generateForReleaseMultiThreadedFFI:=false!

Item was changed:
  CPlatformConfig subclass: #Win32x86SqueakStackSpurConfig
  	uses: TCPlatformConfigForSqueak
+ 	instanceVariableNames: 'buildType generateForAssert generateForAssertHeartbeatTimer generateForDebug generateForDebugWithHeartbeatTimer generateForDebugMultiThreadedFFI generateForReleaseHeartbeatTimer generateForReleaseMultiThreadedFFI'
- 	instanceVariableNames: 'buildType'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'CMakeVMMakerSqueak-Win32x86'!
  
  !Win32x86SqueakStackSpurConfig commentStamp: 'tty 6/7/2014 10:20' prior: 0!
  I configure a VM according to my name's form: [Operating System] [WordSize] [Processor Language][VM MemoryManager][BuildType]Conf
  
  !
  Win32x86SqueakStackSpurConfig class
  	uses: TCPlatformConfigForSqueak classTrait
  	instanceVariableNames: ''!

Item was added:
+ ----- Method: Win32x86SqueakStackSpurConfig>>initialize (in category 'initialize-release') -----
+ initialize
+ 	super initialize.
+ 	"this should be in my superclass, but I do not have permission to modify it. tty"
+ 	 generateForAssert:= generateForAssertHeartbeatTimer:= generateForDebug :=generateForDebugWithHeartbeatTimer:= generateForDebugMultiThreadedFFI:= generateForReleaseHeartbeatTimer:= generateForReleaseMultiThreadedFFI:=false!



More information about the Vm-dev mailing list