README for Perl module Emacs::Lisp
last updated: 2 Mar 1999
##################################################################
###### CAUTION ###### CAUTION ###### CAUTION ###### CAUTION ######
##################################################################
####### #######
####### THIS IS ALPHA SOFTWARE. USE AT YOUR OWN RISK! #######
####### NOT RESPONSIBLE FOR CRASHES OR LOST DATA!!!!!!! #######
####### #######
##################################################################
###### CAUTION ###### CAUTION ###### CAUTION ###### CAUTION ######
##################################################################
WHAT
----
Perlmacs is a patch of GNU Emacs. It creates a program that has all
the functionality of both Perl and Emacs. The Emacs::Lisp module
allows Perl code to call functions and access variables of Lisp.
This release (Emacs::Lisp 0.78) uses features introduced in Perlmacs
0.7, which requires Emacs 20.3 and Perl 5.005. The following table
lists which versions of the various packages work together:
Emacs::Lisp Emacs Perl Perlmacs
=========== ===== ==== ========
0.71 20.2 5.004 0.6.2
0.75 20.3 5.004 0.6.2.2
0.78 20.3 5.005 0.7
WHY
---
The intent is to allow Emacs modules and customization code to be
written in Perl, as well as Emacs Lisp. Because we can. :-)
Actually, my motives have mostly to do with becoming a better
programmer and familiarizing myself with Perl and Emacs, two very
important programs. See
http://www.tux.org/~niemi/opensource/developer-motivation.html for a
nice explanation by David Niemi.
HOW
---
You must first install PERL VERSION 5.005 or higher. If you get core
dumps during process termination, I recommend you configure Perl with
-Dusemymalloc=y. So far, I have seen this problem only with the
Emacs::Lisp test script, and using Perl's malloc seems to cure it.
Your Perl must have working ExtUtils::Embed capabilities. If not,
`configure' will exclude Perl support, and you will have something
close to standard GNU Emacs. If you are unsure about this, watch the
messages printed by `configure'. If they say that Perl is embeddable,
good. If not, have a peek at the generated config.log file for clues,
and mail me any workarounds.
Retrieve the Emacs 20.3 distribution from a location such as one of
these:
ftp://ftp.gnu.org/pub/gnu/emacs/emacs-20.3.tar.gz
ftp://metalab.unc.edu/pub/gnu/emacs/emacs-20.3.tar.gz
You may want to grab the Elisp Manual, elisp-manual-20-2.5.tar.gz,
while you're there. (At this time, knowledge of Elisp is essential
for programming with Emacs::Lisp.)
Retrieve the latest Perlmacs patch from one of these locations:
http://www.perl.com/CPAN/authors/id/JTOBEY/emacs-20.3-perlmacs-*.pl.gz
http://www.john-edwin-tobey.org/perlmacs/src/emacs-20.3-perlmacs-*.pl.gz
(Substitute the highest version number, at least 0.7, for `*'.) Then
do
gzip -dc emacs-20.3.tar.gz |tar xf -
cd emacs-20.3
gzip -dc ../emacs-20.3-perlmacs-*.pl.gz |perl
Have a look at the patched README file for further information. The
basic procedure should be familiar:
./configure
make
make install
This will, by default, install the program in /usr/local/bin under the
names `pmacs' and `perlmacs'. The program can parse its command line
as either Perl or Emacs would, depending on whether "perl" appears in
its name. (Using `--perl' or `--emacs' as the first arg overrides
this.)
If you wish to use an installed version of perl other than the one
that's in your $PATH, set the environment variable $PERL to the
desired program when running configure. For example, under bash or
sh:
PERL=perl5.005 ./configure
Next, build the Emacs::Lisp module in the usual way, but use perlmacs
in place of perl.
gzip -dc Emacs-Lisp-*.tar.gz |tar xf -
cd Emacs-Lisp-*
perlmacs Makefile.PL
make
make test
make install
Most of the documentation for both the patch and the module is in
perl/Emacs/Lisp/Lisp.pm and should be accessible after installation
via
perldoc Emacs::Lisp
Lisp functions, such as `perl-eval', also have Emacs docstrings
accessible through `C-h f'. No texinfo docs yet, sorry.
For information on getting the latest source via anonymous CVS, see
http://john-edwin-tobey.org/perlmacs/.
CAVEATS
-------
As of this ALPHA version, crashes may occur, resulting in the loss of
unsaved editing changes.
This is not meant to be tried on anything other than Unix-like
systems. However, if you get it to work on non-unix, I would be
delighted to hear about it!
LICENSE
-------
This software is licensed under the GNU General Public License. See
the file COPYING for details.
WARRANTY
--------
What! Are you kidding? Let's see, where's a copy of that
disclaimer.... oh, here we go:
This software is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
Send bug reports and inquiries to John <
[email protected]>.