From: Pascal B. <pj...@in...> - 2006-10-29 20:43:49
|
P[98]> (block nil (maphash (lambda (k v) (print k) (return)) *source-file= -db*)) #P"/a6/users/pjb/src/public/lisp/clisp/susv3-xsi.lisp"=20 NIL P[99]> (gethash #P"/a6/users/pjb/src/public/lisp/clisp/susv3-xsi.lisp" *= source-file-db*) NIL ; NIL P[100]> (hash-table-test *source-file-db*) EXT:FASTHASH-EQUAL P[101]> (equal #P"/a6/users/pjb/src/public/lisp/clisp/susv3-xsi.lisp" (block nil (maphash (lambda (k v) (print k) (return)) *sou= rce-file-db*))) #P"/a6/users/pjb/src/public/lisp/clisp/susv3-xsi.lisp"=20 NIL P[102]> (ext:fasthash-equal #P"/a6/users/pjb/src/public/lisp/clisp/susv3-= xsi.lisp" (block nil (maphash (lambda (k v) (print k) (r= eturn)) *source-file-db*))) #P"/a6/users/pjb/src/public/lisp/clisp/susv3-xsi.lisp"=20 NIL P[103]> (gethash (print (ext:fasthash-equal #P"/a6/users/pjb/src/public/l= isp/clisp/susv3-xsi.lisp" (block nil (maphash (lambda (k v) (print k) (re= turn)) *source-file-db*)))) *source-file-db*) #P"/a6/users/pjb/src/public/lisp/clisp/susv3-xsi.lisp" ; (print k) NIL ; (print (ext:fas= thash-equal ...)) NIL ; =20 NIL EXT:FASTHASH-EQUAL on pathnames seems to return a random value... P[108]> (cl-user::print-bug-report-info) LISP-IMPLEMENTATION-TYPE "CLISP" LISP-IMPLEMENTATION-VERSION "2.39 (2006-07-16) (built 3364813332) (memor= y 3364813922)" SOFTWARE-TYPE =20 "gcc -g -O2 -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-typ= e -Wmissing-declarations -Wno-sign-compare -O2 -fexpensive-optimizations = -falign-functions=3D4 -DUNICODE -DDYNAMIC_FFI -I. -x none libcharset.a li= bavcall.a libcallback.a -lreadline -lncurses -ldl -lsigsegv -L/usr/X11R= 6/lib SAFETY=3D0 HEAPCODES LINUX_NOEXEC_HEAPCODES GENERATIONAL_GC SPVW_BLOCKS S= PVW_MIXED TRIVIALMAP_MEMORY libsigsegv 2.4 libreadline 4.3" SOFTWARE-VERSION "GNU C 3.3 20030226 (prerelease) (SuSE Linux= )" MACHINE-INSTANCE "thalassa.informatimago.com [62.93.174.79]" MACHINE-TYPE "I686" MACHINE-VERSION "I686" *FEATURES* =20 (:SUSV3-XSI :SUSV3-MC3 :SUSV3 :COM.INFORMATIMAGO.PJB :ASDF-INSTALL :SPLIT= -SEQUENCE :ASDF :WILDCARD :RAWSOCK :PCRE :CLX-ANSI-COMMON-LISP :CLX :ZLIB :READLINE :REGEXP :SYSCA= LLS :I18N :LOOP :COMPILER :CLOS :MOP :CLISP :ANSI-CL :COMMON-LISP :LISP=3DCL :INTERPRETER :SOCKETS= :GENERIC-STREAMS :LOGICAL-PATHNAMES :SCREEN :FFI :GETTEXT :UNICODE :BASE-CHAR=3DCHARACTER= :PC386 :UNIX) I cannot test it in 2.41 because it doesn't compile. --=20 __Pascal Bourguignon__ http://www.informatimago.com/ ATTENTION: Despite any other listing of product contents found herein, the consumer is advised that, in actuality, this product consists of 99.9999999999% empty space. |
From: Sam S. <sd...@gn...> - 2006-10-30 14:02:19
|
Pascal Bourguignon wrote: > P[98]> (block nil (maphash (lambda (k v) (print k) (return)) *source-file-db*)) > > #P"/a6/users/pjb/src/public/lisp/clisp/susv3-xsi.lisp" > NIL > P[99]> (gethash #P"/a6/users/pjb/src/public/lisp/clisp/susv3-xsi.lisp" *source-file-db*) > NIL ; > NIL pathnames are not printed readably. things like :version can be nil or newest without affecting the printed representation. the two identically printed pathnames above are probably different in that respect. > I cannot test it in 2.41 because it doesn't compile. did you file a bug report? does 2.40 compile? Sam. |
From: Pascal B. <pj...@in...> - 2006-10-30 15:24:29
|
Sam Steingold writes: > Pascal Bourguignon wrote: > > P[98]> (block nil (maphash (lambda (k v) (print k) (return)) *source-= file-db*)) > >=20 > > #P"/a6/users/pjb/src/public/lisp/clisp/susv3-xsi.lisp"=20 > > NIL > > P[99]> (gethash #P"/a6/users/pjb/src/public/lisp/clisp/susv3-xsi.lisp= " *source-file-db*) > > NIL ; > > NIL >=20 > pathnames are not printed readably. > things like :version can be nil or newest without affecting the printed= =20 > representation. > the two identically printed pathnames above are probably different in=20 > that respect. Ok. In the hashtable I had paths gone thru TRUENAME. [ And I misread EQUAL, thinking that (=3D=3D> (functionnaly-equivalent-pathname-p a b) (EQUAL a b)) when it's actually (=3D=3D> (EQUAL a b) (functionnaly-equivalent-pathname-p a b)) ] Well #P is specified to be #.(parse-namestring 'path) and parse-namestring is specified to use *default-pathname-defaults* and I have (pathname-version *default-pathname-defaults*) --> :NEWEST so I'd expect (pathname-verson #P"/tmp/a.c") to be :NEWEST, not NIL, even if we're really in the implementation-defined clause of parse-namest= ring. It would give more consistency, without losing anything. People who want a null version for #P"/tmp/a.c" could set it so in *default-pathname-defaults*. P[157]> (print-pathname *default-pathname-defaults*) Host : NIL Device : NIL Directory : (:ABSOLUTE "a6" "users" "pjb" "src" "public" "lisp" "common-l= isp") Name : NIL Type : NIL Version : :NEWEST #P"/a6/users/pjb/src/public/lisp/common-lisp/" P[158]> (print-pathname #P"/tmp/a.c") Host : NIL Device : NIL Directory : (:ABSOLUTE "tmp") Name : "a" Type : "c" Version : NIL #P"/tmp/a.c" P[159]> (print-pathname (truename #P"/tmp/a.c")) Host : NIL Device : NIL Directory : (:ABSOLUTE "tmp") Name : "a" Type : "c" Version : :NEWEST #P"/tmp/a.c" P[160]>=20 --=20 __Pascal Bourguignon__ http://www.informatimago.com/ Nobody can fix the economy. Nobody can be trusted with their finger on the button. Nobody's perfect. VOTE FOR NOBODY. |