Raymond Toy writes:
> >>>>> "Pascal" == Pascal Bourguignon <[EMAIL PROTECTED]> writes:
> 
>     Pascal> * (setf path-ext (MAKE-PATHNAME :TYPE EXT :defaults path))
>     Pascal> Warning:  Declaring PATH-EXT special.
> 
>     Pascal> #.(logical-pathname 
> "PACKAGES:COM;INFORMATIMAGO;COMMON-LISP;UTILITY.lisp")
>     Pascal> * (probe-file *)
> 
>     Pascal> NIL
>     Pascal> * (probe-file path-ext)
> 
> [snip]
> 
> Does this also happen in 19a or a recent snapshot?  You didn't provide
> quite enough information above (what is path?  What is EXT?) for me to
> reproduce anything, but a very simple test shows that path-ext is
> #P"PACKAGES:COM;INFORMATIMAGO;COMMON-LISP;UTILITY.LISP"

Ok, I'm trying to make it a small test case, and I find another bug.
The old bug doesn't occur in cmucl-19b, but the new bug does in both
19b and 18e.

              bug-1     bug-2
cmucl-18e:      X         X
cmucl-19b:    corrected   X


$ cmucl-pathnames-bug.lisp
;;----------------------------------------------------------------------
(ensure-directories-exist #P"/tmp/pack/")

(close (open  #P"/tmp/pack/utility.lisp"
              :direction :output :if-exists :append :if-does-not-exist :create))

(defmacro trint (obj &optional (stream *standard-output*))
  (let ((vobj (gensym)) (vstream (gensym)))
    `(let ((,vobj ,obj) (,vstream ,stream))
       (print ',vobj ,vstream)
       (finish-output ,vstream)
       (print ,vobj ,vstream)
       (terpri)
       (finish-output ,vstream))))

(setf (logical-pathname-translations  "PACKAGES")
        (list (list "PACKAGES:**;*.*.*" #P"/tmp/pack/**/*.*.*")
              (list "PACKAGES:**;*.*"   #P"/tmp/pack/**/*.*")
              (list "PACKAGES:**;*"     #P"/tmp/pack/**/*")))

(defparameter path "PACKAGES:UTILITY.x86f")
(defparameter ext "lisp")
(defparameter path-ext nil)
;;MARK
(setf path-ext (MAKE-PATHNAME :TYPE EXT :defaults path))
(trint (probe-file *))
(trint (probe-file path-ext))
(trint (probe-file (logical-pathname "PACKAGES:UTILITY.lisp")))
(trint (probe-file (logical-pathname "PACKAGES:UTILITY.LISP")))
;;----------------------------------------------------------------------


$ /usr/local/bin/cmucl -noinit -nositeinit
CMU Common Lisp 18e-pre2 2003-03-25-003, running on thalassa
With core: /local/languages/cmucl-18e/lib/cmucl/lib/lisp.core
Dumped on: Wed, 2003-03-26 00:53:00+01:00 on orion
See <http://www.cons.org/cmucl/> for support information.
Loaded subsystems:
    Python 1.1, target Intel x86
    CLOS 18e (based on PCL September 16 92 PCL (f))
* (load"/home/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp")

; Loading #p"/local/users/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp".

Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER:
   NIL is not of type (OR PATHNAME STREAM BASE-STRING)

Restarts:
  0: [CONTINUE] Return NIL from load of 
"/home/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp".
  1: [ABORT   ] Return to Top-Level.

Debug  (type H for help)

(PROBE-FILE 1 NIL)[:EXTERNAL]
Source: Error finding source: 
Error in function DEBUG::GET-FILE-TOP-LEVEL-FORM:  Source file no longer exists:
  target:code/filesys.lisp.
0] backtrace

0: (PROBE-FILE 1 NIL)[:EXTERNAL]
1: ("Top-Level Form")[:TOP-LEVEL]
2: (COMMON-LISP::SLOLOAD
    #<Stream for file 
"/local/users/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp">)
3: (COMMON-LISP::INTERNAL-LOAD
    #p"/home/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp"
    #p"/local/users/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp"
    :ERROR
    :SOURCE)
4: (COMMON-LISP::INTERNAL-LOAD
    #p"/home/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp"
    #p"/local/users/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp"
    :ERROR
    NIL)
5: (LOAD "/home/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp"
         :VERBOSE
         NIL
         :PRINT
         ...)
6: (INTERACTIVE-EVAL
    (LOAD "/home/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp"))
7: (COMMON-LISP::%TOP-LEVEL)
8: (COMMON-LISP::RESTART-LISP)

0] path-ext

#.(logical-pathname "PACKAGES:UTILITY.lisp")
0] (type-of path-ext)

LOGICAL-PATHNAME
0] :q

;; this was the stranger part: logical-pathnames are not accepted by probe-file
;; Now, I comment out from MARK to the end of the file and reload;

* (load"/home/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp")

; Loading #p"/local/users/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp".
T
* (setf path-ext (MAKE-PATHNAME :TYPE EXT :defaults path))

#.(logical-pathname "PACKAGES:UTILITY.lisp")
*  (probe-file *)

NIL
*  (probe-file path-ext)

NIL
* path-ext

#.(logical-pathname "PACKAGES:UTILITY.lisp")
*  (probe-file (logical-pathname "PACKAGES:UTILITY.lisp"))

#p"/tmp/pack/utility.lisp"
*  (probe-file (logical-pathname "PACKAGES:UTILITY.LISP"))

#p"/tmp/pack/utility.lisp"
* 

;; and here we have the bug I noticed in August.




;; In cmucl-19b, the bug I noticied in August in cmucl-18e doesn't
;; occur, but the new bug I found now does:


bin/cmucl  -noinit -nositeinit
CMU Common Lisp 19b (19B), running on thalassa
With core: /local/languages/cmucl-19b-install/lib/cmucl/lib/lisp.core
Dumped on: Tue, 2005-06-28 02:09:58+02:00 on lorien
See <http://www.cons.org/cmucl/> for support information.
Loaded subsystems:
    Python 1.1, target Intel x86
    CLOS based on Gerd's PCL 2004/04/14 03:32:47
*  (load"/home/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp")


; Loading #P"/local/users/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp".

Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER:
   NIL is not of type (OR BASE-STRING PATHNAME STREAM)
   [Condition of type TYPE-ERROR]

Restarts:
  0: [CONTINUE] Return NIL from load of 
"/home/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp".
  1: [ABORT   ] Return to Top-Level.

Debug  (type H for help)

(PROBE-FILE 1 NIL)[:EXTERNAL]
Source: Error finding source: 
Error in function DEBUG::GET-FILE-TOP-LEVEL-FORM:  Source file no longer exists:
  target:code/filesys.lisp.
0] backtrace

0: (PROBE-FILE 1 NIL)[:EXTERNAL]
1: ("Top-Level Form")[:TOP-LEVEL]
2: (LISP::SLOLOAD
    #<Stream for file 
"/local/users/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp">)
3: (LISP::INTERNAL-LOAD #P"/home/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp"
                        
#P"/local/users/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp"
                        :ERROR :SOURCE)
4: (LISP::INTERNAL-LOAD #P"/home/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp"
                        
#P"/local/users/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp"
                        :ERROR NIL)
5: (LOAD "/home/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp"
         :VERBOSE NIL
         :PRINT ...)
6: (INTERACTIVE-EVAL
    (LOAD "/home/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp"))
7: (LISP::%TOP-LEVEL)
8: ((LABELS LISP::RESTART-LISP
      SAVE-LISP))

0] path-ext

#P"PACKAGES:UTILITY.LISP"
0] :q
*  (load"/home/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp")


; Loading #P"/local/users/pjb/src/lisp/encours/cmucl-pathnames-bug.lisp".
T
* (setf path-ext (MAKE-PATHNAME :TYPE EXT :defaults path))

#P"PACKAGES:UTILITY.LISP"
*  (probe-file *)

#P"/tmp/pack/utility.lisp"
*  (probe-file path-ext)

#P"/tmp/pack/utility.lisp"
*  (probe-file (logical-pathname "PACKAGES:UTILITY.lisp"))

#P"/tmp/pack/utility.lisp"
*  (probe-file (logical-pathname "PACKAGES:UTILITY.LISP"))

#P"/tmp/pack/utility.lisp"
* 

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
I need a new toy.
Tail of black dog keeps good time.
Pounce! Good dog! Good dog!


Reply via email to