[Vm-dev] VM Maker: VMMaker.oscog-eem.2954.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Apr 14 01:48:58 UTC 2021


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!



More information about the Vm-dev mailing list