> On 07 Dec 2014, at 04:19, Eliot Miranda <[email protected]> wrote:
> 
> Hi Max,

Hi Eliot,

> 
> On Sat, Dec 6, 2014 at 1:43 AM, Max Leske <[email protected] 
> <mailto:[email protected]>> wrote:
> 
>> On 06 Dec 2014, at 04:37, Eliot Miranda <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> 
>> 
>> On Thu, Dec 4, 2014 at 11:35 PM, Max Leske <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> > On 05 Dec 2014, at 08:02, Norbert Hartl <[email protected] 
>> > <mailto:[email protected]>> wrote:
>> >
>> >
>> >
>> >
>> >> Am 04.12.2014 um 23:31 schrieb Thierry Goubier <[email protected] 
>> >> <mailto:[email protected]>>:
>> >>
>> >> Hi all,
>> >>
>> >> I'm just wondering.
>> >>
>> >> Would it work to have a package format based on Fuel?
>> >>
>> > I doubt it would work cross platform. I don't know how fuel serializes 
>> > WideString, LargePositiveInteger, BoxedFloat64. These differ between 
>> > smalltalk platforms. The source as string solves that. Strings are written 
>> > as unicode string and numbers as certain number format etc.
>> 
>> True. Cross dialect loading isn’t something we encourage to do with Fuel.
>> 
>> @Thierry
>> You said something about partial loading: that will never be possible with 
>> Fuel because of its pickle format. To select any partial graph you have to 
>> first read the entire file and rebuild the graph first (ok, you don’t 
>> strictly have to build the graph but you still need to read the entire file).
>> 
>> Hi Max, you misunderstand what partial loading means in this context.  I 
>> designed and implemented partial loading for the Parcel system in VW, and 
>> Fuel is essentially a clean reimplementation of parcels.  The idea is that 
>> one does indeed read the entire object graph, but then only the parts of the 
>> graph that mate with the current class hierarchy are installed, and the bits 
>> that don't fit are stored for later.  Why?  So that a component can define 
>> extensions on classes in components that may not be present.  Why?  So that 
>> one can maintain a single logical component in a single package instead of 
>> decomposing it into independently loadable fragments.
> 
> Makes sense. It’s just that I often get asked if it is possible to read / 
> update only parts of a Fuel file, so I wanted to make it clear that that 
> can’t work.
> 
> Right, good point.  But is there a use case?  For example, in effect is there 
> a difference between being able to patch a part of a Fuel file and loading 
> that file into an image (possibly automatically), patching the object graph 
> and saving a new version?  

Yes, performance seems to be the main use case. Fuel files of hundreds of MB 
take a long time to load and save, even if you only change a single string. One 
instance where this is relevant is the Moose model. They currently use .mse 
files, which use a textual representation (if I’m not mistaken). Usman asked me 
if Fuel were an option, especially for updating only parts of the model.

> 
>> Lets take an example like Fuel itself.  This may have specialised 
>> marshalling and unmarshalling extensions defined on may classes, some of 
>> which may be to do with the GUI.  If we have partial loading we can load 
>> Fuel into a headless image.  The extensions on the GUI classes will simply 
>> not be installed, *until* we load the GUI.  Hence Fuel does not have to be 
>> decomposed every time we factor the system into subcomponents.  Without 
>> partial loading Fuel must be decomposed into a series of fragments so that 
>> it can load that part that fits into the headless base, and we have to 
>> manage teh dependency to ensure the fragment that loads against the GUI is 
>> loaded when the GUI is loaded.  Worse still, if we cut the GUI into two 
>> (e.g. development vs deployment tools) we have to visit the Fuel GUI 
>> component (and potentially many other component) and decompose it into two 
>> pieces.  In practice this is extremely costly to maintain, verging on chaos. 
>>  With partial loading things are simple.
>> 
>> Perhaps I should have called it partial installation, but you get the idea.  
> 
> Thanks for the explanation.
> 
>> 
>> 
>> >
>> > Norbert
>> >
>> >> Would that make loading faster?
>> >>
>> >> Does it already exist?
>> >>
>> >> Thanks,
>> >>
>> >> Thierry
>> >
>> 
>> 
>> 
>> 
>> 
>> -- 
>> best,
>> Eliot
> 
> 
> 
> 
> -- 
> best,
> Eliot

Reply via email to