BTW, there is a dedicated Fuel mailing list: pharo-f...@lists.gforge.inria.fr
Max > On 14 Oct 2015, at 09:45, Max Leske <maxle...@gmail.com> wrote: > >> >> On 14 Oct 2015, at 04:39, Robert Withers <robert.w.with...@gmail.com> wrote: >> >> >> On 10/13/2015 09:43 PM, Mariano Martinez Peck wrote: >>> >>> >>> On Tue, Oct 13, 2015 at 10:33 PM, Robert Withers >>> <robert.w.with...@gmail.com <mailto:robert.w.with...@gmail.com>> wrote: >>> >>> Hi Mariano, >>> >>> This presents me with a big challenge, then. I read the docs and >>> explored the code and the only other aspect not mentioned, beyond >>> instance creation (#fuelNew #fuelNew:) and postMaterialization >>> (#fuelAfterMaterialization), is migrations. However, migration only >>> allows for instanceVar mappings, no code blocks. >>> >>> >>> What do you mean that migrations only allows instVar mappings , and no >>> code blocks? I mean, what do you mean by code blocks? > > Sounds to me like this (see FuelOutStackDebuAction): > > serializeTestFailureContext: aContext toFileNamed: aFilename > | serializer | > > serializer := FLSerializer newDefault. > self encodeDebugInformationOn: serializer. > serializer addPostMaterializationAction: [ :materialization | > Smalltalk tools debugger > openOn: Processor activeProcess > context: materialization root > label: 'External stack' > contents: nil > fullView: false ]. > > serializer > " use the sender context, generally the current context is not > interesting" > serialize: aContext > toFileNamed: aFilename > > This stores a block in the serialization which is evaluated after > materialization. The only requirement is that it’s a clean block (no > closure!). > >>> We also support class renames. This is here: >>> http://rmod.inria.fr/web/software/Fuel/Version1.9/Documentation/Migration?_s=Pvs4DYqPRjfEy8sg&_k=X6ltJu7FDSxumm4X&_n&22 >>> >>> Which kind of migration example you have in mind that would not be >>> supported? An example would help. >> >> Well, my pics will demonstrate. I am interested in doing more than mappping >> ivars or a class rename. I want to do a total substitution, then a further >> substitution on the receiving, import side: >> >> Vat1: anObject (Class A) ---> On wire: desc (Descriptor) ---> Vat2: aProxy >> (Class FarERef) >> >> A desc is substituted for a PassByProxy object, then a FarERef is >> substituted for the desc. >> >>> >>> #fuelAccept: is a serialization side method. >>> >>> If Fuel supports substitution on serialization, I don't understand >>> why no substitution support on materialization. >>> >>> >>> There was a reason, which I cannot remember completely. Maybe Martin or >>> Max can remember. >> >> It seems your focus was pickling to disk then back. My focus is distributed >> proxy graphs, which has different use cases. >> >>> >>> >>> I am definitely going to use the world-class Fuel binary >>> serialization system. However, I find myself needing to extend Fuel >>> to support substitution on materialization. Perhaps the solution is >>> a custom decoder. >>> >>> >>> I have made custom clusters for example for my Ghost proxies of Marea >>> system. It was a perfect example of how I could extent Fuel besides the >>> common hooks. Fuel provides many places for extending , like clusters, >>> analyzer, etc >> >> Right on, exactly! Could you tell me more about your Ghost proxies and >> Marea, please? As well, could you mention how you select a custom cluster on >> the serialization side? >> >> >> thanks so much ^^ >> Robert >> >> >>> >>> No, a bit more. It looks like I need a new >>> FLSubstitutePointerObjectCluster, write them on serialization with >>> the substitute, then do unsubstitution on materialization, since the >>> cluster controls materialization and not the decoder. >>> >>> Does this approach seem sound to you, from a you know architecture >>> and design approach? >>> >>> >>> There was an issue. Hope other can remember. If not, I will try to >>> explan what I remember tomorrow. >>> >>> >>> thanks so much ^^ >>> Robert >>> >>> On 10/13/2015 04:49 PM, Mariano Martinez Peck wrote: >>> >>> No, unfortunately, as far as I can remember, we do not have >>> that. There >>> are another hooks you may use but only in certain scenarios >>> (#fuelNew, >>> #fuelAfterMaterialization, global sends, etc). But everything is >>> listed >>> in >>> >>> http://rmod.inria.fr/web/software/Fuel/Version1.9/Documentation/CustomizingGraph >>> so if you didn't find anything of help in there there are chances >>> there isn't anything. >>> >>> Cheers, >>> >>> On Tue, Oct 13, 2015 at 5:30 PM, Robert Withers >>> <robert.w.with...@gmail.com <mailto:robert.w.with...@gmail.com> >>> <mailto:robert.w.with...@gmail.com >>> <mailto:robert.w.with...@gmail.com>>> wrote: >>> >>> Yes, I meant dynamic substitution on materialization, to >>> use the >>> correct terminology. >>> >>> thanks, >>> Robert >>> >>> >>> On 10/13/2015 11:40 AM, Max Leske wrote: >>> >>> >>> On 13 Oct 2015, at 17:16, Robert Withers >>> <robert.w.with...@gmail.com >>> <mailto:robert.w.with...@gmail.com> >>> <mailto:robert.w.with...@gmail.com >>> <mailto:robert.w.with...@gmail.com>>> wrote: >>> >>> Every extra source helps, thank you. I see how to do >>> non-stream substitutions on materializations, but the >>> documentation did not indicate a way to do non-stream >>> substitutions on serialization. Is it possible? >>> >>> >>> I don’t understand what you mean by “non-stream”. Could >>> you give >>> an example? >>> >>> >>> thanks, >>> Robert >>> >>> On 10/13/2015 09:00 AM, Mariano Martinez Peck wrote: >>> >>> Hi Robert, >>> >>> As for the documentation, you have LOTS of >>> tests, you >>> have the chapter >>> Torsten pasted, you have this documentation: >>> http://rmod.inria.fr/web/software/Fuel >>> >>> But also, as for internals, there is a journal >>> paper we >>> wrote: >>> http://rmod.lille.inria.fr/archives/papers/Dias12a-SPE-Fuel.pdf >>> >>> Let us know how it goes, >>> >>> >>> On Tue, Oct 13, 2015 at 6:00 AM, Torsten Bergmann >>> <asta...@gmx.de <mailto:asta...@gmx.de> >>> <mailto:asta...@gmx.de <mailto:asta...@gmx.de>> >>> <mailto:asta...@gmx.de <mailto:asta...@gmx.de> >>> <mailto:asta...@gmx.de <mailto:asta...@gmx.de>>>> wrote: >>> >>> Hi Robert, >>> >>> Also checkout the chapter on Fuel in Pharo >>> Enterprise book: >>> >>> >>> https://ci.inria.fr/pharo-contribution/view/Books/job/EnterprisePharoBook/lastSuccessfulBuild/artifact/book-result/EnterprisePharo-A4.pdf >>> >>> Bye >>> Torsten >>> >>>> Gesendet: Dienstag, 13. Oktober 2015 um >>> 09:44 Uhr >>>> Von: "Robert Withers" >>> <robert.w.with...@gmail.com >>> <mailto:robert.w.with...@gmail.com> >>> <mailto:robert.w.with...@gmail.com >>> <mailto:robert.w.with...@gmail.com>> >>> <mailto:robert.w.with...@gmail.com >>> <mailto:robert.w.with...@gmail.com> >>> <mailto:robert.w.with...@gmail.com >>> <mailto:robert.w.with...@gmail.com>>>> >>>> An: pharo-dev@lists.pharo.org >>> <mailto:pharo-dev@lists.pharo.org> >>> <mailto:pharo-dev@lists.pharo.org >>> <mailto:pharo-dev@lists.pharo.org>> >>> <mailto:pharo-dev@lists.pharo.org >>> <mailto:pharo-dev@lists.pharo.org> >>> <mailto:pharo-dev@lists.pharo.org >>> <mailto:pharo-dev@lists.pharo.org>>> >>>> Betreff: Re: [Pharo-dev] binary >>> serialization >>>> >>>> Yes, I have to do object substitutions. >>> Thanks >>> for the link! >>>> >>>> thanks, >>>> Robert >>>> >>>> On 10/13/2015 03:43 AM, Max Leske wrote: >>>>> >>>>>> On 13 Oct 2015, at 09:40, Robert Withers >>> <robert.w.with...@gmail.com >>> <mailto:robert.w.with...@gmail.com> >>> <mailto:robert.w.with...@gmail.com >>> <mailto:robert.w.with...@gmail.com>> >>> <mailto:robert.w.with...@gmail.com >>> <mailto:robert.w.with...@gmail.com> >>> <mailto:robert.w.with...@gmail.com >>> <mailto:robert.w.with...@gmail.com>>>> wrote: >>>>>> >>>>>> Sven and Torsten, that's a binary >>> serialization library! It >>> will take time to learn it and how to use >>> mappers. >>>>>> >>>>>> What is the format; is it language >>> neutral? >>>>> >>>>> For quick serialization you don’t >>> need to do >>> anything. It works >>> for (almost) all objects. Only if you want to >>> exclude things or >>> treat some objects in a special way, you >>> will need >>> to do some stuff. >>>>> >>>>> Documentation: >>> http://rmod.inria.fr/web/software/Fuel. >>>>> >>>>> >>>>>> >>>>>> thanks, >>>>>> Robert >>>>>> >>>>>> On 10/13/2015 01:21 AM, Sven Van >>> Caekenberghe >>> wrote: >>>>>>> Yes, it is called FUEL and it is a >>> standard >>> part of the >>> image. See FLSerializer and FLMaterializer. >>>>>>> >>>>>>>> On 13 Oct 2015, at 06:59, Robert >>> Withers >>> <robert.w.with...@gmail.com >>> <mailto:robert.w.with...@gmail.com> >>> <mailto:robert.w.with...@gmail.com >>> <mailto:robert.w.with...@gmail.com>> >>> <mailto:robert.w.with...@gmail.com >>> <mailto:robert.w.with...@gmail.com> >>> <mailto:robert.w.with...@gmail.com >>> <mailto:robert.w.with...@gmail.com>>>> wrote: >>>>>>>> >>>>>>>> Does Pharo have stream classes to >>> binary >>> de/serialize an >>> object, such that the protocol accepts an >>> object as >>> an argument and >>> converts it to a byteArray? >>>>>>>> >>>>>>>> -- >>>>>>>> thanks, >>>>>>>> Robert >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>> >>>> >>> >>> >>> >>> >>> -- >>> Mariano >>> http://marianopeck.wordpress.com >>> >>> >>> >>> >>> >>> >>> >>> >>> -- >>> Mariano >>> http://marianopeck.wordpress.com >>> >>> >>> >>> >>> >>> -- >>> Mariano >>> http://marianopeck.wordpress.com >> <Exporting Vat.jpg><Importing Vat.jpg>