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




--
With best regards, Stas.