NOTE: This patch has been committed.
Ar an chéad lá de mí Deireadh Fómhair, scríobh Aidan Kehoe:
Despite that this optimisation can’t really be added to distinguish between
SXEmacs and XEmacs, I still think it’s worthwhile. Here is X for the top
fifteen most frequent calls to (featurep 'X) in the packages tree:
There are in total 860 such calls (that is, simple (featreup 'X) calls), so
eliminating (featurep 'xemacs) is disproportionately helpful. The other
features in my patch, not so much, but they do provide a framework should we
ever take the time to work out which features have always been available
ever since the last time our bytecode became incompatible.
2007-10-01 Aidan Kehoe <kehoea(a)parhasard.net>
* byte-optimize.el (byte-optimize-ever-present-features): New.
* byte-optimize.el (byte-optimize-featurep): New.
Optimise calls to (featurep 'xemacs) to t, since our byte code
refuses to run on GNU Emacs. Also optimises away checks for cl,
cl-extra, cl-19 and backquote, a conservative list of those
features that have been available in every XEmacs build since the
last time our opcodes changed.
XEmacs Trunk source patch:
Diff command: cvs -q diff -u
Files affected: lisp/byte-optimize.el
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/byte-optimize.el,v
retrieving revision 1.12
diff -u -r1.12 byte-optimize.el
--- lisp/byte-optimize.el 2007/09/15 19:11:55 1.12
+++ lisp/byte-optimize.el 2007/10/01 15:21:25
＠＠ -1169,6 +1169,21 ＠＠
+ '(xemacs cl cl-extra cl-19 backquote))
+(put 'featurep 'byte-optimizer 'byte-optimize-featurep)
+(defun byte-optimize-featurep (form)
+ (let ((to-check (cdr-safe form)))
+ (if (memq (car-safe
;;; enumerating those functions which need not be called if the returned
;;; value is not used. That is, something like
On the quay of the little Black Sea port, where the rescued pair came once
more into contact with civilization, Dobrinton was bitten by a dog which was
assumed to be mad, though it may only have been indiscriminating. (Saki)
XEmacs-Patches mailing list