ecl/src/c
Kris Katterjohn 4e3283706f No longer allow PROGV to bind constants
PROGV was allowed to bind constants in the C-compiler and the bytecode
compiler and interpreter, but the behavior would differ between them:

> (defun foo ()
    (flet ((memq (item list) (member item list :test #'eq)))
      (progv (list :test) (list :test-not)
        (memq 'bar '(bar baz quux)))))
FOO

> (foo)
(BAZ QUUX)

> (compile 'foo)
FOO

> (foo)
(BAR BAZ QUUX)

CLHS says the behavior is undefined when attempting to bind or assign
constant variables (CLHS 3.1.2.1.1.3 and the entry for defconstant).

The C-compiler and bytecode compiler and interpreter give errors when
attempting to bind or assign constant variables in lambda expressions,
LET, SETQ and various other binding/assignment forms.  So the behavior
above in PROGV is inconsistent.

Now give an error when attempting to bind a constant variable in PROGV
in the C-compiler and the bytecode compiler and interpreter.
2017-06-27 18:46:55 -05:00
..
arch indent: indent files according to GNU standard 2016-05-05 13:40:27 +02:00
clos fix coverity issue Missing varargs init or cleanup 2017-05-17 23:20:10 +02:00
coverity The ECL code no longer uses tabulator characters, they were replaced 2015-09-03 07:35:47 -04:00
ffi Remove some unused variables 2017-03-14 15:51:13 -05:00
numbers Fix additional coverity warnings. 2017-06-06 23:43:02 +02:00
printer cleanup: move C/CXX part of CLOS to src/c/clos/ directory 2017-05-06 18:27:34 +02:00
reader ieee-floats: fix builds with --with-ieee-fp=no 2016-08-11 22:38:30 +02:00
threads ecl_thread_internal_error: add C api, protect get_env 2017-05-22 22:58:15 +02:00
unicode fix coverity issue 1434998 Out-of-bounds access 2017-05-16 18:15:44 +02:00
all_symbols.d indent: indent files according to GNU standard 2016-05-05 13:40:27 +02:00
alloc_2.d Wrap variable definitions in #ifdef's to avoid unused-variable warnings 2017-03-14 15:53:32 -05:00
apply.d indent: indent files according to GNU standard 2016-05-05 13:40:27 +02:00
array.d Fix additional coverity warnings. 2017-06-06 23:43:02 +02:00
assignment.d Fix some more error messages mentioning the wrong function names 2017-02-07 16:17:26 -06:00
backq.d indent: indent files according to GNU standard 2016-05-05 13:40:27 +02:00
big.d indent: indent files according to GNU standard 2016-05-05 13:40:27 +02:00
big_ll.d indent: indent files according to GNU standard 2016-05-05 13:40:27 +02:00
cfun.d Fix additional coverity warnings. 2017-06-06 23:43:02 +02:00
cfun_dispatch.d indent: indent files according to GNU standard 2016-05-05 13:40:27 +02:00
char_ctype.d indent: indent files according to GNU standard 2016-05-05 13:40:27 +02:00
character.d Fix additional coverity warnings. 2017-06-06 23:43:02 +02:00
cinit.d fix coverity issue Missing varargs init or cleanup 2017-05-17 23:20:10 +02:00
cmpaux.d indent: indent files according to GNU standard 2016-05-05 13:40:27 +02:00
compiler.d No longer allow M-V-B to bind constants in bytecode compiler/interpreter 2017-06-27 18:44:14 -05:00
cons.d indent: indent files according to GNU standard 2016-05-05 13:40:27 +02:00
disassembler.d indent: d-f 2016-05-05 15:24:58 +02:00
dpp.c Coverity fix issue 2017-06-03 11:57:01 +02:00
ecl_constants.h indent: d-f 2016-05-05 15:24:58 +02:00
ecl_features.h cleanup: remove hierarchical packages interface 2017-05-13 18:06:26 +02:00
error.d ecl_thread_internal_error: provide hint what may go wrong 2017-05-25 08:19:19 +02:00
eval.d Fix additional coverity warnings. 2017-06-06 23:43:02 +02:00
ffi.d indent: d-f 2016-05-05 15:24:58 +02:00
file.d patch for windows ReadConsole bug 2017-06-05 10:29:23 +08:00
format.d indent: d-f 2016-05-05 15:24:58 +02:00
hash.d hash-table: add synchronization implementation 2017-04-28 22:09:12 +02:00
interpreter.d c-indent: g-n 2016-05-05 16:28:32 +02:00
iso_latin_names.h c-indent: g-n 2016-05-05 16:28:32 +02:00
list.d c-indent: g-n 2016-05-05 16:28:32 +02:00
load.d Remove some unused variables 2017-03-14 15:51:13 -05:00
macros.d c-indent: g-n 2016-05-05 16:28:32 +02:00
main.d adjust memory allocation functions in windows API ecl_get_commandline_args. 2017-06-13 18:22:59 +08:00
Makefile.in cleanup: move C/CXX part of CLOS to src/c/clos/ directory 2017-05-06 18:27:34 +02:00
mapfun.d c-indent: g-n 2016-05-05 16:28:32 +02:00
multival.d c-indent: g-n 2016-05-05 16:28:32 +02:00
newhash.h c-indent: g-n 2016-05-05 16:28:32 +02:00
num_arith.d c-indent: g-n 2016-05-05 16:28:32 +02:00
num_co.d Improve some error messages for functions of exactly one variable 2017-02-07 16:19:17 -06:00
num_log.d c-indent: g-n 2016-05-05 16:28:32 +02:00
num_pred.d ieee-fp: remove si_infinity 2016-11-18 13:48:22 +01:00
num_rand.d num_rand: put declaration above assignment 2016-09-01 21:59:25 +02:00
number.d si_nan: return correct value (typo) 2016-11-18 14:58:15 +01:00
package.d fix coverity issue Missing varargs init or cleanup 2017-05-17 23:20:10 +02:00
pathname.d fix coverity issue 1434897 Uninitialized scalar variable 2017-05-16 18:31:55 +02:00
predicate.d cosmetic: fix indent (rest of C) 2016-05-06 08:41:52 +02:00
print.d cosmetic: fix indent (rest of C) 2016-05-06 08:41:52 +02:00
read.d Fix additional coverity warnings. 2017-06-06 23:43:02 +02:00
reference.d cosmetic: fix indent (rest of C) 2016-05-06 08:41:52 +02:00
sequence.d cosmetic: fix indent (rest of C) 2016-05-06 08:41:52 +02:00
serialize.d Remove some unused variables 2017-03-14 15:51:13 -05:00
sse2.d cosmetic: fix indent (rest of C) 2016-05-06 08:41:52 +02:00
stacks.d No longer allow PROGV to bind constants 2017-06-27 18:46:55 -05:00
string.d Fix additional coverity warnings. 2017-06-06 23:43:02 +02:00
structure.d cosmetic: fix indent (rest of C) 2016-05-06 08:41:52 +02:00
symbol.d Improve some error messages for functions of exactly one variable 2017-02-07 16:19:17 -06:00
symbols_list.h cleanup: remove hierarchical packages interface 2017-05-13 18:06:26 +02:00
symbols_list2.h cleanup: remove hierarchical packages interface 2017-05-13 18:06:26 +02:00
tcp.d Stop depending on uninitialized variables when setting TCP_NODELAY 2017-06-23 17:06:57 -05:00
time.d cosmetic: fix indent (rest of C) 2016-05-06 08:41:52 +02:00
typespec.d fix coverity 1434941 Missing return statement 2017-05-16 18:19:38 +02:00
unixfsys.d Wrap variable definitions in #ifdef's to avoid unused-variable warnings 2017-03-14 15:53:32 -05:00
unixint.d Merge branch 'refactor-run-program' into develop 2017-03-24 01:23:30 +01:00
unixsys.d Code review on merge request !65 2017-05-19 19:34:19 +02:00
vector_push.d cosmetic: vp 2016-05-06 08:43:40 +02:00