From: Sam S. <sd...@gn...> - 2004-09-13 18:36:14
|
> * Hoehle, Joerg-Cyril <Wbret-Plevy.Ubruyr@g-flfgrzf.pbz> [2004-09-13 19:09:53 +0200]: > > Error messages are not as informative as should be when using > ASDF-1.86.1 which defines its own conditions: > > (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. this is the standard way to print a condition without a :REPORT option. see src/condition.lisp:print-condition > The error message can be made visible using: > (ignore-errors (asdf:oos 'asdf:load-op "clsql-odbc")) > ; loading system definition from S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd into #<PACKAGE > ; ASDF14738> > ;; Loading file S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd ... > ;; Loaded file S:\Code\Lisp\clsql-3.0.3\clsql-odbc.asd > NIL ; > component "clsql-odbc" not found > > Actually, it seems weird that IGNORE-ERRORS yields a pretty message as > second return value! it yields a condition object which is printed by the REPL as specified below: > ASDF seems to correctly define the printing method: > (defmethod print-object ((c missing-component) s) > (format s "~@<component ~S not found~ > ~@[ or does not match version ~A~]~ > ~@[ in ~A~]~@:>" > (missing-requires c) > (missing-version c) > (when (missing-parent c) > (component-name (missing-parent c))))) > Maybe it should test *print-escape*?!? yes. the above code is wrong. It should define a method for PRINT-CONDITION (with the same body) or do something like (defmethod print-object ((c missing-component) stream) (if (or *print-escape* *print-readably*) (call-next-method) (format s ...))) see src/condition.lisp:print-object@condition -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.honestreporting.com> Profanity is the one language all programmers know best. |