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
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
Ok fine, seems to work.
How about Quicklisp? Quicklisp uses the same version of usocket as what's linked to on the "CLiki" (http://cliki.net/USOCKET), version 0.6.1, released July 20 (or 21), 2013. Could there be a release soon? We strongly prefer to use quicklisp's dist, and we need this new socket functionality for running on CCL trunk.
Thanks,
Mark
On Apr 15, 2015, at 5:08 AM, Stas Boukarev stassats@gmail.com wrote:
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.
Hi Mark,
I’ll make a new patch release (0.6.2) on next Monday to satisfy CCL 1.11 (not officially released yet) users like you.
Regards,
Chun
Il giorno 16/apr/2015, alle ore 02:02, Mark H. David mhd@clozure.com ha scritto:
Ok fine, seems to work.
How about Quicklisp? Quicklisp uses the same version of usocket as what's linked to on the "CLiki" (http://cliki.net/USOCKET), version 0.6.1, released July 20 (or 21), 2013. Could there be a release soon? We strongly prefer to use quicklisp's dist, and we need this new socket functionality for running on CCL trunk.
Thanks,
Mark
On Apr 15, 2015, at 5:08 AM, Stas Boukarev stassats@gmail.com wrote:
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.