Emacs Common Lisp is an implementation of CommonLisp written in EmacsLisp. That means you can run CommonLisp programs in Emacs, and you can write Emacs extensions (including interactive functions) in CommonLisp. At this stage, most of ANSI Common Lisp is implemented, but CLOS and pretty printing are missing. For more information, see the README file.
Go to http://mailman.nocrew.org/cgi-bin/mailman/listinfo/emacs-cl for a mailing list for discussion about Emacs Common Lisp.
See also CommonLispForEmacs.
Writing an interactive Emacs command in CommonLisp mini-HOWTO:
Load Emacs Common Lisp, start the interactive mode with “M-x emacs-cl”, and enter this function at the prompt:
(defun el:|my-fun| (str) "My interactive function." (declare (interactive "sWhat, you say? ")) (el:|message| "Good news, every one: %s" str))
The “el:” prefix refers to symbols in the EMACS-LISP package. Those symbol names are quoted to make them lower case.
Now, try it with “M-x my-fun”.
But … why?!
That way, Emacs could be interpreted or compiled by anyone’s CommonLisp, & Emacs macros would be more immediately workable by CL programmers, EL section of manual would be less important.
Common Lisp programmers aren’t really interested in using Emacs Lisp programs such as Gnus or EMMS in a Common Lisp Emacs such as Climacs. That’s because Emacs Lisp programs are generally inferior to C or Common Lisp programs, due Emacs’ poor support for GUI programming, lack of support for C FFI and poor IO support. Just see how long Gnus takes to load a news group with 40k messages.
Common Lisp Emacsen don’t plan to incorporate non-text-editing-related functionality. This functionality is best implemented as other CLIM programs, of course running in the same image.
I can’t find any of the links pointing to the nocrew.org site that are actually valid. Does anyone know if this project is still active in any way? --mon key
Sorry, the old links were broken. I have updated them. – LarsBrinkhoff?
Is this the same cl package that is part of Emacs? – JonasBernoulli
No, it’s not. – LarsBrinkhoff?