I am affraid of potential problems:
- FRICASsys is compute-intensive, computations may block
communication leading to trouble (this is problematic now,
but having more things in FRICASsys may make problem worse).
- duplicating file decriptors without knowledge of Lisp may
lead to troubles. In particular, in the past we had trouble
which was due to buffering between Lisp I/O and OS I/O.
To explain a bit more: I would prefer a protocol where at start
of message we have size. Size allows reliably finding boundaries
between messages. But this looks impossible with current Lisp
I/O.
Let me mention anouther thing. For some period we had trouble
with Control-C handling in sbcl. It turned out that sbcl
developers changed internals and decided to use SIGPIPE for
their Control-C handling. But our C routines intercepted
SIGPIPE, which broke "new" sbcl Control-C handling (I write
"new" in the quotes, as this is old story now).
Note that arguably Unix signals are for applications to use
and I did not find any info about reserving SIGPIPE in sbcl
documentation. File descriptors for Lisp streams IMO are
part of Lisp implementation, they may break our use at any
time.
--
Waldek Hebisch