about WriteBarrier

Chris Muller ma.chris.m at gmail.com
Sat Dec 10 23:52:33 UTC 2011


Hm, not sure what you're seeing..    #canUncompact is implemented only
Behavior as:

canUncompact
	^ (Smalltalk isRunningCog or: [ Smalltalk isRunningCogit ])
		ifTrue: [ (Smalltalk compactClassesArray includes: self) not ]
		ifFalse: [ true ]

Sounds like you are looking at the wrong version of WriteBarrier.  The
correct one is WriteBarrier-cmm.35.

 - Chris



On Sat, Dec 10, 2011 at 5:38 PM, Mariano Martinez Peck
<marianopeck at gmail.com> wrote:
> Thanks now I understand why you asked about compact classes. However, you
> only implement canUncompact  ^ false
> in CompiledMethod and ContextPart, even if with Cog there are more classes
> that you *cannot* uncompact.
>
> Cheers
>
> On Sat, Dec 10, 2011 at 5:37 PM, Chris Muller <asqueaker at gmail.com> wrote:
>>
>> > I would like to take a look to this. In which primitives you need to
>> > send
>> > #yourself for example? This is because otherwise the VM will fail /
>> > crash
>> > because it expects the parameters of a primitive to be of a certain type
>> > rather than a proxy ?
>>
>> Right, this is the problem that has been solved with the new extension.
>>
>> > Which are those subclases you mention that override the primitive
>> > methods?
>>
>> The ones that WriteBarrier dynamically instantiates for each class of
>> object added to the WB.  Please look at the WriteBarrier package (it's
>> a small, standalone package) and it will become crystal clear.
>>
>> > Thanks and congrats for the release.
>>
>> Thanks,
>>  Chris
>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>


More information about the Magma mailing list