Eliot Miranda uploaded a new version of Kernel to project The Inbox:
http://source.squeak.org/inbox/Kernel-eem.1191.mcz ==================== Summary ==================== Name: Kernel-eem.1191 Author: eem Time: 11 October 2018, 10:52:37.059231 pm UUID: 465e029d-66ff-492d-a465-79f2867d2d8b Ancestors: Kernel-cmm.1190 Remove adoptInstance:'s fallback on primitiveChangeClassTo:, which obscures potential failures on Spur. Committing to Inbox; this isn't urgent but I want it in soon enough. =============== Diff against Kernel-cmm.1190 =============== Item was changed: ----- Method: Behavior>>adoptInstance: (in category 'instance creation') ----- adoptInstance: anInstance + "Change the class of anInstance to the receiver. + Primitive. Change the class of the argument anInstance into the receiver, provided + that the format of the receiver matches the format of the argument's class. + Fail if the argument is an immediate, or when the pointerness of the receiver is different + from the pointerness of the argument, or when the receiver is a fixed pointer class and + anInstance's size differs from the size that an instance of the receiver should have, + or when anInstance's size is not an integer multiple of the receiver's unit size." - "Change the class of anInstance to me. - Primitive (found in Cog and new VMs) follows the same rules as primitiveChangeClassTo:, but returns the class rather than the modified instance" <primitive: 160 error: ec> + ^self primitiveFailed! - anInstance primitiveChangeClassTo: self basicNew. - ^self! |
Hi Eliot,
On Fri, Oct 12, 2018 at 05:52:51AM +0000, [hidden email] wrote: > Eliot Miranda uploaded a new version of Kernel to project The Inbox: > http://source.squeak.org/inbox/Kernel-eem.1191.mcz > > ==================== Summary ==================== > > Name: Kernel-eem.1191 > Author: eem > Time: 11 October 2018, 10:52:37.059231 pm > UUID: 465e029d-66ff-492d-a465-79f2867d2d8b > Ancestors: Kernel-cmm.1190 > > Remove adoptInstance:'s fallback on primitiveChangeClassTo:, which obscures potential failures on Spur. Committing to Inbox; this isn't urgent but I want it in soon enough. > By any chance do you have a reproducible code snippet that shows the original problem? I realize this may not be easy if it involves Form and endianness and so forth. If so I will volunteer to turn it into a unit test. That is a good way to guard against regression, and also easily identify the problem when a user is running an older VM that may not have the fix. Dave > =============== Diff against Kernel-cmm.1190 =============== > > Item was changed: > ----- Method: Behavior>>adoptInstance: (in category 'instance creation') ----- > adoptInstance: anInstance > + "Change the class of anInstance to the receiver. > + Primitive. Change the class of the argument anInstance into the receiver, provided > + that the format of the receiver matches the format of the argument's class. > + Fail if the argument is an immediate, or when the pointerness of the receiver is different > + from the pointerness of the argument, or when the receiver is a fixed pointer class and > + anInstance's size differs from the size that an instance of the receiver should have, > + or when anInstance's size is not an integer multiple of the receiver's unit size." > - "Change the class of anInstance to me. > - Primitive (found in Cog and new VMs) follows the same rules as primitiveChangeClassTo:, but returns the class rather than the modified instance" > > <primitive: 160 error: ec> > + ^self primitiveFailed! > - anInstance primitiveChangeClassTo: self basicNew. > - ^self! > > |
Free forum by Nabble | Edit this page |