From: Eric Parker <semsyn.com at eric>
How do I create a file programmatically, i.e. without
having ACL prepend the pathname I give it with
:default-pathname?
Pathnames are not "prepended" -- they are merged in the sense of
merge-pathnames, as required by the language definition. It is not
optional -- see ANS 19.2.3.
Depending what you are trying to do, you might want to consider
binding *default-pathname-defaults* to a pathname with some
:unspecific or nil components.
Remember also that the language definition assignes no semantics when
a relative pathname (after merging with defaults, etc.) is used to
refer to a filesystem. Most modern operating systems have the notion
of a process' "current directory" and an implementation on such a
system will generally treat a relative pathname in the natural way on
such a system, but the way CL pathnames were intended to work is that
*default-pathname-defaults* would generally accomplish this same feat
in an implementation-independent way. Also, since
*default-pathname-defaults* is lambda bindable, it permits independent
tasks or modules running in a single lisp image effectively to have
different "current directories."