On 03/04/2013, at 2:36 AM, Wim Lewis wrote:

> 
> Right now, the only flag that the Felix runtime seems to act on is
> gc_flags_conservative. The compiler sets gc_flags_immobile for static
> objects, which are both immobile, and persistent in the way that the
> foreign pointers are not, but it doesn't look like that flag has an
> effect on the runtime's behavior.

Immobile was introduced when I was implementing a compactor.
Small mobile objects went into an arena which could be compacted.
Big objects and immobiles ones were separately allocated.

However my implementation introduced complexity esp. integration
with C and seemed to reduce performance instead of improving
it so I threw it out. The immobile flag is a legacy of that experiment.

> Looking at the code I wasn't sure what the intended purpose of the
> serialization code is. Is it for sending types between processes,
> compacting GC, saving state to disk? Foreign types often won't be
> serializable, eg if they have complex internal state that can't be
> extracted easily or if they wrap some kind of resource, so I didn't
> worry about it too much.


In the greater scheme of things serialisation allows for mobility and
persistence. Mobile across networks, persistent across restarts.

The actual implementation is a just a proof of principle hack.
It works for many types, but not Judy arrays. Roughly speaking
you can take some data and serialise it, so that the same program
can reload the data on a restart or another machine. By data i mean
say a list of arrays of pointers to trees of doubles, i.e. a collection of
objects connected by pointers such that every pointer in any object
points into one of the objects (i.e. its a transitive closure).

The constraint "same program" arises from needing a pointer to the
shape object (RTTI) and might be fixed if we could get some unique 
names other than pointers for the shape objects.  

More on this later perhaps.

--
john skaller
skal...@users.sourceforge.net
http://felix-lang.org




------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to