changeset: 5429:4c4b96b13f70
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Fri Mar 11 20:40:01 2011 +0000
files: src/ChangeLog src/bytecode.c tests/ChangeLog
tests/automated/byte-compiler-tests.el tests/automated/lisp-tests.el
description:
Address the easy test failures in tests/automated.
src/ChangeLog addition:
2011-03-11 Aidan Kehoe <kehoea(a)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(a)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.
diff -r 4141aeddc55b -r 4c4b96b13f70 src/ChangeLog
--- a/src/ChangeLog Thu Mar 10 19:14:25 2011 +0000
+++ b/src/ChangeLog Fri Mar 11 20:40:01 2011 +0000
@@ -1,3 +1,10 @@
+2011-03-11 Aidan Kehoe <kehoea(a)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().
+
2011-02-24 Aidan Kehoe <kehoea(a)parhasard.net>
* fns.c (Fsubstring_no_properties):
diff -r 4141aeddc55b -r 4c4b96b13f70 src/bytecode.c
--- a/src/bytecode.c Thu Mar 10 19:14:25 2011 +0000
+++ b/src/bytecode.c Fri Mar 11 20:40:01 2011 +0000
@@ -1961,11 +1961,14 @@
wtaerror ("attempt to set non-symbol", val);
if (EQ (val, Qnil) || EQ (val, Qt))
signal_error (Qsetting_constant, 0, val);
+#ifdef NEED_TO_HANDLE_21_4_CODE
/* Ignore assignments to keywords by converting to Bdiscard.
- For backward compatibility only - we'd like to make this an error. */
+ For backward compatibility only - we'd like to make this an
+ error. */
if (SYMBOL_IS_KEYWORD (val))
REWRITE_OPCODE (Bdiscard);
else
+#endif
WRITE_NARGS (Bvarset);
break;
diff -r 4141aeddc55b -r 4c4b96b13f70 tests/ChangeLog
--- a/tests/ChangeLog Thu Mar 10 19:14:25 2011 +0000
+++ b/tests/ChangeLog Fri Mar 11 20:40:01 2011 +0000
@@ -1,3 +1,18 @@
+2011-03-11 Aidan Kehoe <kehoea(a)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.
+
2011-02-24 Aidan Kehoe <kehoea(a)parhasard.net>
* automated/lisp-tests.el (substring-no-properties):
diff -r 4141aeddc55b -r 4c4b96b13f70 tests/automated/byte-compiler-tests.el
--- a/tests/automated/byte-compiler-tests.el Thu Mar 10 19:14:25 2011 +0000
+++ b/tests/automated/byte-compiler-tests.el Fri Mar 11 20:40:01 2011 +0000
@@ -45,7 +45,7 @@
(check-byte-compiler-message "Attempt to set non-symbol" (setq 1 1))
(check-byte-compiler-message "Attempt to set constant symbol" (setq t 1))
(check-byte-compiler-message "Attempt to set constant symbol" (setq nil 1))
-(check-byte-compiler-message "^$" (defconst :foo 1))
+(check-byte-compiler-message "Attempt to set constant symbol" (defconst :foo
1))
(check-byte-compiler-message "Attempt to let-bind non-symbol" (let ((1 'x))
1))
(check-byte-compiler-message "Attempt to let-bind constant symbol" (let ((t
'x)) (foo)))
@@ -60,12 +60,16 @@
(check-byte-compiler-message "reference to free variable" (car free-variable))
(check-byte-compiler-message "called with 2 args, but requires 1" (car 'x
'y))
-(check-byte-compiler-message "^$" (setq :foo 1))
(let ((fun '(lambda () (setq :foo 1))))
(fset 'test-byte-compiler-fun fun))
(Check-Error setting-constant (test-byte-compiler-fun))
-(byte-compile 'test-byte-compiler-fun)
-(Check-Error setting-constant (test-byte-compiler-fun))
+(Check-Message "Attempt to set constant symbol"
+ (byte-compile 'test-byte-compiler-fun))
+
+;; Once NEED_TO_HANDLE_21_4_CODE is no longer defined in C, this will error
+;; correctly. It's disabled because the packages are compiled by 21.4.
+(Known-Bug-Expect-Failure
+ (Check-Error setting-constant (test-byte-compiler-fun)))
(eval-when-compile (defvar setq-test-foo nil) (defvar setq-test-bar nil))
(progn
diff -r 4141aeddc55b -r 4c4b96b13f70 tests/automated/lisp-tests.el
--- a/tests/automated/lisp-tests.el Thu Mar 10 19:14:25 2011 +0000
+++ b/tests/automated/lisp-tests.el Fri Mar 11 20:40:01 2011 +0000
@@ -1339,9 +1339,17 @@
(Check-Error args-out-of-range (subseq [1 2 3] -42))
(Check-Error args-out-of-range (subseq [1 2 3] 0 42))
-(Check-Error wrong-type-argument (substring-no-properties nil 4))
-(Check-Error wrong-type-argument (substring-no-properties "hi there" pi))
-(Check-Error wrong-type-argument (substring-no-properties "hi there" 0))
+(let ((string "hi there"))
+ (Assert (equal (substring-no-properties "123" 0) "123"))
+ (Assert (equal (substring-no-properties "1234" -3 -1) "23"))
+ (Assert (equal (substring-no-properties "hi there" 0) "hi there"))
+ (put-text-property 0 (length string) 'foo 'bar string)
+ (Assert (eq 'bar (get-text-property 0 'foo string)))
+ (Assert (not
+ (get-text-property 0 'foo (substring-no-properties "hi there"
0))))
+ (Check-Error wrong-type-argument (substring-no-properties nil 4))
+ (Check-Error wrong-type-argument (substring-no-properties "hi there" pi))
+ (Check-Error wrong-type-argument (substring-no-properties "hi there" 0.0)))
;;-----------------------------------------------------
;; Time-related tests
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches