CL does guarantee it. Each form is read one by one. And eval-when causes evaluation. If that didn't work, how do you imagine IN-PACKAGE would work?
On Wed, Apr 15, 2015 at 4:16 AM, Mark H. David mhd@clozure.com wrote:
I see there's code to add feature :ccl-1.11-sockets and to use it via a read-time feature check in the same file. The file is backend/openmcl.lisp. I don't think this can work reliably. It seems to work, but I don't think Common Lisp guarantees it.
The code is
(eval-when (:compile-toplevel :load-toplevel :execute) (when (find-class 'ccl::ip6-socket-address nil) (pushnew :ccl-1.11-sockets *features*)))
I think a much more robust solution would be for this to go in an earlier file that is guaranteed to be loaded before backend/openmcl.lisp is compiled.
Can one of the developers review this?
Also, any word on when this will propagate to Quicklisp?
Thanks,
Mark