Dear Mark,
Fare's suggestion that I use an output translation based on the jar pathname doesn't quite work, because in our current implementation, the pathname of the jar is stored in DEVICE, separate from the rest of the jar pathname. I extended PATHNAME-MATCH-P to match jars correctly, but I don't see a possible extension of TRANSLATE-PATHNAME.
Couldn't you extend the ABCL pathname matching algorithm to allow for wildcards and all in the device component?
So I would ask the ASDF developers to consider extending the output translation DSL to allow something like
(initialize-output-translations '(:output-translations :ignore-inherited-configuration (#p"jar:file:/**/*.jar!/**/*.*" :function SYS::ASDF-JAR-OUTPUT-TRANSLATE)))
I suggest that either you make (:function foo) a valid second value for an output-translations list, or you make said list accept a &key function argument in addition to its two current positional arguments. But having weird non-standard vararg convention for such lists is probably a bad API. The default function would be TRANSLATE-PATHNAME and the calling convention would be the same.
And, is there a syntax to specify that a pathname matching a given pattern should have no output location, but should just load the source?
You mean, something to force LOAD-SOURCE-OP instead of LOAD-OP? Nope. But I suppose some component class could be defined to do this.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] The Keyboard is mightier than the Death Ray...