VM Maker: VMMaker.oscog-eem.2600.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: VMMaker.oscog-eem.2600.mcz

commits-2
 
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2600.mcz

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

Name: VMMaker.oscog-eem.2600
Author: eem
Time: 9 December 2019, 3:10:33.106179 pm
UUID: d5e3e512-d468-4f2e-a4c8-24965edc01c4
Ancestors: VMMaker.oscog-eem.2599

InImageCompilation: use a larger memory and fix addressIsInCurrentCompilation: so that in-image compilation is less likely to mistake a high address for a pc-relative address.

=============== Diff against VMMaker.oscog-eem.2599 ===============

Item was changed:
  ----- Method: Cogit>>addressIsInCurrentCompilation: (in category 'testing') -----
  addressIsInCurrentCompilation: address
  <inline: true>
  ^address asUnsignedInteger >= methodLabel address
+  and: [address asUnsignedInteger < (methodZone youngReferrers min: methodLabel address + MaxMethodSize)]!
-  and: [address asUnsignedInteger < methodZone youngReferrers]!

Item was changed:
  ----- Method: CurrentImageCoInterpreterFacade>>cogCodeSize (in category 'accessing') -----
  cogCodeSize
+ ^self startOfMemory!
- ^memory byteSize / 4!

Item was changed:
  ----- Method: CurrentImageCoInterpreterFacade>>initialize (in category 'initialize-release') -----
  initialize
  objectMemory := self class objectMemoryClass simulatorClass new.
+ objectMemory allocateMemoryOfSize: 4*1024*1024.
- objectMemory allocateMemoryOfSize: 1024*1024.
  memory := objectMemory memory.
  objectMemory
  initializeFreeSpaceForFacadeFrom: self startOfMemory
  to: self variablesBase.
  coInterpreter := CoInterpreter new.
  coInterpreter
  instVarNamed: 'objectMemory'
  put: objectMemory;
  instVarNamed: 'primitiveTable'
  put: (CArrayAccessor on: CoInterpreter primitiveTable copy).
  variables := Dictionary new!

Item was changed:
  ----- Method: CurrentImageCoInterpreterFacade>>methodCacheAddress (in category 'accessing') -----
  methodCacheAddress
+ "Use the top half of memory for variables, method cache and rumpCStack,
- "Use the top half of memory for variables, methodcache and rumpCStack,
  and the bottom half for allocating code and objects:
 
+ 0Mb to 1Mb code zone
+ 1Mb to 2Mb object zone
+ 2Mb to 3Mb variables
+ 3Mb to 4Mb - 1k method cache
+ 4Mb - 1k to 4Mb rump C stack"
- 0 - 256k: code zone
- 256k to 512k object zone
- 512k to 768k variables
- 768k to 1023k method cache
- 1023k to 1024k rump C stack"
  ^memory byteSize * 3 / 4!

Item was changed:
  ----- Method: CurrentImageCoInterpreterFacade>>rumpCStackAddress (in category 'accessing') -----
  rumpCStackAddress
+ "Use the top half of memory for variables, method cache and rumpCStack,
- "Use the top half of memory for variables, methodcache and rumpCStack,
  and the bottom half for allocating code and objects:
 
+ 0Mb to 1Mb code zone
+ 1Mb to 2Mb object zone
+ 2Mb to 3Mb variables
+ 3Mb to 4Mb - 1k method cache
+ 4Mb - 1k to 4Mb rump C stack"
- 0 - 256k: code zone
- 256k to 512k object zone
- 512k to 768k variables
- 768k to 1023k method cache
- 1023k to 1024k rump C stack"
  ^memory byteSize - 1024!

Item was changed:
  ----- Method: CurrentImageCoInterpreterFacade>>startOfMemory (in category 'accessing') -----
  startOfMemory
+ "Use the top half of memory for variables, method cache and rumpCStack,
- "Use the top half of memory for variables, methodcache and rumpCStack,
  and the bottom half for allocating code and objects:
 
+ 0Mb to 1Mb code zone
+ 1Mb to 2Mb object zone
+ 2Mb to 3Mb variables
+ 3Mb to 4Mb - 1k method cache
+ 4Mb - 1k to 4Mb rump C stack"
+ self assert: memory byteSize = (4 * 1024 * 1024).
- 0 - 256k: code zone
- 256k to 512k object zone
- 512k to 768k variables
- 768k to 1023k method cache
- 1023k to 1024k rump C stack"
  ^memory byteSize / 4!

Item was changed:
  ----- Method: CurrentImageCoInterpreterFacade>>variablesBase (in category 'private') -----
  variablesBase
+ "Use the top half of memory for variables, method cache and rumpCStack,
+ and the bottom half for allocating code and objects:
- "Use the top half of memory for variables, methodcache and rumpCStack, and the bottom half for allocating code and objects:
 
+ 0Mb to 1Mb code zone
+ 1Mb to 2Mb object zone
+ 2Mb to 3Mb variables
+ 3Mb to 4Mb - 1k method cache
+ 4Mb - 1k to 4Mb rump C stack"
- 0 - 256k: code zone
- 256k to 512k object zone
- 512k to 768k variables
- 768k to 1023k method cache
- 1023k to 1024k rump C stack"
  ^memory byteSize / 2!