Hi,
I'm using ASDF 1.86.1 on MS-Windows and Linux, running
the same version of CLISP (CLISP CVS Head as of
13.9.2004).
I obtain infinite loops trying to load various systems.
This appears to happen when I modify an .asd file after
it has been loaded.
[147]> (asdf::find-system"clsql-odbc")
;; Loading file S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd
...
;; Loading file
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd ...
;; Loading file
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd ...
;; Loading file
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd ...
;; Loading file
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd ...
;; Loading file
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd ...
[145]> (asdf:oos 'asdf:load-op "clsql-odbc")
; loading system definition from
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd into #<PACKAGE
ASDF15694>
;; Loading file S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd
...
; registering #<SYSTEM CLSQL-ODBC #x1A6E5AB9> as
CLSQL-ODBC
; loading system definition from
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd into #<PACKAGE
ASDF15699>
;; Loading file
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd ...
; loading system definition from
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd into #<PACKAGE
ASDF15700>
;; Loading file
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd ...
; loading system definition from
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd into #<PACKAGE
ASDF15701>
;; Loading file
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd ...
; loading system definition from
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd into #<PACKAGE
ASDF15702>
;; Loading file
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd ...
; loading system definition from
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd into #<PACKAGE
ASDF15703>
;; Loading file
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd ...
; loading system definition from
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd into #<PACKAGE
ASDF15704>
;; Loading file
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd ...
The potential for circularity seems inside
find-system
-> load
-> defsystem
-> parse-component-form nil
-> find-component nil
-> find-system
BTW, I believe the defsystem macro expansion should
only refer to *load-truename* if it's bound. Does the
doc state that defsytem must not be used at top-level?
That would be quite unusual for Lisp.
I got errors about truenames with NIL when trying to
provide a REPL defsystem definition.
Regards,
Jörg Höhle
Logged In: YES
user_id=377168
Well, I traced the problem down to a time shift between the
MS-Windows box running Lisp and the Linux samba server
providing the files that I also edited there.
Nevertheless, time shifts are common, bad time stamps can
happen and utilities such as ASDF (like make) should protect
themselves against endless loops, as they ought to protect
themselves against circular dependencies.
Therefore I'll leave this bugtrack item open.
Regards,
Jrg Hhle
Logged In: YES
user_id=24602
I have also encountered this bug, also in a case where there
is clock skew between file-write-date (based on an NFS
server's clock) and (get-universal-time) (based on the local
machine's clock). The file server was about 14 minutes ahead
of the local machine.