[DGD] Leaf objects
bart at wotf.org
bart at wotf.org
Tue Jul 28 10:54:58 CEST 2015
Kent,
Note that the gurbalib kernel you use
enforces the same rule (can't clone an
inheritable and can't inherit a clonable).
It doesn't have the nice solution of
auromatically generating a clonable in such
a case through that wouldn't be too
difficult.
On gurbalib those restrictions are in
compiler_d in allow_inherit and
allow_object. Felix'explanation tells why
this is important, and why those
restrictions should be left in place and
enforced very strictly. You will *NOT* be
able to support runnong dgd as a persistent
server without enforcing those rules as you
won't be able to recompile things without
losing data and state.
Along the same lines, you should make sure
all your changes can be handled by the
warmboot and rebuild commands.
Bart
On Mon, 27 Jul 2015 13:27:47 +0200, Felix A.
Croes wrote
> Blain <blain20 at gmail.com> wrote:
>
> > I noticed in your cloud server you use
leaf objects for cloning. May I ask
> > what the benefit of this is?
>
> To explain, a leaf object is an object
which is not inherited by any
> other, and the cloud server lib
automatically generates a leaf object
> when you are trying to clone from a /lib/
object, and clones from
> that instead. The purpose is to ensure
that no object you clone
> from is inherited by any other, while
allowing one to clone from a
> /lib/ object as a shortcut.
>
> Objects that can be inherited should never
be used to clone from, since
> that prevents the clones from being
upgraded. An inherited object
> can only be upgraded by first destructing
and then recompiling it,
> while a leaf object can be recompiled in
place, without destructing
> it; this will also upgrade all clones of
the leaf object.
>
> Regards,
> Felix Croes
>
____________________________________________
>
https://mail.dworkin.nl/mailman/listinfo/dgd
--
http://www.flickr.com/photos/mrobjective/
http://www.om-d.org/
More information about the DGD
mailing list