defconstant does not check for invalid redefinitions
[this is not a regression, same behavior is present in 16.1.3]
(defconstant +foo+ 42)
(defconstant +foo+ 13)
This should signal an error, that +foo+ is being redefined from 42 to 13. In both bytecmp and ccmp redefinition succeeds (same happens when we compile-file files with such redefinitions).
Also note, that assigning a constant leads to an error (correct behavior):
In form
(SETF +FOO+ 42)
SETQ: Tried to assign a value to the constant +FOO+.
[Condition of type SI:SIMPLE-PROGRAM-ERROR]
Edited by Daniel Kochmański