From: Pascal B. <pj...@in...> - 2006-05-23 15:04:22
|
Raymond Toy writes: > [Pascal complained about the result of TRANSLATE-PATHNAME] > Ah, I see. Hmm. I guess the question is what is > > (translate-pathname > "PACKAGES:COM;INFORMATIMAGO;COMMON-LISP;UTILITY.LISP" > #P"PACKAGES:COM;INFORMATIMAGO;**;*.*.*" > #P"**/*.*.~*~") > > supposed to return. I'll have to read up on that. The comments in > the code say that :relative or :absolute is taken from the source > directory. Don't know if that's right or not. Well, reading TRANSLATE-PATHNAME, I see that my expectations were too high, this is mostly implementation dependant. (all tests on Linux x86): clisp 2.38: (translate-pathname "PACKAGES:COM;INFORMATIMAGO;COMMON-LISP;UTILITY.LISP.42" #P"PACKAGES:COM;INFORMATIMAGO;**;*.*.*" #P"**/*.*") ; clisp doesn't take versions, grrr! --> #P"common-lisp/utility.lisp" sbcl 0.9.12: (translate-pathname "PACKAGES:COM;INFORMATIMAGO;COMMON-LISP;UTILITY.LISP.42" #P"PACKAGES:COM;INFORMATIMAGO;**;*.*.*" #P"**/*.*") ; sbcl doesn't take versions either, grrr! --> #P"/common-lisp/utility.lisp" ecl-9g: (translate-pathname "PACKAGES:COM;INFORMATIMAGO;COMMON-LISP;UTILITY.LISP.42" #P"PACKAGES:COM;INFORMATIMAGO;**;*.*.*" #P"**/*.*") ; ecl doesn't take versions, grrr! --> #P"COMMON-LISP/UTILITY.LISP" gcl 2.6.7: Doesn't define translate-pathname :-( Allegro 7.0: (translate-pathname "PACKAGES:COM;INFORMATIMAGO;COMMON-LISP;UTILITY.LISP.42" #P"PACKAGES:COM;INFORMATIMAGO;**;*.*.*" #P"**/*.*") ; allegro doesn't like versions either, grrr! --> #P"COMMON-LISP/UTILITY.LISP" I feel the most useful result on a unix-like file system, is that of clisp. But I should probably avoid relative pathnames in my translations to make a more portable program. -- __Pascal Bourguignon__ http://www.informatimago.com/ Litter box not here. You must have moved it again. I'll poop in the sink. |
From: Raymond T. <ray...@er...> - 2006-05-23 16:14:29
|
>>>>> "Pascal" == Pascal Bourguignon <pj...@in...> writes: Pascal> clisp 2.38: --> #P"common-lisp/utility.lisp" Pascal> sbcl 0.9.12: --> #P"/common-lisp/utility.lisp" Pascal> ecl-9g: --> #P"COMMON-LISP/UTILITY.LISP" Pascal> gcl 2.6.7: Pascal> Doesn't define translate-pathname :-( Pascal> Allegro 7.0: --> #P"COMMON-LISP/UTILITY.LISP" Well, except for sbcl which probably behaves that way because cmucl does, there's precedent in returning a relative pathname instead of an absolute pathname. But, as you say in a different message, using absolute pathnames in your translations solves this problem, portably. Ray |