On Thu, 2007-07-12 at 10:06 +1000, skaller wrote:
> It is probably time to change the representation.

Ok, it has been done. Your custom code MAY need to be
adjusted. To avoid surprises later with the gc, try
running the programs with 

        FLX_FINALISE=1

environment variable set. This makes each program
garbage collect on termination. By default Felix doesn't
bother. This means most tests won't do any collection
at all because they don't actually call the collector.

Just to explain again: a Felix pointer is now a C pointer,
that is, it is one machine word (void* size).
The type is still different: &t and ptr[t] are still
distinct types (but you can cast between them quite safely),
including in C.

You can use ANY C pointer in a slot where a Felix pointer
is stored (including NULL). The C pointer does not have
to point at store allocated by Felix. It may point
INTO any Felix allocated object too.

Pointers INTO a Felix object are adjusted to point
to the head of the object for purpose of scanning
objects during the scan phase of collection
(not in place of course!)

Pointers not into or at Felix object are simply
not traced. NOTE: I can't remember what happens
to pointer 'one past the end' of an object,
but I think they're NOT traced.


-- 
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to