Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3323.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3323 Author: eem Time: 24 April 2023, 1:23:30.244395 pm UUID: 6699e583-2551-423c-b85a-f2243165c8af Ancestors: VMMaker.oscog-eem.3322
Ignore that last comm it. Fix Slang generation of SpurSegmentManager>>segmentContainingObj:
=============== Diff against VMMaker.oscog-eem.3322 ===============
Item was changed: ----- Method: SpurSegmentManager>>segmentContainingObj: (in category 'accessing') ----- segmentContainingObj: objOop "Answer the segment containing an object. This is mostly for assert checking, but variations on the incremental GC may use it in anger. Binary search is (of course) marginally slower than linear search for a single segment (e.g. in a 720k object heap, 67.1ms vs 61.3ms, or 9.5% slower to derive the segment containing every old space entity), but usefully faster for many segments (e.g. 92.7ms vs 116ms, or 20% faster in the same heap extended with enough large arrays to require 11 segments; and this is pessimal; there are fewer objects at high addresses since the large arrays are there)." <export: true> <returnTypeC: #'SpurSegmentInfo *'> | high low mid seg | - <var: 'seg' type: #'SpurSegmentInfo *'> low := 0. mid := numSegments // 2. high := numSegments - 1. + [seg := self addressOf: (segments at: mid). - [seg := segments at: mid. (self oop: objOop isGreaterThanOrEqualTo: seg segStart) ifTrue: [mid = high ifTrue: [^(self oop: objOop isLessThan: seg segLimit) ifTrue: [seg]] ifFalse: [low := mid. mid := mid + high + 1 // 2]] ifFalse: [high := mid - 1. mid := low + mid // 2]. low <= high] whileTrue. ^nil!
vm-dev@lists.squeakfoundation.org