;; Namestring of the source file that the definition was compiled from.
;; This is null if the definition was not compiled from a file.
(namestring
- (when (and (boundp '*source-info*)
- *source-info*)
- (make-file-info-namestring *compile-file-pathname*
- (sb!c:get-toplevelish-file-info *source-info*)))
+ (or *source-namestring*
+ (when (and (boundp '*source-info*)
+ *source-info*)
+ (make-file-info-namestring *compile-file-pathname*
+ (sb!c:get-toplevelish-file-info *source-info*))))
:type (or string null))
;; Toplevel form index
(toplevel-form-number
#+sb-xc-host
(let ((src (position "src" dir :test #'string=
:from-end t)))
- (if src
- (format nil "SYS:~{~:@(~A~);~}~:@(~A~).LISP"
- (subseq dir src) (pathname-name untruename))
- ;; FIXME: just output/stuff-groveled-from-headers.lisp
- (namestring untruename)))
+ (cond
+ ((and src (not (string= (car (last dir)) "output")))
+ (format nil "SYS:~{~:@(~A~);~}~:@(~A~).LISP"
+ (subseq dir src) (pathname-name untruename)))
+ (t (aver (string-equal (car (last dir)) "output"))
+ (aver (string-equal (pathname-name untruename) "stuff-groveled-from-headers"))
+ (aver (string-equal (pathname-type untruename) "lisp"))
+ "SYS:OUTPUT;STUFF-GROVELED-FROM-HEADERS.LISP")))
#-sb-xc-host
(if (and dir (eq (first dir) :absolute))
(namestring untruename)