make-pathname* and Allegro
Kevin Layer
layer at franz.com
Tue Nov 17 18:11:44 UTC 2015
We were debugging some problems with an internal system and happened
to run across this:
(defun make-pathname* (&rest keys &key (directory nil)
host (device () #+allegro devicep) name type version defaults
#+scl &allow-other-keys)
"Takes arguments like CL:MAKE-PATHNAME in the CLHS, and
tries hard to make a pathname that will actually behave as documented,
despite the peculiarities of each implementation"
;; TODO: reimplement defaulting for MCL, whereby an explicit NIL should override the defaults.
(declare (ignorable host device directory name type version defaults))
(apply 'make-pathname
(append
#+allegro (when (and devicep (null device)) `(:device :unspecific))
keys)))
which is kind of curious, adding :device :unspecific only for
Allegro. Tracking it down to see if there were comments in the commit
that added the change yielded nothing:
commit 1e4bafdbd4200d3a19722699d6a332316b082b2b
Author: Francois-Rene Rideau <tunes at google.com>
Date: Wed Feb 6 04:23:13 2013 +0100
2.28.1: various upgrade issues
1- To make life easier on Xach, stop requiring asdf.lisp to be loaded as source
before it's compiled. Instead, wrap each and every single form in an eval-when,
most of the time via the with-upgradability macro that also transforms
defun into defun* and defgeneric into defgeneric*.
Causes massive reindentation :-(
2- Have a proper :version for fallback systems.
Will make systems that check the version happier.
3- protect a condition with #+sb-eval. Fixes lp#1116408.
4- Protect warnings-file methods with dynamic when *warnings-file-type*
rather than static #+.
Does anyone know why this change was made and what problem it fixed?
Thanks.
Kevin
More information about the asdf-devel
mailing list