gwh's SlackBuilds
Find a file
Roger Crew 26712041ec remove runtime dependence on cl.el
This patch removes the runtime dependences on the cl package.
Luckily, there weren't too many of these.

From the GNU emacs lisp manual (Appendix D.1 coding conventions)

   * 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, with `(eval-when-compile (require 'cl))'.  That's
     sufficient for using the macros in the `cl' package, because the
     compiler expands them before generating the byte-code.

There's also the small matter that many of the function implementations
in cl, striving for the full generality of Common Lisp (much of which
is completely useless in Emacs), turn out to be horrible.

E.g., for a fun time, dig down through

      (find-if pred list :from-end t),

and look at what it ACTUALLY does when you finish macroexpanding
everything.  It tests *every* element of the list against the
predicate, not just the rightmost ones stopping when it finds the
first match.  Once it determines the rightmost match, it then retains
NOT the element itself, but its *ordinal* position N, which then gets
used in (elt list N), meaning ANOTHER listwalk, just to get the
element back in order to return it.  Nor is the byte-compiler anywhere
near smart enough to optimize this away (I'm not sure *any* compiler
would be...)

I'll grant cl has some useful macros in it, but it comes bundled with a
lot of crap and you need to be really careful about what you use.  For
many things, you're better off rolling your own functionality using
the standard routines available (e.g., while, mapcar, and reverse are
all written directly in C).

And you most definitely do NOT want to be foisting the crap on
everybody else, hence the need to keep it out of the runtime.

Meanwhile, here's The Patch:

	Modified magit.el
2010-04-28 12:21:49 +01:00
test Deleted. 2008-09-07 16:42:18 +03:00
.gitignore Add an rpm .spec file 2010-03-24 10:14:22 +00:00
50magit.el Make build cruft work. 2008-08-13 06:47:09 +03:00
AUTHORS Credit John. Thanks! 2009-01-28 22:23:46 +02:00
autogen.sh Provide autogen.sh 2008-08-13 07:11:44 +03:00
ChangeLog Added autotools cruft. 2008-08-13 06:20:36 +03:00
configure.ac Add an rpm .spec file 2010-03-24 10:14:22 +00:00
COPYING Renamed to follow convention. 2008-08-06 02:46:58 +03:00
fdl.texi Added FDL text. 2008-08-12 04:51:45 +03:00
magit-pkg.el.in Elpanized. 2009-03-09 22:15:07 +02:00
magit.el remove runtime dependence on cl.el 2010-04-28 12:21:49 +01:00
magit.spec.in Add an rpm .spec file 2010-03-24 10:14:22 +00:00
magit.texi Minor doc changes. 2010-04-25 17:42:10 +01:00
Makefile.am Add an rpm .spec file 2010-03-24 10:14:22 +00:00
NEWS Support for magit-repo-dirs and nice completion based on it. 2009-07-28 02:25:44 +03:00
README README updates. 2009-06-06 23:17:12 +03:00

It's Magit!  A Emacs mode for Git.

I started to write Magit to learn about Git and to figure out how I
would be using Git in a 'natural' way.  Magit will grow and hopefully
become more coherent as I learn more about Git and good ways to use
it.  Feedback is welcome!

* Installing

Magit can be installed with the popular recipe of

   $ ./autogen.sh     # If you got the sources directly from Git
   $ ./configure
   $ make install

This will put magit.el into /usr/local/share/emacs/site-lisp, where
Emacs should be able to find it.  Then add

      (require 'magit)

to your .emacs file.

* Getting started

To get started with Magit, open any file in a Git repository in Emacs
and run 'M-x magit-status'.  Read the online help of magit-mode ('C-h
m' in the Magit buffer), make some changes to your files, and try to
commit them.

* Learning more

The Magit User Manual describes things with more words than the online
help.  You can read it in Emacs with 'C-u C-h i magit.info' for
example, or on the web at

    http://zagadka.vm.bytemark.co.uk/magit/magit.html

If you have questions, please use the mailing list at

    http://groups.google.com/group/magit/

Magit's web home is currently at

    http://zagadka.vm.bytemark.co.uk/magit/