John M McIntosh
johnmci at mac.com
Thu Jul 8 18:30:09 UTC 2004
I will note that this chunk of code has been in the VM for awhile based
on VMMaker changes
"Similar to primitiveArrayBecomeOneWay but accepts a third argument
whether to copy
the receiver's identity hash over the argument's identity hash."
| copyHashFlag arg rcvr |
copyHashFlag _ self booleanValueOf: (self stackTop).
arg _ self stackValue: 1.
rcvr _ self stackValue: 2.
self success: (self become: rcvr with: arg twoWay: false copyHash:
successFlag ifTrue: [ self pop: 2 ].
So I can't see why any current "official" VM doesn't support the
feature I believe you are talking about below.
If this isn't the case please let the VM maintainers know.
On Jul 8, 2004, at 11:10 AM, Ramiro Diaz Trepat wrote:
> Chris wrote to me yesterday. He told me all this problems were caused
> because of a flaw in the current Squeak VM. And it will persist until
> the new 3.7 VM is out. He gently attached the previous VM (3.5) for
> me to try everything again. Although I still didn't find time to do
> so, I certainly will, most probably this weekend. I encourage others
> haveing problems (like Kamil) to do so as well. Nevertheless I will
> report how did it all go next week.
> I don't really know why he did not reply this important matters to
> the list. Is he shy or is he sick of the ghetto ? :)
> Anyway, here is a fragment of what he wrote to me:
>> Hi Ramiro! Unfortunately, the latest version of Magma has been
>> somewhat in
>> limbo while we wait for the next "official" 3.7VM to be built and
>> released by
>> the Squeak community. This VM will have support for the method which
>> To make a long story short, a long time ago during development of
>> Magma, I
>> found a "bug" in Squeak that can be demonstrated by the following
>> String new becomeForward: #size
>> This used to lock up the image because the identityHash of the new
>> String was
>> being applied to that of the Symbol #size. This wreaks havoc on the
>> because #size, which is a system-critical method, could no longer be
>> found in
>> the MethodDictionary's.
>> I appealed to the Squeak community to not copy the identityHash, and
>> graciously answered the call and built a new primitive for
>> becomeForward that
>> doesn't copy the hash. However, since those changes were made, no new
>> "official" VM has been built with the new primitive, so you have to
>> build your own or use the one I've attached.
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
More information about the Squeak-dev