Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1074.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1074 Author: eem Time: 22 February 2015, 4:29:56.443 pm UUID: b88dbe30-1cfb-4a06-b6ad-89e63489893e Ancestors: VMMaker.oscog-eem.1073
Use printstringof;maybeselect for more reliable printing of selector in Newspeak privacy check.
=============== Diff against VMMaker.oscog-eem.1073 ===============
Item was changed: ----- Method: StackInterpreter>>lookupMethodInClass: (in category 'message sending') ----- lookupMethodInClass: class | currentClass dictionary found | <inline: false> self assert: (self addressCouldBeClassObj: class). currentClass := class. [currentClass ~= objectMemory nilObject] whileTrue: [dictionary := objectMemory followObjField: MethodDictionaryIndex ofObject: currentClass. dictionary = objectMemory nilObject ifTrue: ["MethodDict pointer is nil (hopefully due a swapped out stub) -- raise exception #cannotInterpret:." self createActualMessageTo: class. messageSelector := objectMemory splObj: SelectorCannotInterpret. self sendBreakpoint: messageSelector receiver: nil. ^self lookupMethodInClass: (self superclassOf: currentClass)]. found := self lookupMethodInDictionary: dictionary. (NewspeakVM and: [CheckPrivacyViolations and: [isPrivateSend not and: [messageSelector ~= (objectMemory splObj: SelectorDoesNotUnderstand) and: [(self accessModifierOfMethod: newMethod) ~= 0]]]]) ifTrue: [self print: (self nameOfClass: currentClass); space. self printStringOf: (messageSelector); print: ' from '. + self printStringOf: (self maybeSelectorOfMethod: method); cr]. - self printStringOf: (self fetchPointer: 0 ofObject: (self methodClassOf: method)); cr]. found ifTrue: [^currentClass]. currentClass := self superclassOf: currentClass].
"Could not find #doesNotUnderstand: -- unrecoverable error." messageSelector = (objectMemory splObj: SelectorDoesNotUnderstand) ifTrue: [self error: 'Recursive not understood error encountered'].
"Cound not find a normal message -- raise exception #doesNotUnderstand:" self createActualMessageTo: class. messageSelector := objectMemory splObj: SelectorDoesNotUnderstand. self sendBreak: messageSelector + objectMemory baseHeaderSize point: (objectMemory lengthOf: messageSelector) receiver: nil. ^self lookupMethodInClass: class!
vm-dev@lists.squeakfoundation.org