Re: Is this correct?

"Tim Bradshaw (as tfb at cley dot com)" <[email protected]>
Newsgroups gmane.lisp.lispworks.general
Message-ID <[email protected]>
I think you could argue that on MacOS (with the usual filesystem setup) that *load-truename* should tell you the actual name of the file in the filesystem, since the filesystem does preserve case, even though it ignores it.

But while there are cases where this will matter it doesn't often.

On 20 Feb 2026, at 16:45, Michał phoe Herda (as phoe at disroot dot org) <[email protected]> wrote:



Is your filesystem case-sensitive? It seems you're using macOS, at which point the case in pathnames won't matter and all pathname variants you listed are correct.

W dniu 2026-02-20 17:35, Marco Antoniotti napisał(a):

Hi

That does not matter. It is the case of the results that is off.

On LW this is what you have:

CL-USER 10 > (describe *default-pathname-defaults*)

#P"" is a PATHNAME
HOST NIL
DEVICE NIL
DIRECTORY NIL
NAME NIL
TYPE NIL

VERSION :NEWEST

and

CL-USER 12 > (describe (lw:current-pathname))

#P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/" is a PATHNAME
HOST NIL
DEVICE NIL
DIRECTORY (:ABSOLUTE "Users" "marcoxa" "Projects" "Lang" "CL" "HELambdaP")
NAME NIL
TYPE NIL
VERSION NIL

On SBCL you have.

CL-USER> (describe *default-pathname-defaults*)
#P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/"
[pathname]

HOST = #<SB-IMPL::UNIX-HOST {1200039983}>
DIRECTORY = (:ABSOLUTE "Users" "marcoxa" "Projects" "Lang" "CL" "HELambdaP")

But even binding *d-p-d* on LWM does not change the effect.

CL-USER 11 > (let ((*default-pathname-defaults* (current-pathname)))
(load "tmp/lpn.lisp")
(load "tmp/Lpn.lisp")
(load "tmp/LPN.lisp"))
; Loading text file /Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/lpn.lisp
LPN: Test: *load-pathname* #P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/lpn.lisp"
LPN: Test: *load-truename* #P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/lpn.lisp"
; Loading text file /Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/Lpn.lisp
LPN: Test: *load-pathname* #P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/Lpn.lisp"
LPN: Test: *load-truename* #P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/Lpn.lisp"
; Loading text file /Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/LPN.lisp
LPN: Test: *load-pathname* #P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/LPN.lisp"
LPN: Test: *load-truename* #P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/LPN.lisp"
#P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/LPN.lisp"

Shall I move to TOPS-20? 🥹🫩🙄

Cheers

Marco

On Fri, Feb 20, 2026 at 5:25 PM Michał "phoe" Herda <[email protected] > wrote:

What is *DEFAULT-PATHNAME-DEFAULTS* on LW and SBCL? https://www.lispworks.com/documentation/HyperSpec/Body/v_defaul.htm

Asking because that is going to affect the value of LOAD-PATHNAME, as per https://www.lispworks.com/documentation/HyperSpec/Body/v_ld_pns.htm

Both are correct, I just suspect that the implementation-defined default is different.

W dniu 2026-02-20 17:12, Marco Antoniotti (as marco dot antoniotti at unimib dot it) napisał(a):

Hi

I am finding some issues with *load-pathname* and *load-truename*.

Here is what I see in LWM (8.x). I did a change-directory beforehand).

CL-USER 5 > (load "tmp/lpn.lisp")
; Loading text file /Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/lpn.lisp
LPN: Test: *load-pathname* #P"tmp/lpn.lisp"
LPN: Test: *load-truename* #P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/lpn.lisp"
#P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/lpn.lisp"

CL-USER 6 > (load "tmp/Lpn.lisp")
; Loading text file /Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/Lpn.lisp
LPN: Test: *load-pathname* #P"tmp/Lpn.lisp"
LPN: Test: *load-truename* #P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/Lpn.lisp"
#P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/Lpn.lisp"

CL-USER 7 > (load "tmp/LPN.lisp")
; Loading text file /Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/LPN.lisp
LPN: Test: *load-pathname* #P"tmp/LPN.lisp"
LPN: Test: *load-truename* #P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/LPN.lisp"
#P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/LPN.lisp"

However, SCBL seems to be "more correct".

CL-USER> (load "tmp/lpn.lisp")
LPN: Test: *load-pathname* #P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/lpn.lisp"
LPN: Test: *load-truename* #P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/lpn.lisp"
T
CL-USER> (load "tmp/Lpn.lisp")
LPN: Test: *load-pathname* #P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/Lpn.lisp"
LPN: Test: *load-truename* #P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/lpn.lisp"
T
CL-USER> (load "tmp/LPN.lisp")
LPN: Test: *load-pathname* #P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/LPN.lisp"
LPN: Test: *load-truename* #P"/Users/marcoxa/Projects/Lang/CL/HELambdaP/tmp/lpn.lisp"
T

The actual file is tmp/lpn.lisp and it is listed below.

(format t "LPN: Test: *load-pathname* ~S~%" *load-pathname*)
(format t "LPN: Test: *load-truename* ~S~%" *load-truename*)

Any thoughts?

Marco

--

Marco Antoniotti, Professor, Director tel. +39 - 02 64 48 79 01
DISCo, University of Milan-Bicocca U14 2043 http://dcb.disco.unimib.it
Viale Sarca 336
I-20126 Milan (MI) ITALY

REGAINS: https://regains.disco.unimib.it/

--

Marco Antoniotti, Professor, Director tel. +39 - 02 64 48 79 01
DISCo, University of Milan-Bicocca U14 2043 http://dcb.disco.unimib.it
Viale Sarca 336
I-20126 Milan (MI) ITALY

REGAINS: https://regains.disco.unimib.it/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.