Sounds great, I agree that is cleaner than the old WriteBarrier hack.
Of course, I'd also like look into using a JIT-compiler enabled VM
that can make *everything* a bit faster, not just Magma commits..

2010/1/13 Eliot Miranda <eliot.mira...@gmail.com>:
> A *much* better way to implement this is to support immutability in the VM
> (I know, I know, but all the code is available in the Newspeak VM), mark
> objects one wants to mark as dirty as immutable, catch the
> NoModificationError exception, and proceed after having made the object
> mutable and marked it dirty.  No creating hidden classes, no trying to get
> change class to work for compact classes, etc.  Just a simple VM-implemented
> write barrier that can also be used for a host of other things
> (object-database mapping, debugging, immutable literals etc).
>
> On Wed, Jan 13, 2010 at 9:55 AM, Chris Muller <asquea...@gmail.com> wrote:
>>
>> A great description of what WriteBarrier does and how it works can be
>> found in the WriteBarrier class-comment, itself.
>>
>> In a nutshell, when an object is added to a WriteBarrier, a subclass
>> is dynamically compiled for it, but not added to the Smalltalk
>> dictionary.  The name of the class is the same as its superclass but
>> with a '*' appended to it.
>>
>> After creating the subclass, WriteBarrier looks at all "definitions"
>> of each instance variable, and adds methods to override the methods in
>> its superclass.  The generated override checks the pre-state of the
>> instVar, calls super, then compares the post-state of the instVar to
>> the pre-state.
>>
>> If it changed, it signals so that the application (Magma) can mark it
>> dirty.
>>
>> So, it allows Magma to operate with a smaller readSet, which speeds up
>> the part of the commit process relating to detection of changed
>> objects for building the CommitPackage which is shipped off to the
>> server..
>>
>>  - Chris
>>
>> 2010/1/13 Miguel Enrique Cobá Martinez <miguel.c...@gmail.com>:
>> > El mié, 13-01-2010 a las 18:08 +0200, Igor Stasenko escribió:
>> >> Can someone clarify, why WriteBarrier depends on compiler (new
>> >> compiler or old compiler - not really important).
>> >> I just wonder what compiler functionality its depends on.
>> >
>> > WriteBarrier uses the class BytecodeGenerator that is part of the
>> > package NewCompiler (that is currently on rewrite for the closure
>> > images). Why it need it and how it use it, I really don't know. I have
>> > only a vague idea of what WriteBarrier does, and as Mariano said, I use
>> > Magma but never used or activated the WriteBarrier functionality of it.
>> >
>> > Cheers
>> >>
>> >> 2010/1/13 Mariano Martinez Peck <marianop...@gmail.com>:
>> >> >
>> >> >
>> >> > On Wed, Jan 13, 2010 at 5:02 PM, Chris Muller <asquea...@gmail.com>
>> >> > wrote:
>> >> >>
>> >> >> 2010/1/12 Mariano Martinez Peck <marianop...@gmail.com>:
>> >> >> > Magma depends on NewCompiler ???
>> >> >>
>> >> >> No, WriteBarrier depends on NewCompiler.
>> >> >>
>> >> >> Magma can, at the explicit option of the user, turn on the
>> >> >> WriteBarrier option if the WriteBarrier package is present.
>> >> >> WriteBarrier used to be self-contained, later it became dependent on
>> >> >> NewCompiler.
>> >> >>
>> >> >> Unless the WriteBarrier option is switched on by the user, its
>> >> >> presence or absence in the image (as well as NewCompiler) has no
>> >> >> effect on Magma.
>> >> >>
>> >> >
>> >> > Thanks for the clarification Chris. It was strange for me that  as I
>> >> > used
>> >> > Magma a couple of times and I never installed WriteBarrier neither
>> >> > NewCompiler.
>> >> >
>> >> > Cheers
>> >> >
>> >> > Mariano
>> >> >
>> >> >
>> >> >>
>> >> >>  - Chris
>> >> >>
>> >> >> _______________________________________________
>> >> >> Pharo-project mailing list
>> >> >> Pharo-project@lists.gforge.inria.fr
>> >> >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > Pharo-project mailing list
>> >> > Pharo-project@lists.gforge.inria.fr
>> >> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Best regards,
>> >> Igor Stasenko AKA sig.
>> >>
>> >> _______________________________________________
>> >> Pharo-project mailing list
>> >> Pharo-project@lists.gforge.inria.fr
>> >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>> >
>> > --
>> > Miguel Cobá
>> > http://miguel.leugim.com.mx
>> >
>> >
>> > _______________________________________________
>> > Pharo-project mailing list
>> > Pharo-project@lists.gforge.inria.fr
>> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project@lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project@lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to