7 March 1999 This is version 0.7.1 of Perlmacs, a program based on GNU Emacs with the Perl interpreter linked in. Perlmacs is still considered "alpha" at this time, so if you use it for day-to-day editing, I suggest you save your work often. Send bug reports to jtobey@channel1.com. For the latest (semi-)stable version, look in either of these locations: http://john-edwin-tobey.org/perlmacs/src/ http://www.perl.com/CPAN/authors/id/JTOBEY/ For information about CVS updates, see `http://john-edwin-tobey.org/perlmacs/'. Changes since version 0.6 include: * Supports (and requires) Perl 5.005 or better, non-threaded. * More stable. No longer crashes on `die', `signal', or `throw' across Lisp-to-Perl stack frames. `goto' can still produce a crash, though. * Perl's `eval' catches Lisp errors. Lisp's `condition-case' can catch Perl errors. * Arrayrefs become lists. For example, the Perl expression [1, 2, [3, 4], 5] if used as an argument to a Lisp function, would become a list with a sublist: '(1 2 (3 4) 5) The files README.emacs and INSTALL contain information about how to compile and install Emacs. Most of it applies to Perlmacs, too. You may link against any installed version of Perl by specifying its path in the `PERL' environment variable when you run `configure'. By default, the program will be installed in /usr/local/bin under the names `pmacs' and `perlmacs'. Invoke it as `pmacs' when you want it to parse its command line as Emacs would; `perlmacs' behaves like Perl. Your Perl must have working ExtUtils::Embed capabilities. If not, or if Perl's version number is too low, `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. The Perlmacs patch allows Emacs to evaluate Perl code and pass arguments to Perl functions. The code may use Perl modules, including DynaLoader modules. However, it does not enable Perl code to call Emacs Lisp functions or access Lisp variables. For that you need the Emacs::Lisp module, available in the same locations as Perlmacs. See the README in Emacs::Lisp for more information. Although the separation of Emacs::Lisp from the main Perlmacs distribution is intended to permit updates to either without requiring the other to be upgraded, currently there is rather strict version interdependency between the two packages, and on Perl and Emacs. In the following table, each row represents a supported combination of versions: 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.79 20.3 5.005 0.7.1 Of course, the most recent versions should be given preference whenever possible. Although I hope to master the use of Texinfo one day and add Perlmacs documentation to the standard Emacs set, so far the best documentation is in the Emacs::Lisp module. LICENSE ------- Copyright (C) 1998-1999 by John Tobey. All rights reserved. Copyright (C) 1998 Free Software Foundation, Inc. This software is distributed under the GNU General Public License. See the file COPYING for details. WARRANTY -------- Perlmacs is not distributed for profit, so its authors can provide no warranty. 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.