[asdf-devel] Tests completed
Robert P. Goldman
rpgoldman at sift.info
Mon Jan 13 16:12:12 UTC 2014
>>>> 2. 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.
More information about the asdf-devel