Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-mt.3049.mcz
==================== Summary ====================
Name: VMMaker.oscog-mt.3049 Author: mt Time: 25 August 2021, 6:08:01.629844 pm UUID: 3e9fce59-ecb0-a24e-b5f3-3d92cf8f2517 Ancestors: VMMaker.oscog-eem.3048, VMMaker.oscog-mt.2987
Merge upstream VMMaker.oscog-eem.3048 and update src paths to match Eliot's suggestion: https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/573#issuecomment-9050...
=============== Diff against VMMaker.oscog-eem.3048 ===============
Item was changed: ----- Method: VMMaker class>>generateNewspeakSpurCog64VM (in category 'configurations') ----- generateNewspeakSpurCog64VM "No primitives since we can use those for the Cog VM" ^VMMaker generate: CoInterpreter and: StackToRegisterMappingCogit with: #( ObjectMemory Spur64BitCoMemoryManager MULTIPLEBYTECODESETS true NewspeakVM true) + to: self sourceTree, '/src/spur64.cog.newspeak' - to: self sourceTree, '/nsspur64src' platformDir: self sourceTree, '/platforms' including:#() !
Item was changed: ----- Method: VMMaker class>>generateNewspeakSpurCogVM (in category 'configurations') ----- generateNewspeakSpurCogVM "No primitives since we can use those for the Cog VM" ^VMMaker generate: CoInterpreter and: StackToRegisterMappingCogit with: #( ObjectMemory Spur32BitCoMemoryManager MULTIPLEBYTECODESETS true NewspeakVM true) + to: self sourceTree, '/src/spur32.cog.newspeak' - to: self sourceTree, '/nsspursrc' platformDir: self sourceTree, '/platforms' including:#() !
Item was changed: ----- Method: VMMaker class>>generateNewspeakSpurStack64VM (in category 'configurations') ----- generateNewspeakSpurStack64VM "No primitives since we can use those for the Cog VM" ^VMMaker generate: StackInterpreter with: #( ObjectMemory Spur64BitMemoryManager MULTIPLEBYTECODESETS true NewspeakVM true FailImbalancedPrimitives false) + to: self sourceTree, '/src/spur64.stack.newspeak' - to: self sourceTree, '/nsspurstack64src' platformDir: self sourceTree, '/platforms' including: #()!
Item was changed: ----- Method: VMMaker class>>generateNewspeakSpurStackVM (in category 'configurations') ----- generateNewspeakSpurStackVM "No primitives since we can use those for the Cog VM" ^VMMaker generate: StackInterpreter with: #( ObjectMemory Spur32BitMemoryManager MULTIPLEBYTECODESETS true NewspeakVM true FailImbalancedPrimitives false) + to: self sourceTree, '/src/spur32.stack.newspeak' - to: self sourceTree, '/nsspurstacksrc' platformDir: self sourceTree, '/platforms' including: #()!
Item was changed: ----- Method: VMMaker class>>generateSpur32LeakChecker (in category 'configurations') ----- generateSpur32LeakChecker ^VMMaker generate: ImageLeakChecker with: #(ObjectMemory Spur32BitMemoryManager MULTIPLEBYTECODESETS true) + to: self sourceTree, '/src/spur32.stack' - to: self sourceTree, '/spurstacksrc' platformDir: self sourceTree, '/platforms' including: #()!
Item was changed: ----- Method: VMMaker class>>generateSpur64LeakChecker (in category 'configurations') ----- generateSpur64LeakChecker ^VMMaker generate: ImageLeakChecker with: #(ObjectMemory Spur64BitMemoryManager MULTIPLEBYTECODESETS true) + to: self sourceTree, '/src/spur64.stack' - to: self sourceTree, '/spurstack64src' platformDir: self sourceTree, '/platforms' including: #()!
Item was changed: ----- Method: VMMaker class>>generateSqueakCogVMWithInterpreterClass:options: (in category 'confs-support') ----- generateSqueakCogVMWithInterpreterClass: interpreterClass options: optionsArray ^VMMaker generate: interpreterClass and: StackToRegisterMappingCogit with: optionsArray + to: self sourceTree, '/src/v3.cog' - to: self sourceTree, '/src' platformDir: self sourceTree, '/platforms' including:#()!
Item was changed: ----- Method: VMMaker class>>generateSqueakSpurCog64MTVM (in category 'configurations') ----- generateSqueakSpurCog64MTVM "No primitives since we can use those for the Cog VM" ^VMMaker generate: CoInterpreterMT and: StackToRegisterMappingCogit with: #(COGMTVM true ObjectMemory Spur64BitCoMemoryManager MULTIPLEBYTECODESETS true bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid) + to: self sourceTree, '/src/spur64.cog' - to: self sourceTree, '/spur64src' platformDir: self sourceTree, '/platforms' including:#()!
Item was changed: ----- Method: VMMaker class>>generateSqueakSpurCog64VM (in category 'configurations') ----- generateSqueakSpurCog64VM "No primitives since we can use those for the Cog VM" ^VMMaker generate: CoInterpreter and: StackToRegisterMappingCogit with: #(ObjectMemory Spur64BitCoMemoryManager MULTIPLEBYTECODESETS true bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid) + to: self sourceTree, '/src/spur64.cog' - to: self sourceTree, '/spur64src' platformDir: self sourceTree, '/platforms' including:#()!
Item was changed: ----- Method: VMMaker class>>generateSqueakSpurCogMTVM (in category 'configurations') ----- generateSqueakSpurCogMTVM "No primitives since we can use those for the Cog VM" ^VMMaker generate: CoInterpreterMT and: StackToRegisterMappingCogit with: #(COGMTVM true ObjectMemory Spur32BitCoMemoryManager MULTIPLEBYTECODESETS true bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid) + to: self sourceTree, '/src/spur32.cog' - to: self sourceTree, '/spursrc' platformDir: self sourceTree, '/platforms' including:#()!
Item was changed: ----- Method: VMMaker class>>generateSqueakSpurCogSista64VM (in category 'configurations') ----- generateSqueakSpurCogSista64VM ^VMMaker generate: CoInterpreter and: SistaCogit with: #( SistaVM true ObjectMemory Spur64BitCoMemoryManager MULTIPLEBYTECODESETS true bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid) + to: self sourceTree, '/src/spur64.sista' - to: self sourceTree, '/spursista64src' platformDir: self sourceTree, '/platforms' including:#()!
Item was changed: ----- Method: VMMaker class>>generateSqueakSpurCogSistaVM (in category 'configurations') ----- generateSqueakSpurCogSistaVM "No primitives since we can use those for the Cog VM" ^VMMaker generate: CoInterpreter and: SistaCogit with: #( SistaVM true ObjectMemory Spur32BitCoMemoryManager MULTIPLEBYTECODESETS true bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid) + to: self sourceTree, '/src/spur32.sista' - to: self sourceTree, '/spursistasrc' platformDir: self sourceTree, '/platforms' including:#()!
Item was changed: ----- Method: VMMaker class>>generateSqueakSpurCogVM (in category 'configurations') ----- generateSqueakSpurCogVM "No primitives since we can use those for the Cog VM" ^VMMaker generate: CoInterpreter and: StackToRegisterMappingCogit with: #(ObjectMemory Spur32BitCoMemoryManager MULTIPLEBYTECODESETS true bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid) + to: self sourceTree, '/src/spur32.cog' - to: self sourceTree, '/spursrc' platformDir: self sourceTree, '/platforms' including:#()!
Item was changed: ----- Method: VMMaker class>>generateSqueakSpurLowcodeCog64VM (in category 'configurations') ----- generateSqueakSpurLowcodeCog64VM "No primitives since we can use those for the Cog VM" ^VMMaker generate: CoInterpreter and: StackToRegisterMappingCogit with: #(ObjectMemory Spur64BitCoMemoryManager SistaVM true LowcodeVM true MULTIPLEBYTECODESETS true bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid) + to: self sourceTree, '/src/spur64.cog.lowcode' - to: self sourceTree, '/spurlowcode64src' platformDir: self sourceTree, '/platforms' including:#()!
Item was changed: ----- Method: VMMaker class>>generateSqueakSpurLowcodeCogVM (in category 'configurations') ----- generateSqueakSpurLowcodeCogVM "No primitives since we can use those for the Cog VM" ^VMMaker generate: CoInterpreter and: StackToRegisterMappingCogit with: #(ObjectMemory Spur32BitCoMemoryManager SistaVM true LowcodeVM true MULTIPLEBYTECODESETS true bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid) + to: self sourceTree, '/src/spur32.cog.lowcode' - to: self sourceTree, '/spurlowcodesrc' platformDir: self sourceTree, '/platforms' including:#()!
Item was changed: ----- Method: VMMaker class>>generateSqueakSpurLowcodeStack64VM (in category 'configurations') ----- generateSqueakSpurLowcodeStack64VM "No primitives since we can use those from the Cog VM" ^VMMaker generate: StackInterpreter with: #(ObjectMemory Spur64BitMemoryManager SistaVM true LowcodeVM true FailImbalancedPrimitives false MULTIPLEBYTECODESETS true bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid) + to: self sourceTree, '/src/spur64.stack.lowcode' - to: self sourceTree, '/spurlowcodestack64src' platformDir: self sourceTree, '/platforms' including: #()!
Item was changed: ----- Method: VMMaker class>>generateSqueakSpurLowcodeStackVM (in category 'configurations') ----- generateSqueakSpurLowcodeStackVM "No primitives since we can use those from the Cog VM" ^VMMaker generate: StackInterpreter with: #(ObjectMemory Spur32BitMemoryManager SistaVM true LowcodeVM true FailImbalancedPrimitives false MULTIPLEBYTECODESETS true bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid) + to: self sourceTree, '/src/spur32.stack.lowcode' - to: self sourceTree, '/spurlowcodestacksrc' platformDir: self sourceTree, '/platforms' including: #()!
Item was changed: ----- Method: VMMaker class>>generateSqueakSpurRegisterCogVM (in category 'configurations') ----- generateSqueakSpurRegisterCogVM "No primitives since we can use those for the Cog VM" ^VMMaker generate: CoInterpreter and: RegisterAllocatingCogit with: #(ObjectMemory Spur32BitCoMemoryManager) + to: self sourceTree, '/src/spur32.reg.spur' - to: self sourceTree, '/spurregsrc' platformDir: self sourceTree, '/platforms' including:#()!
Item was changed: ----- Method: VMMaker class>>generateSqueakSpurStack64VM (in category 'configurations') ----- generateSqueakSpurStack64VM "No primitives since we can use those from the Cog VM" ^VMMaker generate: StackInterpreter with: #(ObjectMemory Spur64BitMemoryManager FailImbalancedPrimitives false MULTIPLEBYTECODESETS true bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid) + to: self sourceTree, '/src/spur64.stack' - to: self sourceTree, '/spurstack64src' platformDir: self sourceTree, '/platforms' including: #()!
Item was changed: ----- Method: VMMaker class>>generateSqueakSpurStackVM (in category 'configurations') ----- generateSqueakSpurStackVM "No primitives since we can use those from the Cog VM" ^VMMaker generate: StackInterpreter with: #(ObjectMemory Spur32BitMemoryManager FailImbalancedPrimitives false MULTIPLEBYTECODESETS true bytecodeTableInitializer initializeBytecodeTableForSqueakV3PlusClosuresSistaV1Hybrid) + to: self sourceTree, '/src/spur32.stack' - to: self sourceTree, '/spurstacksrc' platformDir: self sourceTree, '/platforms' including: #()!
Item was changed: ----- Method: VMMaker class>>generateSqueakStackVM (in category 'configurations') ----- generateSqueakStackVM "No primitives since we can use those from the Cog VM" ^VMMaker generate: StackInterpreter with: #(FailImbalancedPrimitives false) + to: self sourceTree, '/src/v3.stack' - to: self sourceTree, '/stacksrc' platformDir: self sourceTree, '/platforms' including: #()!
Item was changed: ----- Method: VMMaker class>>initialize (in category 'initialisation') ----- initialize "VMMaker initialize" + DirNames ifNil: [DirNames := Dictionary new]. - DirNames := Dictionary new. DirNames + at: #coreVMDir put: ''; "vm flavors have their own dirs below #sourceDir now. See #generate* methods." - at: #coreVMDir put: 'vm'; at: #platformsDir put: 'platforms'; at: #pluginsDir put: 'plugins'; at: #sourceDir put: 'src'.
"Try and decide where the Cog source tree is. Two configurations are likely. One is that the VMMaker image is running in the image directory in the source tree and hence everything will be at '..'. Another is where the source tree is at the same level as the VMMaker image, in which case it is likely called oscogvm or Cog." #('../platforms' 'oscogvm/platforms' 'Cog/platforms' '../oscogvm/platforms') with: #('..' 'oscogvm' 'Cog' '../oscogvm') do: ((Smalltalk classNamed: #FileLocator) ifNotNil: [:classFileLocator| [:dir :path| (classFileLocator cwd / dir) isDirectory ifTrue: [DirNames at: #sourceTree put: path. ^self]]] ifNil: [[:dir :path| (FileDirectory default directoryExists: dir) ifTrue: [DirNames at: #sourceTree put: path. ^self]]])!
vm-dev@lists.squeakfoundation.org