asdf going into infinite loop loading system definitions w/ CLISP

"Hoehle, Joerg-Cyril" <[email protected]>
Newsgroups gmane.lisp.cclan.general
Message-ID <5F9130612D07074EB0A0CE7E69FD7A03017185D2@S4DE8PSAAGS.blf.telekom.de>
Hi,

I'm using ASDF 1.86.1 well on Linux, but with trouble on MS-Windows, running the same CLISP each time (CLISP CVS Head as of 13.9.2004).

I obtain infinite loops trying to load various systems:

[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 ...
; loading system definition from S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd into #<PACKAGE ASDF15705>
;;        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

Observations:
o hundreds of #<package ASDF1234> get created. This is a bug. IMHO, there should be some unwind-protect to delete such temp package. Or delete it only when there was an error.
I find it hard to clean up after such a thing arises.
o (remhash "clsql-odbc" asdf::*defined-systems*) also did not help.

The same version of asdf seems to work on Linux, but maybe there's something different (e.g. the default asdf:*central-registry* also seems to lead to different behaviour, in that on Linux I get the current directory, whereas on MS-Windows I obtain
[168]> *default-pathname-defaults*
#P"S:"
which I don't know if it's the current directory.

o Also, 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 NIL when trying to provide a REPL defsystem definition.

Thanks for your help,
	Jörg Höhle.


-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM.
Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.