[cmucl-imp] compile-file return values?
While check the ASDF 2 tests it appears that CMUCL may not be returning the expected value for the second return value of 'compile-file. The standard appears to state that the second value should be true if there are style-warnings, warnings, or errors. However CMUCL ignores style-warnings. This appears to be a regression, as it had been: (not (null error-severity)) Regards Douglas Crosher
"Douglas" == Douglas Crosher <dtc-cmucl@scieneer.com> writes:
Douglas> While check the ASDF 2 tests it appears that CMUCL may Douglas> not be returning the expected value for the second return Douglas> value of 'compile-file. The standard appears to state Douglas> that the second value should be true if there are Douglas> style-warnings, warnings, or errors. However CMUCL Douglas> ignores style-warnings. This appears to be a regression, Douglas> as it had been: (not (null error-severity)) Hi Douglas! Thanks for the note. Can you tell me which asdf2 test complains about this. A check of the commit logs doesn't provide any information about why this was changed. (It happened when adding support for package locks.) Ray
Hi Ray, The test file asdf/test/compile-asdf.lisp tries to catch compile errors and warnings including some style-warnings. I propose using the c::brevity extension to suppress the efficiency notes and then check the second value returned by compile-file. For example: (proclaim '(optimize (speed 2) (safety 3) #-allegro (debug 3) #+(or scl cmu) (c::brevity 2))) However this does not work on the current cmucl because the second value returned does not include style-warnings, so unused variable warnings etc are not caught in this test. The ANSI-CL standard suggests that the second return value should be true for style-warnings, as well as other warnings and errors, so the original cmucl code seems right to me. Perhaps there was some other issue here. Regards Douglas Crosher On 25/03/11 04:40, Raymond Toy wrote:
"Douglas" == Douglas Crosher<dtc-cmucl@scieneer.com> writes:
Douglas> While check the ASDF 2 tests it appears that CMUCL may Douglas> not be returning the expected value for the second return Douglas> value of 'compile-file. The standard appears to state Douglas> that the second value should be true if there are Douglas> style-warnings, warnings, or errors. However CMUCL Douglas> ignores style-warnings. This appears to be a regression, Douglas> as it had been: (not (null error-severity))
Hi Douglas!
Thanks for the note. Can you tell me which asdf2 test complains about this.
A check of the commit logs doesn't provide any information about why this was changed. (It happened when adding support for package locks.)
Ray
_______________________________________________ cmucl-imp mailing list cmucl-imp@cmucl.cons.org http://lists.zs64.net/mailman/listinfo/cmucl-imp
"Douglas" == Douglas Crosher <dtc-cmucl@scieneer.com> writes:
Douglas> I propose using the c::brevity extension to suppress the Douglas> efficiency notes and then check the second value returned Douglas> by compile-file. For example: Douglas> (proclaim '(optimize (speed 2) (safety 3) #-allegro Douglas> (debug 3) Douglas> #+(or scl cmu) (c::brevity 2))) This seems ok, but why these particular compiler settings used? These aren't the default for cmucl. Douglas> However this does not work on the current cmucl because Douglas> the second value returned does not include Douglas> style-warnings, so unused variable warnings etc are not Douglas> caught in this test. Douglas> The ANSI-CL standard suggests that the second return Douglas> value should be true for style-warnings, as well as other Douglas> warnings and errors, so the original cmucl code seems Douglas> right to me. Douglas> Perhaps there was some other issue here. I agree with your analysis; style warnings are counted as warnings. I'll make the suggested change soon. I vaguely remember some issues with this long ago, and I thought they show up in the ansi-tests, but I tested the snapshot version with a version with your suggested change and there's no difference. I don't know what the issue can be anymore. Ray
Hi Ray, Thank you for the change. When this is out I'll look at updating the ASDF test. On 27/03/11 08:21, Raymond Toy wrote:
"Douglas" == Douglas Crosher<dtc-cmucl@scieneer.com> writes:
Douglas> I propose using the c::brevity extension to suppress the Douglas> efficiency notes and then check the second value returned Douglas> by compile-file. For example:
Douglas> (proclaim '(optimize (speed 2) (safety 3) #-allegro Douglas> (debug 3) Douglas> #+(or scl cmu) (c::brevity 2)))
This seems ok, but why these particular compiler settings used? These aren't the default for cmucl.
These setting are from the ASDF test, with the c::brevity added to avoid compiler efficiency notes (which are style-warnings in CMUCL) from causing the test to fail. I understand the test would like to catch many style-warnings, such as unused variables, and that the test should fail if these are found.
Douglas> However this does not work on the current cmucl because Douglas> the second value returned does not include Douglas> style-warnings, so unused variable warnings etc are not Douglas> caught in this test.
Douglas> The ANSI-CL standard suggests that the second return Douglas> value should be true for style-warnings, as well as other Douglas> warnings and errors, so the original cmucl code seems Douglas> right to me.
Douglas> Perhaps there was some other issue here.
I agree with your analysis; style warnings are counted as warnings.
I'll make the suggested change soon. I vaguely remember some issues with this long ago, and I thought they show up in the ansi-tests, but I tested the snapshot version with a version with your suggested change and there's no difference. I don't know what the issue can be anymore.
Ray
_______________________________________________ cmucl-imp mailing list cmucl-imp@cmucl.cons.org http://lists.zs64.net/mailman/listinfo/cmucl-imp
"Douglas" == Douglas Crosher <dtc-cmucl@scieneer.com> writes:
Douglas> Hi Ray, Thank you for the change. When this is out I'll Douglas> look at updating the ASDF test. Done. It will be available in the next snapshot, due in a week or two. Thanks for the report and the fix, Ray
participants (2)
-
Douglas Crosher -
Raymond Toy