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;