[Vm-dev] VM Maker: VMMakerUI-eem.5.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Dec 25 23:11:17 UTC 2019

Eliot Miranda uploaded a new version of VMMakerUI to project VM Maker:

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

Name: VMMakerUI-eem.5
Author: eem
Time: 25 December 2019, 3:11:15.930329 pm
UUID: 867eb2da-e247-48aa-bf43-5ba65f1ed703
Ancestors: VMMakerUI-eem.4

Workable scheme to inform user of an inspector's text befre the inpector is opened.  So clicking on a filed provides an inform dialog including a pin putton.  The text may be copied by the right button.  The inform may be dismissed with the OK button.  If the Pin button is chosen then the inspector opens.

Have the CogFrameInspector's stackPointer default to stackPointerForFramePointer: if nil, hence it can track pushes and pops as execution proceeds.

=============== Diff against VMMakerUI-eem.4 ===============

Item was added:
+ ----- Method: CogAbstractFrameInspector>>interpretFramePointer:value:at: (in category 'evaluating') -----
+ interpretFramePointer: fieldName value: fieldValueString at: address
+ 	| fp inspector |
+ 	fp := coInterpreter stackPages longAt: address.
+ 	inspector := CogFrameInspector on: coInterpreter.
+ 	inspector framePointer: fp.
+ 	inspector displayPinnable: fieldName, ' ', fieldValueString!

Item was added:
+ ----- Method: CogAbstractFrameInspector>>interpretOop:value:at: (in category 'evaluating') -----
+ interpretOop: fieldName value: valueString at: address
+ 	coInterpreter transcript nextPutAll: fieldName; space; nextPutAll: valueString; cr.
+ 	coInterpreter printOop: (objectMemory longAt: address)!

Item was changed:
  ----- Method: CogFrameInspector>>stackPointer (in category 'accessing') -----
+ 	^stackPointer ifNil: [framePointer ifNotNil: [:fp| coInterpreter stackPointerForFramePointer: fp]]!
- 	^ stackPointer!

Item was added:
+ ----- Method: VMObjectInspector>>displayPinnable: (in category 'accessing - ui') -----
+ displayPinnable: title
+ 	"Assuming the receiver is not yet open, inform the user with the receiver's text,
+ 	 including a 'Pin' button.  If the user chooses 'Pin' open the receiver permanently."
+ 	(UserDialogBoxMorph new
+ 		title: title;
+ 		message: self text;
+ 		createButton: 'OK' translated value: nil;
+ 		createButton: 'PIN' translated value: #pin;
+ 		getUserResponseAtHand) = #pin ifTrue:
+ 			[self open]!

More information about the Vm-dev mailing list