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/