Magma....

John M McIntosh johnmci at mac.com
Thu Jul 8 18:30:09 UTC 2004


Huh?
I will note that this chunk of code has been in the VM for awhile based  
on VMMaker changes

brp 9/26/2003
Interpreter>>primitiveArrayBecomeOneWayCopyHash
	"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:  
copyHashFlag).
	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  
>> is
>> failing.
>>   Array>>elementsForwardIdentityTo:copyHash:
>> 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  
>> line:
>>   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  
>> system
>> 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  
>> someone
>> 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  
>> either
>> 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 mailing list