#669 compile_file claims compilation failed when it succeeded

closed
nobody
5
2010-09-12
2005-01-17
Robert Dodier
No

compile_file uses the tertiary return value of
COMPILE-FILE to tell whether the compilation succeeded.
At least one lisp (Clisp) returns a positive value if
there are warnings, so compile_file thinks the
compilation failed when actually there weren't errors.

A comment in the code (src/transs.lisp) says

;; If the compiler encountered errors, don't set
bin-file to
;; indicate that we found errors. Is this what we want?

I think the answer is "no".

Discussion

  • Logged In: YES
    user_id=283348

    The third return value of COMPILE-FILE indicates presence of errors or
    non-style-warning warnings; non-style-warning warnings are an indication of
    real problems and undefined behaviour, and should be treated as such: eg.
    SBCL emits full warnings for unbound variables and type-errors detected at
    compile-time.

    In other words, the current behaviour is IMO good and safe.

     
  • Robert Dodier
    Robert Dodier
    2006-04-10

    • labels: 460522 --> Lisp Core - Translator
     
  • Dieter Kaiser
    Dieter Kaiser
    2010-09-12

    • status: open --> pending
     
  • Dieter Kaiser
    Dieter Kaiser
    2010-09-12

    From the postings of this bug report, there seems to be no consent what should be the correct and save behavior of compile_file. Furthermore, we have no example which shows a problem with the current behavior of the function compile_file. Because, this is a very old bug report, there seems to be no really problems. I suggest to close this bug report as 'won't fix'.

    Setting the status to pending.
    Dieter Kaiser

     
  • Robert Dodier
    Robert Dodier
    2010-09-12

    • status: pending --> closed
     
  • Robert Dodier
    Robert Dodier
    2010-09-12

    The problem is not really in compile_file, but rather in the translator which generates code that causes warnings. I don't have any examples at hand, although trying to translate the test suite generates various errors and warnings. Separate bug reports should be opened for each example of erroneous or warnoneous (ha ha, I just made up that word!) generated code. Closing this report as "won't fix".