[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
I don't believe in "(may GC)"
The draft FFI says:
char * SCHEME_EXTRACT_STRING(scheme_value)
Neither says "(may GC)".
I don't like that.
If I'm using some exotic number representation (constructive reals,
perhaps), then EXTRACT_DOUBLE may very well involve some pretty hairy,
hence possibly GC-causing, computation.
If I'm using some exotic string representations (I'm working on a
functional-splay-tree string type for Pika) -- same deal:
extract-string may take some (possibly GC-causing) work.
Even something innocent like:
can cause GC if my implementation let's me attach to a hook in its
In short, even if you are going to be stubborn about concurrent
threads or async execution an insist that GC can only happen "at
certain times" -- I'm not convinced that there is a single entry point
anywhere in the FFI which does not qualify for "(may GC)".