From: SourceForge.net <no...@so...> - 2011-09-11 21:23:14
|
Bugs item #3405120, was opened at 2011-09-06 11:12 Message generated for change (Comment added) made by gabalz You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101355&aid=3405120&group_id=1355 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: clisp Group: lisp error Status: Open Resolution: None Priority: 5 Private: No Submitted By: Gabor Balazs (gabalz) Assigned to: Bruno Haible (haible) Summary: probe-pathname set :newest version Initial Comment: $ clisp --version GNU CLISP 2.49 (2010-07-07) (built 3519331083) (memory 3519302729) Software: GNU C 4.4.5 gcc -O2 -march=core2 -fomit-frame-pointer -pipe -Wa,--noexecstack -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wmissing-declarations -Wno-sign-compare -Wno-format-nonliteral -O -falign-functions=4 -DENABLE_UNICODE -DDYNAMIC_FFI -I. -Wl,-O1 -Wl,--as-needed /usr/lib64/libreadline.so -lncurses -ldl /usr/lib64/libavcall.a /usr/lib64/libcallback.a -L/usr/lib64 -lsigsegv -L/usr/lib64 -lc libgnu_cl.a SAFETY=0 TYPECODES WIDE_HARD GENERATIONAL_GC SPVW_BLOCKS SPVW_MIXED TRIVIALMAP_MEMORY libsigsegv 2.8 libreadline 6.1 Features: (READLINE REGEXP SYSCALLS I18N LOOP COMPILER CLOS MOP CLISP ANSI-CL COMMON-LISP LISP=CL INTERPRETER SOCKETS GENERIC-STREAMS LOGICAL-PATHNAMES SCREEN FFI GETTEXT UNICODE BASE-CHAR=CHARACTER WORD-SIZE=64 PC386 UNIX) C Modules: (clisp i18n syscalls regexp readline) Installation directory: /usr/lib64/clisp-2.49/ User language: ENGLISH Machine: X86_64 (X86_64) localhost [127.0.0.1] The problem: probe-pathname sets the version field to :NEWEST, and so this pathname is never EQUAL to another one returned by PATHNAME. (pathname-version (probe-pathname "/tmp/")) :NEWEST ; this should be NIL (equal (probe-pathname "/tmp/") (pathname "/tmp/")) NIL Furthermore, MAKE-PATHNAME does not initializes the VERSION slot in the following case: (defparameter *path* (probe-pathname "/tmp/")) *PATH* (pathname-version (make-pathname :version NIL :defaults *path*)) :NEWEST ; this should be NIL This workaround can be done, but this is ugly: (pathname-version (make-pathname :version NIL :name (pathname-name *path*) :defaults *path*)) NIL ---------------------------------------------------------------------- >Comment By: Gabor Balazs (gabalz) Date: 2011-09-11 15:23 Message: Furthermore, (pathname-version (pathname "/tmp/")) NIL ; ok (pathname-version (pathname "dir/")) NIL ; ok (pathname-version (pathname "file")) NIL ; ok (pathname-version (merge-pathnames "dir/" "/tmp/")) :NEWEST ; should be NIL! (pathname-version (merge-pathnames "file" "/tmp/")) :NEWEST ; should be NIL! ---------------------------------------------------------------------- Comment By: Gabor Balazs (gabalz) Date: 2011-09-11 14:31 Message: Unfortunately, there is even more related bugs like this. (length (directory "/tmp/*/")) 13 (length (directory "/tmp/*")) 7 So my /tmp directory has files and directories too, then: (pathname-version (car (directory "/tmp/*/"))) NIL ; correct (pathname-version (car (directory "/tmp/*"))) :NEWEST ; should be NIL! But the file pathname creation seems to be good (pathname-version (pathname "does-not-exist.dne")) NIL ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101355&aid=3405120&group_id=1355 |