Mercurial > hg > xemacs-beta
comparison src/bytecode.c @ 5370:4c4b96b13f70
Address the easy test failures in tests/automated.
src/ChangeLog addition:
2011-03-11 Aidan Kehoe <kehoea@parhasard.net>
* bytecode.c (optimize_byte_code):
Only transform assignments to keywords to Bdiscard if
NEED_TO_HANDLE_21_4_CODE is turned on. Cf. similar code in
reject_constant_symbols().
tests/ChangeLog addition:
2011-03-11 Aidan Kehoe <kehoea@parhasard.net>
* automated/byte-compiler-tests.el:
(defconst :foo 1) now gives a warning when byte-compiled, check
for that.
(setq :foo 1) now errors with interpreted code, but succeeds with
byte-compiled code; check for the former, wrap a
Known-Bug-Expect-Failure around a check for the error in the
latter case, we can't yet remove this behaviour while we're using
packages compiled by 21.4.
* automated/lisp-tests.el (wrong-type-argument):
Integer zero is a valid argument to #'substring-no-properties, use
Assert not Check-Error for it. Check some other aspects of the
functionality of #'substring-no-properties in passing.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Fri, 11 Mar 2011 20:40:01 +0000 |
parents | c096d8051f89 |
children | d967d96ca043 |
comparison
equal
deleted
inserted
replaced
5369:4141aeddc55b | 5370:4c4b96b13f70 |
---|---|
1959 val = XVECTOR_DATA (constants) [arg]; | 1959 val = XVECTOR_DATA (constants) [arg]; |
1960 if (!SYMBOLP (val)) | 1960 if (!SYMBOLP (val)) |
1961 wtaerror ("attempt to set non-symbol", val); | 1961 wtaerror ("attempt to set non-symbol", val); |
1962 if (EQ (val, Qnil) || EQ (val, Qt)) | 1962 if (EQ (val, Qnil) || EQ (val, Qt)) |
1963 signal_error (Qsetting_constant, 0, val); | 1963 signal_error (Qsetting_constant, 0, val); |
1964 #ifdef NEED_TO_HANDLE_21_4_CODE | |
1964 /* Ignore assignments to keywords by converting to Bdiscard. | 1965 /* Ignore assignments to keywords by converting to Bdiscard. |
1965 For backward compatibility only - we'd like to make this an error. */ | 1966 For backward compatibility only - we'd like to make this an |
1967 error. */ | |
1966 if (SYMBOL_IS_KEYWORD (val)) | 1968 if (SYMBOL_IS_KEYWORD (val)) |
1967 REWRITE_OPCODE (Bdiscard); | 1969 REWRITE_OPCODE (Bdiscard); |
1968 else | 1970 else |
1971 #endif | |
1969 WRITE_NARGS (Bvarset); | 1972 WRITE_NARGS (Bvarset); |
1970 break; | 1973 break; |
1971 | 1974 |
1972 case Bvarbind+7: READ_OPERAND_2; goto do_varbind; | 1975 case Bvarbind+7: READ_OPERAND_2; goto do_varbind; |
1973 case Bvarbind+6: READ_OPERAND_1; goto do_varbind; | 1976 case Bvarbind+6: READ_OPERAND_1; goto do_varbind; |