quicklisp-client
quicklisp-client copied to clipboard
Do not hide compilation output (progress and warnings) for local projects
Quicklisp hides compilation output of its provided libraries by design. The idea is that you are not hacking on them, you are just making use of them. (You can always get verbose output by using :verbose t anyway). But you are hacking on your own local projects. Quicklisp should show all output for those projects by default, including compilation progress, style-warnings, warnings, etc.
I deleted my comment because I thought I was wrong, but further research shows that I am not wrong. Either Quicklisp or ASDF captures certain warnings (but not all of them) and prevents them from being seen by handler-bind
. As a result, this produces no errors if the code being loaded produces STYLE-WARNING
s at compile time:
(defmacro warnings-to-errors (&body body)
`(handler-bind ((warning
(lambda (exn) (error exn))))
,@body))
(warnings-to-errors
(ql:quickload :my-system :verbose t))
I've resorted to writing a program that reads my .asd
file and loads the source files with load
so my project can have warnings turned into errors in CI.
@j3pic :verbose t
undoes everything Quicklisp does to muffle warnings. I'm not sure what ASDF does in addition.
I would like the following: a version of :verbose t that ONLY affects local projects.
Even better, could there could be a way to turn on verbosity for specific systems?
I want that too but don’t know how to achieve it.
On Aug 8, 2019, at 13:59, pfdietz [email protected] wrote:
I would like the following: a version of :verbose t that ONLY affects local projects.
The reason for this is that non-local projects often have annoying style warnings and notes that just get in the way of ensuring the build of local code is clean.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.
call-with-quiet-compilation would have to be pushed down, perhaps into apply-load-strategy, and applied on a case by case basis.
EDIT: that doesn't work. It would have to be pushed down into asdf. An around method?