[armedbear-ticket] [armedbear] #282: Spurious macros redefinition warnings
armedbear
armedbear-devel at common-lisp.net
Thu Dec 20 16:28:09 UTC 2012
#282: Spurious macros redefinition warnings
-----------------------+----------------------------------------------------
Reporter: sboukarev | Owner: ehuelsmann
Type: defect | Status: new
Priority: minor | Milestone:
Component: compiler | Version:
Keywords: |
-----------------------+----------------------------------------------------
Compiling and loading a file with
{{{
(defmacro foo ())
}}}
{{{
CL-USER(1): (compile-file "foo")
#P"/tmp/foo.abcl"
NIL
NIL
CL-USER(2): (load *)
STYLE-WARNING: redefining COMMON-LISP-USER::FOO in #P"/tmp/foo.lisp"
(previously defined in #P"/tmp/foo.lisp")
T
}}}
But it's the same file, turns out, the old source is different because it
has :host :unspecific.
The place where it does comparison
http://trac.common-
lisp.net/armedbear/browser/trunk/abcl/src/org/armedbear/lisp/fdefinition.lisp#L40
And where it sets *source*
http://trac.common-
lisp.net/armedbear/browser/trunk/abcl/src/org/armedbear/lisp/compile-
file.lisp#L723
So, it does TRUENAME. truename sets :unspecific on non-windows platforms
for pathname-host.
http://trac.common-
lisp.net/armedbear/browser/trunk/abcl/src/org/armedbear/lisp/Pathname.java#L2185
And the compiler saves the source patname as just
(setq *source* #"path"), so :unspecific is lost when read:
http://trac.common-
lisp.net/armedbear/browser/trunk/abcl/src/org/armedbear/lisp/compile-
file.lisp#L685
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/282>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
More information about the armedbear-ticket
mailing list