I was able to reproduce this bug, and obtained a backtrace and a description of the pathname object in question.
Digging further, I see that ensure-directories-exist ignores the result of mkdir for some reason, but that's not the real issue... There's something weird with PROBE-FILE and UNC-filespec directories.
My session transcript follows:
Z:\sbcl-git-two>src\runtime\sbcl.exe --core output\sbcl.core
This is SBCL 1.0.32.38, an implementation of ANSI Common Lisp.
More information about SBCL is available at .
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
This is experimental prerelease support for the Windows platform: use
at your own risk. "Your Kitten of Death awaits!"
* (require :asdf)
("ASDF")
* (push "//vboxsvr//virtualbox-host/lisp-winapi/" asdf:*central-registry*)
("//vboxsvr//virtualbox-host/lisp-winapi/"
(MERGE-PATHNAMES ".sbcl/systems/" (USER-HOMEDIR-PATHNAME))
(LET ((ASDF::HOME (POSIX-GETENV "SBCL_HOME")))
(WHEN (AND ASDF::HOME (NOT (STRING= ASDF::HOME "")))
(MERGE-PATHNAMES "site-systems/" (TRUENAME ASDF::HOME))))
*DEFAULT-PATHNAME-DEFAULTS*)
* (require :lisp-winapi)
debugger invoked on a SIMPLE-ERROR:
Win32 Error [CreateDirectoryW@8] - 123
The filename, directory name, or volume label syntax is incorrect.
Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [TRY-RECOMPILING] Try recompiling winapi-package
1: [RETRY ] Retry performing # on
#.
2: [ACCEPT ] Continue, treating # on
# as
having been successful.
3: [ABORT ] Exit debugger, returning to top level.
(SB-UNIX:UNIX-MKDIR "\\\\vboxsvr\\" #)
0] back
0: (SB-UNIX:UNIX-MKDIR "\\\\vboxsvr\\" #)
1: (ENSURE-DIRECTORIES-EXIST
#P"\\\\vboxsvr\\virtualbox-host\\lisp-winapi\\winapi-package.fasl")[:EXTERNAL]
2: (SB-IMPL::%MAP-FOR-EFFECT-ARITY-1
#
(#P"\\\\vboxsvr\\virtualbox-host\\lisp-winapi\\winapi-package.fasl"))
3: ((SB-PCL::FAST-METHOD ASDF:PERFORM :BEFORE
(ASDF:COMPILE-OP ASDF:SOURCE-FILE))
#
#
#
#)
4: ((LAMBDA
(SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0.
SB-PCL::.ARG1.))
#
#
#
#)
5: ((SB-PCL::FAST-METHOD ASDF:PERFORM ASDF:AROUND
(ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE))
#
#S(SB-PCL::FAST-METHOD-CALL
:FUNCTION #
:PV NIL
:NEXT-METHOD-CALL NIL
:ARG-INFO (2))
#
#)
6: ((LAMBDA ()))
7: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK))
8: (SB-C::%WITH-COMPILATION-UNIT #)[:EXTERNAL]
9: (ASDF:OPERATE ASDF:LOAD-OP :LISP-WINAPI)[:EXTERNAL]
10: (ASDF::MODULE-PROVIDE-ASDF :LISP-WINAPI)
11: ((LAMBDA (#:G[REQUIRE]13)) ASDF::MODULE-PROVIDE-ASDF)
12: (SB-IMPL::%MAP-FOR-EFFECT-ARITY-1
#
(ASDF::MODULE-PROVIDE-ASDF SB-IMPL::MODULE-PROVIDE-CONTRIB))
13: (REQUIRE :LISP-WINAPI NIL)
14: (SB-INT:SIMPLE-EVAL-IN-LEXENV (REQUIRE :LISP-WINAPI) #)
15: (INTERACTIVE-EVAL (REQUIRE :LISP-WINAPI))[:EXTERNAL]
16: (SB-IMPL::REPL-FUN NIL)
17: ((LAMBDA ()))
18: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX #)
19: (SB-IMPL::TOPLEVEL-REPL NIL)
20: (SB-IMPL::TOPLEVEL-INIT)
21: ((LABELS SB-IMPL::RESTART-LISP))
22: ("foreign function: #x412404")
23: ("foreign function: #x40B28F")
0] frame 1
(ENSURE-DIRECTORIES-EXIST
#P"\\\\vboxsvr\\virtualbox-host\\lisp-winapi\\winapi-package.fasl")[:EXTERNAL]
1] l
SB-DEBUG::ARG-0 = 1
SB-DEBUG::ARG-1 = #P"\\\\vboxsvr\\virtualbox-host\\lisp-winapi\\winapi-package.fasl"
1] (describe sb-debug::arg-1)
#P"\\\\vboxsvr\\virtualbox-host\\lisp-winapi\\winapi-package.fasl"
[structure-object]
Slots with :INSTANCE allocation:
HOST = #
DEVICE = "vboxsvr"
DIRECTORY = (:ABSOLUTE "virtualbox-host" "lisp-winapi")
NAME = "winapi-package"
TYPE = "fasl"
VERSION = :NEWEST
1] (describe #p"\\\\vboxsvr\\")
#P"\\\\vboxsvr\\"
[structure-object]
Slots with :INSTANCE allocation:
HOST = #
DEVICE = "vboxsvr"
DIRECTORY = (:ABSOLUTE)
NAME = NIL
TYPE = NIL
VERSION = NIL
1] (probe-file #p"\\\\vboxsvr\\")
NIL
1] (probe-file #p"\\\\vboxsvr\\virtualbox-host\\")
NIL
1] (describe #p"\\\\vboxsvr\\virtualbox-host\\")
#P"\\\\vboxsvr\\virtualbox-host\\"
[structure-object]
Slots with :INSTANCE allocation:
HOST = #
DEVICE = "vboxsvr"
DIRECTORY = (:ABSOLUTE "virtualbox-host")
NAME = NIL
TYPE = NIL
VERSION = NIL
1] (probe-file #p"\\\\vboxsvr\\virtualbox-host\\lisp-winapi\\")
#P"\\\\vboxsvr\\virtualbox-host\\lisp-winapi\\"
1] (describe #p"\\")
#P"\\"
[structure-object]
Slots with :INSTANCE allocation:
HOST = #
DEVICE = NIL
DIRECTORY = (:ABSOLUTE)
NAME = NIL
TYPE = NIL
VERSION = NIL
1] (probe-file #p"\\")
#P"Z:\\"
1] (probe-file *)
#P"Z:\\"
1] (describe *)
#P"Z:\\"
[structure-object]
Slots with :INSTANCE allocation:
HOST = #
DEVICE = "Z"
DIRECTORY = (:ABSOLUTE)
NAME = NIL
TYPE = NIL
VERSION = NIL
1] (quit)
;
; compilation unit aborted
; caught 1 fatal ERROR condition
Z:\sbcl-git-two>net use
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
Z: \\VBOXSVR\virtualbox-host VirtualBox Shared Folders
The command completed successfully.
Z:\sbcl-git-two>