|
From: | Jari Aalto+mail.linux |
Subject: | 21.3 [FATAL CORE LISP BUG] dolist broken in subr.el |
Date: | Sat, 30 Aug 2003 13:45:08 +0300 |
User-agent: | Gnus/5.1003 (Gnus v5.10.3) Emacs/20.7 (windows-nt) (i386-*-nt5.0.2195) |
I just found out why all my lisp files were broken under 21.3. Why there are double definitions of cl*el function and macros in the subr.el is beyond my understanding. Whoever made the decision that the cl*el implementation must be "rewritten" or "doubled" in subr.el should be shot at dawn. Remove cl's subr.el rewrites and do it right: (t)Dump a Emacs whose core includes the whole of cl*el and deliver that version of Emacs in the future. In my opinion that is the only right path; same as what XEmacs team has taken. Try this in 21.3 with subr.el loaded and you know what I mean: (dolist (elt '(1)) (return)) Debugger entered--Lisp error: (no-catch --cl-block-nil-- nil) cl-block-throw(--cl-block-nil-- nil) (return-from nil nil) (return) (progn (return) (setq --dolist-temp-- (cdr --dolist-temp--))) (while --dolist-temp-- (setq elt (car --dolist-temp--)) (progn (return) (setq --dolist-temp-- ...))) (let ((--dolist-temp-- ...) elt) (while --dolist-temp-- (setq elt ...) (progn ... ...)) nil) (dolist (elt (quote ...)) (return)) eval((dolist (elt (quote ...)) (return))) eval-last-sexp-1(nil) ad-Orig-eval-last-sexp(nil) (setq ad-return-value (ad-Orig-eval-last-sexp eval-last-sexp-arg-internal)) (let (ad-return-value) (setq ad-return-value (ad-Orig-eval-last-sexp eval-last-sexp-arg-internal)) (save-excursion (ignore-errors ...) (let ... ...)) ad-return-value) eval-last-sexp(nil) * call-interactively(eval-last-sexp) -- http://tiny-tools.sourceforge.net/ Swatch @time http://www.mir.com.my/iTime/itime.htm http://www.ryanthiessen.com/swatch/resources.htm Use Licenses! http://www.linuxjournal.com/article.php?sid=6225 Which Licence? http://www.linuxjournal.com/article.php?sid=4825 OSI Licences http://www.opensource.org/licenses/
[Prev in Thread] | Current Thread | [Next in Thread] |