On Mon, Nov 3, 2014 at 11:31 PM, Robert P. Goldman rpgoldman@sift.info wrote:
What happens here is that there is a function with undeclared local variables, but ASDF is not getting a warning from COMPILE-FILE, so it mistakenly believes the build is successful.
I don't think I wrote this test properly, though. In a message crossing with this one, Faré has limited its applicability, but I'm not sure I understand the change. Surely that system should not build successfully?
At least GCL doesn't issue a proper warning in case of undeclared free variable. SBCL, CMUCL and presumably SCL (I believe erroneously) defer such warning until the end of the compilation unit, which when you don't use ASDF's deferred-warnings mechanism, gets caught by the (IMHO bogus) with-compilation-unit (now in a perform-plan method, previously in operate), and thus issue a full warning that isn't checked, and the system thus builds "successfully". I wanted to get rid of that W-C-U, but that broke many systems in Quicklisp that had such bugs.
I updated the test (with untested expectations for XCL and SCL, that I can't test anymore).
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org He who says he will die for a cause will probably lie for it and may kill for it. — John McCarthy