Re: [asdf-devel] ASDF:LOAD-SYS
Hi Svante, (Sorry for the slow response... sending to the ASDF list too) I sympathize with your question: "the most common thing to do with ASDF, why do we make that harder than necessary?" I believe that the answer would have been that ASDF is philosophically based on performing "operations" on "systems" and so it was better (in some, perhaps, Platonic sense) <smile>. I actually agree with you and think that we should add something like (load-op <system> &key ...) to ASDF public interface. If there isn't a lot of disagreement, I'll do that soon. thanks for you question, On May 22, 2009, at 6:14 PM, Svante Carl v. Erichsen wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hello!
This is just a little question or request that has perhaps been asked numerous times before.
Why is there no predefined macro for the by far most used asdf user operation?
Instead of (asdf:operate 'asdf:load-op 'my-system), I'd like to just do (asdf:load-sys 'my-system).
Best wishes, Svante -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkoXI9IACgkQFZBb0npmKsz9QgCdHtD40W2PMvra4R8HE8IRwXHg ynMAn1EJzgFvSPx1Ygbzc+Bt4IMF4JnS =Qf0O -----END PGP SIGNATURE-----
-- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter
Gary King wrote:
Hi Svante,
(Sorry for the slow response... sending to the ASDF list too)
I sympathize with your question: "the most common thing to do with ASDF, why do we make that harder than necessary?" I believe that the answer would have been that ASDF is philosophically based on performing "operations" on "systems" and so it was better (in some, perhaps, Platonic sense) <smile>.
I actually agree with you and think that we should add something like
(load-op <system> &key ...)
to ASDF public interface.
If there isn't a lot of disagreement, I'll do that soon.
I'd like to second the motion. I've been meaning to get around to submitting a patch that would add LOAD-SYSTEM, COMPILE-SYSTEM and TEST-SYSTEM, with the obvious expansions to asdf:oos. Yes, I know that the user can do this him/herself, but given that the user inevitably will want to add the commands seems to me a strong argument for doing it. After all, libraries are supposed to save work, not make it! While Kenny's review of his first experience with ASDF was, perhaps, unhelpfully inflammatory, I do agree with the central thesis that it's too hard to use ASDF out of the box and that we should make it easier. Best regards, Robert
thanks for you question,
On May 22, 2009, at 6:14 PM, Svante Carl v. Erichsen wrote:
Hello!
This is just a little question or request that has perhaps been asked numerous times before.
Why is there no predefined macro for the by far most used asdf user operation?
Instead of (asdf:operate 'asdf:load-op 'my-system), I'd like to just do (asdf:load-sys 'my-system).
Best wishes, Svante
-- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter
_______________________________________________ asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Robert Goldman <rpgoldman@sift.info> writes:
Yes, I know that the user can do this him/herself, but given that the user inevitably will want to add the commands
I'm sorry, but "inevitably" is not the right word.
seems to me a strong argument for doing it. After all, libraries are supposed to save work, not make it!
But the work has already been done: support for loading ASDF systems without any new ASDF operator is already present in Cusp, Slime, CCL, SBCL, Allegro-like REPLs, LW-ADD-ONS and almost certainly other development environments.
While Kenny's review of his first experience with ASDF was, perhaps, unhelpfully inflammatory, I do agree with the central thesis that it's too hard to use ASDF out of the box and that we should make it easier.
Is it too hard to load a system, or too hard to write a system definition? If the former, will that actually be addressed by changing (to the newbie) one cryptic incantation for another, or would the effort be better spent working on other barriers to entry? Look, I don't have a veto; you guys will end up doing what you want anyway. I would like to say that I think it's a mistake; that Kenny's (and others') public complaints aren't going to go away as a result of this change; that people will still find it weird and odd; and that the loss of generality in the interface will eventually come and bite. (Though perhaps not before ASDF gets replaced by a newly-named mostly-backwards-compatible successor; here's hoping). Best, Christophe
Christophe Rhodes wrote:
Robert Goldman <rpgoldman@sift.info> writes:
Yes, I know that the user can do this him/herself, but given that the user inevitably will want to add the commands
I'm sorry, but "inevitably" is not the right word.
seems to me a strong argument for doing it. After all, libraries are supposed to save work, not make it!
But the work has already been done: support for loading ASDF systems without any new ASDF operator is already present in Cusp, Slime, CCL, SBCL, Allegro-like REPLs, LW-ADD-ONS and almost certainly other development environments.
While Kenny's review of his first experience with ASDF was, perhaps, unhelpfully inflammatory, I do agree with the central thesis that it's too hard to use ASDF out of the box and that we should make it easier.
Is it too hard to load a system, or too hard to write a system definition? If the former, will that actually be addressed by changing (to the newbie) one cryptic incantation for another, or would the effort be better spent working on other barriers to entry?
Look, I don't have a veto; you guys will end up doing what you want anyway. I would like to say that I think it's a mistake; that Kenny's (and others') public complaints aren't going to go away as a result of this change; that people will still find it weird and odd; and that the loss of generality in the interface will eventually come and bite. (Though perhaps not before ASDF gets replaced by a newly-named mostly-backwards-compatible successor; here's hoping).
Point of clarification: no one is talking about replacing the existing operate and OOS interfaces with a less general one. All we are talking about doing is providing an easy api function that covers the most common cases in a way that's simple to use for a newbie. So the first few times you type the command at a repl you can just do (asdf:load-system 'foo) instead of (asdf:oos 'asdf:load-op 'foo) Later on, if one prefers, one can go to using asdf:oos directly. I agree about the alternative support on the different platforms, but that makes for difficulties for the learner. In particular, now the learner needs to search outside the asdf documentation to find out how to load. I certainly agree that, for example, if one is using SLIME, one will be happier when one has learned the slime command (and the same for other environment-specific commands). On the other hand, as one who moves back and forth between different environments (lisp implemenations, ELI and SLIME, development workstations), I find myself falling back on the functions quite a bit. This addition seems to me to do no harm to anyone. At worst, it will be useless. At best, it will help people starting up with ASDF. Best, Robert
participants (3)
-
Christophe Rhodes
-
Gary King
-
Robert Goldman