gwh's SlackBuilds
26712041ec
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 |
||
---|---|---|
test | ||
.gitignore | ||
50magit.el | ||
AUTHORS | ||
autogen.sh | ||
ChangeLog | ||
configure.ac | ||
COPYING | ||
fdl.texi | ||
magit-pkg.el.in | ||
magit.el | ||
magit.spec.in | ||
magit.texi | ||
Makefile.am | ||
NEWS | ||
README |
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/