Well, ASDF doc (here: https://common-lisp.net/project/asdf/asdf/The-defsystem-form.html) is not that clear about this. It shows an example .asd file, which does have an in-package, albeit to package asdf-user, and says of it:
The file starts with an in-package form for package asdf-user. Quick summary: just do this, because it helps make interactive development of defsystem forms behave in the same was as when these forms are loaded by ASDF. ... The in-package form will ensure that the system definition is read the same as within ASDF when you load it interactively with cl:load. However, we recommend that you load .asd files through function asdf::load-asd rather than through cl:load, in which case this form is unnecessary.
Don't mean to hijack usocket for ASDF complaints, but shouldn't asdf::load- asd be exported?
Thanks, Mark
----- Original message ----- From: Zach Beane xach@xach.com To: "Mark H. David" mhd@yv.org Cc: usocket development usocket-devel@common-lisp.net Subject: Re: why is usocket.asd without an in-package or package qualifiers? Date: Tue, 16 Jun 2015 14:54:36 -0400
ASDF establishes a particular environment when using asdf:find-system and asdf:load-system that is not duplicated by a plain CL:LOAD. It has always been this way. You cannot reliably use CL:LOAD to load a system file and have things work.
Zach
On Tue, Jun 16, 2015 at 2:50 PM, Mark H. David mhd@yv.org wrote:
I notices there's no in-package or qualifiers present in usocket.asd.
So you have to, it seems, do (in-package :asdf) or similar before loading this file.
Is there any good reason for this? I was thinking of fixing this and doing a pull request. Anyone against?
Thanks,
Mark