Unhandled errors in compilation of syntactically defective forms
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Triaged
|
Low
|
Unassigned |
Bug Description
Stas Boukarev told me on #sbcl that compiling lisp code should never produce unhandled errors. The mutation tester I had been running had been trapping and ignoring general errors, but after that comment I've modified it to report those as well. There are lots of failures. Here are a few
(compile nil '(lambda () . 1)) ==> type error
(compile nil '(lambda () (count 0 '(1 . 2) :test 'eql))) ==> type error
(compile nil '(lambda () (let ((v1 1) . v2) v1))) ==> type-error
Basically, any place in the compiler where a form is being handled by ordinary lisp functions, the case of the list not being a proper list could cause an error to be signaled. In the COUNT example there a list argument to COUNT is malformed, not a lisp form itself.
I can generate an almost unlimited number of tickets for this, but I've given three examples to get it started.
Changed in sbcl: | |
status: | New → Triaged |
importance: | Undecided → Low |
tags: | added: malformed-source |