VM Maker: VMMaker.oscog-eem.2429.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.2429.mcz

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

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

Name: VMMaker.oscog-eem.2429
Author: eem
Time: 13 August 2018, 4:13:58.493394 pm
UUID: ca51a594-525f-41d4-aee6-b30e8009415b
Ancestors: VMMaker.oscog-eem.2428

Oops; there were two...

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

Item was changed:
  ----- Method: InterpreterSimulator>>openOn:extraMemory: (in category 'initialization') -----
  openOn: fileName extraMemory: extraBytes
  "InterpreterSimulator new openOn: 'clone.im' extraMemory: 100000"
 
  | f version headerSize count oldBaseAddr bytesToShift swapBytes |
  "open image file and read the header"
 
  ["begin ensure block..."
  f := FileStream readOnlyFileNamed: fileName.
  imageName := f fullName.
  f binary.
  version := self nextLongFrom: f.  "current version: 16r1968 (=6504) vive la revolucion!!"
  (self readableFormat: version)
  ifTrue: [swapBytes := false]
  ifFalse: [(version := self byteSwapped: version) = self imageFormatVersion
  ifTrue: [swapBytes := true]
  ifFalse: [self error: 'incomaptible image format']].
  headerSize := self nextLongFrom: f swap: swapBytes.
  self setEndOfMemory: (self nextLongFrom: f swap: swapBytes).  "first unused location in heap"
  oldBaseAddr := self nextLongFrom: f swap: swapBytes.  "object memory base address of image"
  specialObjectsOop := self nextLongFrom: f swap: swapBytes.
  lastHash := self nextLongFrom: f swap: swapBytes.  "Should be loaded from, and saved to the image header"
  lastHash = 0 ifTrue: [lastHash := 999].
 
  savedWindowSize := self nextLongFrom: f swap: swapBytes.
  fullScreenFlag := self nextLongFrom: f swap: swapBytes.
  extraVMMemory := self nextLongFrom: f swap: swapBytes.
 
  "allocate interpreter memory"
  self setMemoryLimit: endOfMemory + extraBytes.
 
  "read in the image in bulk, then swap the bytes if necessary"
  f position: headerSize.
  memory := Bitmap new: memoryLimit // 4.
  count := f readInto: memory startingAt: 1 count: endOfMemory // 4.
  count ~= (endOfMemory // 4) ifTrue: [self halt].
  ]
  ensure: [f close].
 
  swapBytes ifTrue:
  [UIManager default
  informUser: 'Swapping bytes of foreign image...'
  during: [self reverseBytesInImage]].
 
  self initialize.
  bytesToShift := self startOfMemory - oldBaseAddr.  "adjust pointers for zero base address"
+ UIManager default
+ informUser: 'Relocating object pointers...'
+ during: [self initializeInterpreter: bytesToShift]!
- Utilities informUser: 'Relocating object pointers...'
- during: [self initializeInterpreter: bytesToShift].
- !