#37 ASDF should use define-condition :report

closed-invalid
Daniel Barlow
asdf (12)
5
2004-09-14
2004-09-14
Jörg Höhle
No

Hi,

I wondered why ASDF-1.86.1 badly reports errors in
CLISP:

"(asdf:oos "asdf:load-op "clsql-odbc")
; loading system definition from
S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd into #<PACKAGE
ASDF14729>
;; Loading file S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd
...
;; Loaded file S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd
*** - Condition of type ASDF:MISSING-COMPONENT.
The following restarts are available: [...]"

The specific error message "missing component foo" does
not appear in the debugger.

Bruno Haible replied in clisp-devel:
http://sourceforge.net/mailarchive/forum.php?thread_id=
5563867&forum_id=6768
>The problem is precisely that ASDF uses a PRINT-OBJECT
method. From
>ANSI CL you can see that PRINT-OBJECT is made for
STANDARD-OBJECT and
>STRUCTURE-OBJECT instances, however the class
CONDITION is _not_
>mandated to be a subclass of one of them. Therefore
according to ANSI
>CL, a PRINT-OBJECT method for a condition class needs
not have an
>effect at all. And that"s why they define a different
means for
>customizing the printing of conditions: The :REPORT
option of
>DEFINE-CONDITION.

>Summary: ASDF needs to use the :REPORT option of
DEFINE-CONDITION,
>not a PRINT-OBJECT method.

Regards,
Jörg Höhle.

Discussion

  • Bruno Haible
    Bruno Haible
    2004-09-14

    Logged In: YES
    user_id=5923

    Bruno Haible has now been convinced that ANSI CL contains
    sufficient wording to mandate that printing of condition objects
    must go through PRINT-OBJECT. As a consequence, GNU
    CLISP has been changed to take PRINT-OBJECT methods on
    condition classes into accound. I no longer claim that it's a bug
    in ASDF.

     
    • status: open --> closed-invalid