[ cclan-Bugs-1027814 ] ASDF enters endless loop loading .asd

"SourceForge.net" <[email protected]> Mon, 09 Jan 2006 11:08:27 -0800
Newsgroups gmane.lisp.cclan.bugs
Message-ID <[email protected]>
Bugs item #1027814, was opened at 2004-09-14 06:20
Message generated for change (Comment added) made by jaoswald
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=393636&aid=1027814&group_id=28536

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: asdf
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Jörg Höhle (hoehle)
Assigned to: Daniel Barlow (dan_b)
Summary: ASDF enters endless loop loading .asd

Initial Comment:
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

----------------------------------------------------------------------

Comment By: Joseph A. Oswald, III (jaoswald)
Date: 2006-01-09 14:08

Message:
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.

----------------------------------------------------------------------

Comment By: Jörg Höhle (hoehle)
Date: 2004-09-15 07:45

Message:
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,
 Jörg Höhle

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=393636&aid=1027814&group_id=28536


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click