Faré wrote:
- Add warnings for people using ABCL or ECL + bundle-op on Mac OS.
>
The ABCL and ECL bugs... well, I'm not sure these configurations ever worked, so it's no regression. But yes, it should be easy to detect such a situation and issue a warning of a cerror might help the user diagnose why his code is failing, e.g. in the failing perform method, before the failure.
I believe so, and while waiting for a fix, we can allow programmers to live dangerously by pushing something like :asdf-try-broken-bundle-op onto *FEATURES*.
I recommend against a feature, which requires recompilation, and is thus useless when using an implementation-provided ASDF, as well as introduces hard-to-control environmental dependencies. Instead, I much recommend using CERROR, which can be controled programmatically at runtime with RESTART-CASE.
I don't see why features necessarily require recompilation. Although a feature DOES enable read-time checking, there is no *obligation* to check at read-time. We can easily do something like
(defmethod PERFORM :BEFORE ((op bundle-op) c) #+darwin ;; or whatever is right to detect Mac OSX (unless (member :asdf-try-broken-bundle-op *features*) (cerror "Try running with bundle-op." "ASDF's BUNDLE-OP is believed to be broken on this implementation on Mac OSX. If you wish to try anyway, push :asdf-try-broken-bundle-op on *FEATURES*.")))
...and then purge the method definition when these platforms are fixed.
I suggest using features because the CL package system makes the Emacs-lisp style of using SETQ and DEFVAR untenable.
Cheers, r