The cmucl maintainer convinced me that #+cmucl was the right thing, at least going forward. If there are any #+cmu left, it's a mistake — please fix if you find it.
Yes it is known that old cmucl versions have bugs that break some ASDF functionality, that I reported, and most of which were fixed (except those having to do with upgrading code with CLOS).
On Sat, Aug 20, 2016, 12:58 Elias Pipping pipping.elias@icloud.com wrote:
Dear list,
a quick and superficial analysis suggests that the :cmu feature has been defined for longer (probably forever) and :cmucl is relatively new(*), yet ASDF appears to use both and mix them rather arbitrarily. Assuming that the check for :cmucl is not meant to rule out old versions of cmucl, I think it would make sense to stick to one.
While `make test` will currently fail right away with cmucl 20b because of the missing :cmucl feature, transforming all the occurrences of the :cmucl feature into :cmu still leaves two tests failing. And with 20c and 20d (which are not old at all and do define :cmucl), 5 tests will still be failing (and have been for quite some time). Only the very recent releases 20e, 20f, and 21a pass all tests.
Is this known? Is it impossible to support old versions of cmucl? I did find that cmucl-20a at least does not expose (unix:unix-getenv) which ASDF puts to use but I cannot judge if there are ways to work around that.
So to summary what I’d like to ask:
- Is it known that tests fail on cmucl <20e?
- What versions of cmucl is ASDF meant to support?
- Should I turn checks for the :cmucl feature into ones for :cmu?
Elias
(*) in a shell,
for v in 19a 20{a,b,c,d,e,f} 21a; do echo -n cmucl-$v:; cmucl-$v -eval '(write-line #+cmucl "yes" #-cmucl "no")' -eval '(quit)'; done
prints:
cmucl-19a:no cmucl-20a:no cmucl-20b:no cmucl-20c:yes cmucl-20d:yes cmucl-20e:yes cmucl-20f:yes cmucl-21a:yes