Re: The Inbox: MethodMassage-dtl.71.mcz
"Thiede, Christoph via Squeak-dev" <[email protected]>
| Newsgroups | gmane.comp.lang.smalltalk.squeak.general |
|---|---|
| Message-ID | <GV2PR09MB8371C309D9D88BD7A71543BBFB3B2@GV2PR09MB8371.eurprd09.prod.outlook.com> |
Wow! Great finding! As far as I (not an expert) can tell, this looks right. Thank you! :-) Best, Christoph ________________________________ Von: [email protected] <[email protected]> Gesendet: Sonntag, 10. Mai 2026 22:54 Uhr An: [email protected] <[email protected]> Betreff: [squeak-dev] Re: The Inbox: MethodMassage-dtl.71.mcz This definitely needs expert review, I am a rookie in this area but if I am reading it right the fix is simple. If so, this gets us down to one remaining test failure in MessageMassageTests for both bytecode sets. Dave On 2026-05-10 20:49, [email protected] wrote: David T. Lewis uploaded a new version of MethodMassage to project The Inbox: http://source.squeak.org/inbox/MethodMassage-dtl.71.mcz ==================== Summary ==================== Name: MethodMassage-dtl.71 Author: dtl Time: 10 May 2026, 4:49:49.186657 pm UUID: 06b25161-0bbf-4861-b500-11592dfae901 Ancestors: MethodMassage-dtl.70 Fix for MessageMassageTest errors when running with EncoderForV3PlusClosures. The errors are raised by an assert check in ByteCodeAssembler>>spanToBlockLabel: which checks that the bytecode preceding a block label is a return bytecode. Add #methodReturnSpecialConstant to the list of possible returns. =============== Diff against MethodMassage-dtl.70 =============== Item was changed: ----- Method: BytecodeAssembler>>spanToBlockLabel: (in category 'assembly') ----- spanToBlockLabel: label "<Association>" "N.B. Block labels are expected to follow the last bytecode in the block and preceed the bytecode following the block." | labelIndex | labelIndex := label value. labelIndex ifNil: [labelIndex := code instructions identityIndexOf: label. label value: labelIndex]. self assert: (labelIndex > 1 and: [(self isLabel: (code instructions at: labelIndex - 1)) not + and: [#(blockReturnTop blockReturnConstant: methodReturnSpecialConstant: - and: [#(blockReturnTop blockReturnConstant: methodReturnTop methodReturnConstant: methodReturnReceiver) includes: (code instructions at: labelIndex - 1) selector]]). ^(sizes at: labelIndex) ifNotNil: [self totalSizeFrom: index + 1 to: labelIndex - 1]! Squeak-dev mailing list -- [email protected]<mailto:[email protected]> To unsubscribe send an email to [email protected]<mailto:[email protected]> Squeak-dev mailing list -- [email protected] To unsubscribe send an email to [email protected]