[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Some racism in emacs!
From: |
John Paul Wallington |
Subject: |
Re: Some racism in emacs! |
Date: |
Sun, 01 Jun 2003 08:41:04 +0100 |
User-agent: |
Gnus/5.1002 (Gnus v5.10.2) Emacs/21.3.50 (gnu/linux) |
Pascal Bourguignon <spam@thalassa.informatimago.com> wrote:
> Well, actually what's bothering me is these nasty, racist messages I
> get from the byte-compiler:
>
> Warning: Function `gensym' from cl package called at runtime
> Warning: Function `subseq' from cl package called at runtime
> etc...
>
>
> I can't see the difference between the functions defined in
> emacs/lisp/emacs-lisp/cl.el and those defined in
> emacs/lisp/emacs-lisp/ring.el
> Can you?
The cl library, like Common Lisp, is big and hard to subset.
Amongst the Emacs Lisp Coding Conventions it is suggested:
* Please don't require the `cl' package of Common Lisp extensions at
run time. Use of this package is optional, and it is not part of
the standard Emacs namespace. If your package loads `cl' at run
time, that could cause name clashes for users who don't use that
package.
However, there is no problem with using the `cl' package at compile
time, for the sake of macros. You do that like this:
(eval-when-compile (require 'cl))
Hm. I think name clashes are largely a non-problem; a package author
would be insane to define cl functions/macros incompatibly, wouldn't
they?
Ways to ameliorate this situation include splitting cl into several
separate independent libraries, moving ultra-nifty bits into subr.el,
or defining compiler macros for the more popular functions.
If you just don't want to see the warnings then try frobbing
`byte-compile-warnings' (untested).