I have applied this to the 21.1 branch for XEmacs.
It will appear in 21.1.11 Real Soon Now.
- vin
>>>> On Tue, 27 Jun 2000, Charles G Waldman
<cgw(a)fnal.gov> said:
Charles> Reccommended for 21.1
Charles> Thanks to Stephen Turnbull for pointing this out.
Charles> cl-macs.el contains this horrible kludge:
Charles> ;;; This kludge allows macros which use cl-transform-function-property
Charles> ;;; to be called at compile-time.
Charles> (require
Charles> (progn
Charles> (or (fboundp 'defalias) (fset 'defalias 'fset))
Charles> (or (fboundp 'cl-transform-function-property)
Charles> (defalias 'cl-transform-function-property
Charles> (function (lambda (n p f)
Charles> (list 'put (list 'quote n) (list 'quote p)
Charles> (list 'function (cons 'lambda f)))))))
Charles> (car (or features (setq features (list 'cl-kludge))))))
Charles> The intent of the (require (car features)) is, as near as I can tell,
Charles> to require something that's already loaded - just to sneak those
Charles> fset's and defaliases's into the require. However, as has been
Charles> recently noted, this wreaks havoc when binary packages are built on a
Charles> Mule-enabled XEmacs which just happens to have (car features) equal to
Charles> 'mule. Then packages (such as pcl-cvs) which require 'cl wind up
Charles> dragging an unwanted 'mule into the picture.
Charles> Furthermore, if features is somehow nil (don't see how this can be,
Charles> even in bare temacs it is set) this winds up requiring 'cl-kludge,
Charles> which is not provided anywhere.
Charles> I believe it is perfectly safe to simply use 'xemacs as the require
Charles> target - it is always present in `features' - since it set in temacs.
Charles> ChangeLog for lisp:
Charles> 2000-06-27 Charles G Waldman <cgw(a)alum.mit.edu>
Charles> * cl-macs.el: fix cl-transform-function-property kludge
Charles> so that it does not require a random feature.
Charles> Index: cl-macs.el
Charles> ===================================================================
Charles> RCS file: /usr/CVSroot/XEmacs/xemacs/lisp/cl-macs.el,v
Charles> retrieving revision 1.6
Charles> diff -u -r1.6 cl-macs.el
Charles> --- cl-macs.el 1999/09/04 00:38:39 1.6
Charles> +++ cl-macs.el 2000/06/27 19:38:13
Charles> @@ -81,7 +81,7 @@
Charles> (function (lambda (n p f)
Charles> (list 'put (list 'quote n) (list 'quote p)
Charles> (list 'function (cons 'lambda f)))))))
Charles> - (car (or features (setq features (list 'cl-kludge))))))
Charles> + 'xemacs))
Charles> ;;; Initialization.