Hi Tobias,<br><br>One thing, that you might want to use instead of :weakly-depends-on is feature dependencies.<br>The syntax is (:feature <feature>) in dependency list, like this:<br>(defsystem #:test<br>  :depends-on (#:cl-ppcre<br>

                            (:feature :custom-readtables))<br><br>Although, I didn't try it in modules, but I guess, it should work there as well, since the mechanism is generic. Proceed at your own risk... ;)<br><br>

Best,<br>Vsevolod<br>
<br><br><div class="gmail_quote">On Thu, Aug 19, 2010 at 11:13 AM, Tobias C Rittweiler <span dir="ltr"><<a href="mailto:tcr@freebits.de">tcr@freebits.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<br>
Quite a few libraries come with reader hacks. They usually<br>
come with a ENABLE-FOO-SYNTAX function. I'd like those<br>
libraries to optionally depend on the named-readtables<br>
library, and define a named readtable that includes their<br>
hacks. So users can just use (IN-READTABLE FOO:SYNTAX)<br>
on a per-file basis.<br>
<br>
What do you think would be the best way to do it?<br>
<br>
There's :weakly-depends-on which only loads a dependency<br>
if that system is present. Named-readtables pushes<br>
:NAMED-READTABLE to *FEATURES*. So in principle, people<br>
can use<br>
<br>
  (:weakly-depends-on :named-readtables)<br>
<br>
and then<br>
<br>
  #+named-readtables<br>
  (named-readtables:defreadtable ...)<br>
<br>
Or put that definition in a file readtable.lisp and<br>
use feature-conditionalized compilation in the system<br>
definition (which used to be, and I guess still is,<br>
awfully awkward -- I never remember how to do it.)<br>
<br>
Now I'm wondering how good that solution is.<br>
<br>
What is if the library was compiled with a core that<br>
happened to include named-readtables? Trying to load<br>
that fasl with another core file would probably result<br>
in an obscure error. Now, it's a shoot-yourself-in-the-foot<br>
kind of thing to do, but I'd think it's something that<br>
can happen quite easily. Does ASDF somehow guard against<br>
this case?<br>
<br>
>From what I can see, it appears that :WEAKLY-DEPENDS-ON<br>
was added in a quick rush thinking that it might be<br>
appropriate for conditional compilation, but it really<br>
is not. Does that seem true to you, too?<br>
<br>
Maybe people can share how they got bitten by it?<br>
<br>
I'd think ASDF should include a ./configure step (there<br>
are extension for that kind of thing out there), and<br>
should then save configuration choices persistently,<br>
and check for these when loading a system.<br>
<br>
  -T.<br>
<br>
PS.<br>
<br>
Thanks, appreciation, and kudos again to Fare and Robert<br>
for having taken up the ASDF hat.<br>
<br>
<br>
_______________________________________________<br>
asdf-devel mailing list<br>
<a href="mailto:asdf-devel@common-lisp.net">asdf-devel@common-lisp.net</a><br>
<a href="http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel" target="_blank">http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel</a><br>
</blockquote></div><br>