[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Compilation and package system
Yep, that's true. In the hurry to say that compiling code has no
effects on its semantics, the CLM glossed over some uglies that are
unlikely to go away.
One is the problem that you mention: reading throws away
information, so the load-time semantics cannot be the same with
compiled code. It would be nice if someone could decide what should
be guaranteed about the package semantics of symbols in compiled code.
Another problem involves the constraints placed on objects that
can be function constants.
1] Can any type of object be dumped? Compiled functions, hashtables,
streams? The answer is almost certainly no, but nowhere is it
specified what you can dump. A conservative rule would be to only
guarantee that readable objects can be dumped.
2] Is sharing and non-sharing preserved? Probably not.
3] Can circular structures can dumped? Note that they can be read
and printed.
Rob