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

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

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

Name: VMMaker.oscog-eem.2954
Author: eem
Time: 13 April 2021, 6:48:47.997234 pm
UUID: 31c86357-3c1c-44c7-ac85-45f677829dc8
Ancestors: VMMaker.oscog-eem.2953

...and fix another edge case.

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

Item was changed:
  ----- Method: CoInterpreter>>printCogMethod: (in category 'debug printing') -----
  printCogMethod: cogMethod
+ <export: true> "useful for VM debugging; use export: so it will be accessible on win32"
+ <api>
- <export: true> "useful for VM debugging; use export: not api, so it will be accessible on win32 and won't be written to cointerp.h"
  <var: #cogMethod type: #'CogMethod *'>
  | address primitive |
  self cCode: ''
  inSmalltalk:
  [self transcript ensureCr.
  cogMethod isInteger ifTrue:
  [^self printCogMethod: (self cCoerceSimple: cogMethod to: #'CogMethod *')]].
  address := cogMethod asInteger.
  self printHex: address;
  print: ' <-> ';
  printHex: address + cogMethod blockSize.
  cogMethod cmType = CMMethod ifTrue:
  [self print: ': method: ';
  printHex: cogMethod methodObject.
  primitive := self primitiveIndexOfMethod: cogMethod methodObject
  header: cogMethod methodHeader.
  primitive ~= 0 ifTrue:
  [self print: ' prim '; printNum: primitive].
  ((objectMemory addressCouldBeObj: cogMethod methodObject)
  and: [objectMemory addressCouldBeObj: (self methodClassOf: cogMethod methodObject)]) ifTrue:
  [self space; printNameOfClass: (self methodClassOf: cogMethod methodObject) count: 2]].
  cogMethod cmType = CMBlock ifTrue:
  [self print: ': block home: ';
  printHex: (self cCoerceSimple: cogMethod to: #'CogBlockMethod *') cmHomeMethod asUnsignedInteger].
  cogMethod cmType = CMClosedPIC ifTrue:
  [self print: ': Closed PIC N: ';
  printHex: cogMethod cPICNumCases].
  cogMethod cmType = CMOpenPIC ifTrue:
  [self print: ': Open PIC '].
  self print: ' selector: '; printHex: cogMethod selector.
  cogMethod selector = objectMemory nilObject
  ifTrue: [| s |
  (cogMethod cmType = CMMethod
  and: [(s := self maybeSelectorOfMethod: cogMethod methodObject) notNil])
  ifTrue: [self print: ' (nil: '; printStringOf: s; print: ')']
  ifFalse: [self print: ' (nil)']]
  ifFalse: [self space; printStringOf: cogMethod selector].
  self cr!