The Inbox: Kernel-eem.1191.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

The Inbox: Kernel-eem.1191.mcz

commits-2
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!


Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Kernel-eem.1191.mcz

David T. Lewis
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!
>
>