Eliot Miranda uploaded a new version of Kernel to project The Trunk: http://source.squeak.org/trunk/Kernel-eem.1196.mcz
==================== Summary ====================
Name: Kernel-eem.1196 Author: eem Time: 20 November 2018, 1:39:00.487858 pm UUID: d725b2e7-fe69-472d-8775-25948cabcc8c Ancestors: Kernel-eem.1195
Fix ClosureExtractor (embeddedBlockClosures) for exotic Sista blocks.
=============== Diff against Kernel-eem.1195 ===============
Item was changed: ----- Method: ClosureExtractor>>pushFullClosure:numCopied: (in category 'instruction decoding') ----- pushFullClosure: aCompiledBlock numCopied: numCopied "Create a BlockClosure corresponding to the closure bytecode and execute the action block with it. The created BlockClosure is only a pseudo value, it is not populated with meaningful context and argument information." + self pushFullClosure: aCompiledBlock numCopied: numCopied receiverOnStack: false ignoreOuterContext: false! - | block | - block := FullBlockClosure - receiver: nil - outerContext: currentContext - method: aCompiledBlock - copiedValues: (Array new: numCopied). - currentContext := block asContextWithSender: currentContext. - action value: block!
Item was added: + ----- Method: ClosureExtractor>>pushFullClosure:numCopied:receiverOnStack:ignoreOuterContext: (in category 'instruction decoding') ----- + pushFullClosure: aCompiledBlock numCopied: numCopied receiverOnStack: rcvrOnStack ignoreOuterContext: ignoreOuterContext + "Create a BlockClosure corresponding to the closure bytecode + and execute the action block with it. The created BlockClosure is only a pseudo value, + it is not populated with meaningful context and argument information." + | block encoderClass endPC extractor subScanner | + block := FullBlockClosure + receiver: (rcvrOnStack ifTrue: [#onStackReceiver]) + outerContext: (ignoreOuterContext ifFalse: [currentContext]) + method: aCompiledBlock + copiedValues: (Array new: numCopied). + currentContext := block asContextWithSender: currentContext. + action value: block. + subScanner := aCompiledBlock scanner. + extractor := self class withAction: action andScanner: subScanner. + endPC := aCompiledBlock endPC. + encoderClass := aCompiledBlock encoderClass. + [subScanner pc <= endPC] whileTrue: + [encoderClass interpretNextInstructionFor: extractor in: subScanner]!
packages@lists.squeakfoundation.org