SYMBOL-MACROLET behaves incorrectly in the presence of duplicate binding names
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Triaged
|
Low
|
Unassigned |
Bug Description
What I do:
(symbol-macrolet ((test 0)
(test 1))
test)
What happens:
SBCL signals "STYLE-WARNING: duplicate definitions in ((TEST 0) (TEST 1))"
and returns 0.
What I expected to happen:
We argued a bit on #lisp about possible/correct semantics for such a form. But it's clear that the current behavior is unacceptable because nobody would expect or rely on such behavior.
The conservative thing to do would simply be to signal an error.
SBCL version: 1.0.42
uname -a: Linux dynamorph 2.6.32-27-generic #49-Ubuntu SMP Wed Dec 1 23:52:12 UTC 2010 i686 GNU/Linux
*features*:
(:SWANK :QUICKLISP :SB-BSD-
:SBCL :SB-DOC :SB-TEST :SB-LDB :SB-PACKAGE-LOCKS :SB-UNICODE :SB-EVAL
:SB-SOURCE-
:LARGEFILE :GENCGC :STACK-
:COMPARE-
:STACK-
:STACK-
:CYCLE-COUNTER :INLINE-CONSTANTS :MEMORY-
:OS-PROVIDES-
Changed in sbcl: | |
importance: | Undecided → Low |
status: | New → Triaged |
tags: | added: easy |
The simple warning -> error replacement seems to work just fine.