On 21 nov. 2013, at 14:45, Tudor Girba <[email protected]> wrote:
> Hi, > > This is not *just cleaning*! I wasn't talking about the creation of the slot model nor its integration in the image, but about killing the old class builder, a really enjoyable moment BTW :) > You might perceive it as such being so involved in it. You guys replaced > something ugly with something based on a sound explicit model. > When you do this at such a core level, the possibilities explode two layers > on top. You might just do not see it, yet :). > > Just two examples: > - Morphic uses a dictionary to allow extensions to add attributes to the base > class. This is closed-world-based-assumption thinking because I have to know > in advance what parts will be extended by someone else. This should be easily > changeable with slots given that slots are manipulate-able at runtime > (ideally). > - In Fame we implement bidirectional relationships. By bidirectional > relationships I mean you have classes like A ->* B, and when you have a B > object and set the A parent, it automatically adds the B instance to the > collection in A. The current implementation in Fame is difficult to grasp and > the code of specifying the slots is spread over the whole Moose models. Once > slots are supported as first class, we can build the strategy of > bidirectionality directly in the slot support. This will be more elegant. > > Doru > > > On Thu, Nov 21, 2013 at 2:24 PM, Camille Teruel <[email protected]> > wrote: > > On 21 nov. 2013, at 13:44, kilon alios <[email protected]> wrote: > >> any links why newcomers like me should be impressed ? Whats the advantages ? > > That's just cleaning. The old class builder was an incredibly complex piece > of code that is now replaced with the Slot class builder. > The later is based on slots and is much more understandable and thus much > easier to maintain. > It's been integrated some time ago thanks to Martin. > > Slots are the work of Toon and Camillo and enables a lot of useful features: > http://rmod.lille.inria.fr/archives/papers/Verw11a-OOSPLA11-FlexibleObjectLayouts.pdf > They are based on the reification of class layouts (variable,weak,fixed and > co) and instance variables (slots). > Slots are an abstraction added on top of low-level class "fields". > It means that one will be able to create a customized slot class that define > the logic to read and write a slot: > > Object subclass: #MyClass > slots: { x => MyFancySlot } > category: 'Playground' > > Then when a method read or writes x, the logic you defined in MyFancySlot is > executed. > All that still need to be absorbed by Opal so it's not available right now > but it will (Pharo 4)! > >> >> >> >> On Thu, Nov 21, 2013 at 2:21 PM, Tudor Girba <[email protected]> wrote: >> Triple impressive! This is another sample of an apparently tiny change that >> actually has deep impact on the future of our beloved environment. >> >> Ladies and gentlemen, I know you are busy, but please take the time to >> acknowledge it :) >> >> Doru >> >> >> >> >> On Thu, Nov 21, 2013 at 12:58 PM, Martin Dias <[email protected]> wrote: >> wow, impressive! >> >> >> On Thu, Nov 21, 2013 at 9:02 AM, Marcus Denker <[email protected]> >> wrote: >> Hi, >> >> Yesterday Camille did the change to finally remove the old class builder! >> (just a removal + a small change to NativeBoost to use the new class builder >> to create anonymous classes). >> >> This means >> - 1000 Loc of completely un-understandable code removed. >> - we now 100% run on the new class builder from the Slot Project. >> >> Next on the list (not all for Pharo3): >> >> - remove PackageInfo >> - old Browser + CodeHolder hierarchy >> - PseudoClass&Co —> Ring >> - old AST+Compiler (this in Pharo4) >> >> We already did (all in Pharo3): >> -> remove URI >> -> deprecated Url for ZnUrl >> -> removed HTTPSocket facade >> -> MIMEType retired for ZnMimeType >> -> old Debugger is removed >> -> Class categories are replaced by Protocols >> >> I am quite sure that these cleanups will enable us to build a lot of very >> interesting things >> in the future. >> >> Marcus >> >> >> >> >> -- >> www.tudorgirba.com >> >> "Every thing has its own flow" >> > > > > > -- > www.tudorgirba.com > > "Every thing has its own flow"
