
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