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@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