Hi Max,

On Sat, Dec 6, 2014 at 1:43 AM, Max Leske <[email protected]> wrote:

>
> On 06 Dec 2014, at 04:37, Eliot Miranda <[email protected]> wrote:
>
>
>
> On Thu, Dec 4, 2014 at 11:35 PM, Max Leske <[email protected]> wrote:
>
>>
>> > On 05 Dec 2014, at 08:02, Norbert Hartl <[email protected]> wrote:
>> >
>> >
>> >
>> >
>> >> Am 04.12.2014 um 23:31 schrieb Thierry Goubier <
>> [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?

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