[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs Package Management

From: Richard Stallman
Subject: Re: Emacs Package Management
Date: Sun, 13 Sep 2009 12:40:39 -0400

If we do set up a package system, we should insist that any packages
to be recommended from Emacs follow the same rules as code to be
included in Emacs.  This includes copyright assignments, and all the
technical conventions for Emacs code.

    * Emacs is already too big. If we made it easy to install third-party
      packages, we could spin many packages already included in Emacs
      (perhaps gnus, erc, and org) out into their own independent
      projects. We would avoid problems like "the big gnus merge" that
      happens every so often as well as allowing them to follow their own
      release cycles.

Splitting things up can be good in reducing the size of the main
Emacs distro.  But watch out for a possible problem.

Supporting the latest Gnus on old versions of Emacs already
complicates things.  If Emacs does not come with a copy of Gnus, we
will also be asked to support running an old Gnus in a new Emacs,
which will square the difficulty.

    * I make use of the cl library, disqualifying much of my code for
      inclusion in Emacs proper. I'd venture to say close to a majority of
      the nontrivial packages out there do as well.

The rule against using CL functions at run time is for the sake of the
user.  The CL functions are not a standard part of the Emacs Lisp
namespace.  Thus, loading CL can conflict with the user's function

Even if we separate out parts of Emacs, this policy will still apply.
It has nothing to do with whether Emacs si distributed as one package
or several packages.

Instead of this policy, we could declare those functions standard, but
I think some of them are not well designed and not good to include.
Also, to do it right we would need to document these functions in the
Emacs Lisp manual, which is a big job.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]