[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: when GC is permitted




    > From: Michael Sperber <sperber@xxxxxxxxxxxxxxxxxxxxxxxxxxx>

    > Again, I referred to lots of code that *already* is written for
    > a SRFI-50-style FFI, and that would need to be rewritten anyway
    > for a JNI- or Pika-style FFI.

Putting aside forensics of the exchange that led to that -- it leaves
me with a question:

What is this "lots of code"?   Can we identify and quantify it?
How much of it is free software or open source code?

Other than code specifically written for S48, and perhaps even for
that, I think legacy code is going to need a fairly careful review
even if the draft were finalized as-is tomorrow.  For example, code
for Guile will tend to have been written to be safe for a GC that
conservatively traces the C stack and machine registers -- it would
need modifications to be correct under the draft.  And, for example,
while the draft takes a particular position about error handling (that
errors in FFI routines called from C are essentially bugs), legacy
libraries for some systems are not necessarily written to share this
assumption and may be written to use native facilities for exception
handling.

One advantage of making "convert to Pika-style" a part of such a
review process for legacy code is that it forces a more careful look
at the code by both human and compiler.

-t