slime stable port information

Package: slime
Version: 1.0
Revision: 3
Architecture: powerpc
Description: Extends Emacs support for Common Lisp
License: GPL
Maintainer: Lars Rosengreen


Depends: emacsen, sbcl (>= 0.8.12) | openmcl (>= 0.14.2-p1) | cmucl (>= 19a+200409) | clisp (>= 2.32)


BuildDepends: fink (>= 0.24.12), texinfo

Source: http://www.common-lisp.net/project/%n/%n-%v.tar.gz
Source-MD5: 90666e8860d8d26e3cfa36365544ffcf

PatchFile: %n.patch
PatchFile-MD5: fdd9d91820deaf4b8963123ec9c32007
PatchScript: sed 's|@PREFIX@|%p|g' <%{PatchFile} | patch -p1

CompileScript: <<
#! /bin/sh -ev
cd doc
make contributors.texi
make slime.info
<<

InstallScript:<<
install -m 755 -d %i/share/emacs/site-lisp/%n
install -m 644 *.el %i/share/emacs/site-lisp/%n
install -m 644 *.lisp %i/share/emacs/site-lisp/%n
install -m 644 ChangeLog %i/share/emacs/site-lisp/%n

install -m 755 -d %i/etc/emacs/site-start.d
install -m 644 fink/50slime-start.el %i/etc/emacs/site-start.d

install -m 755 -d %i/share/info
install -m 644 doc/%n.info %i/share/info

install -m 755 -d %i/lib/emacsen-common/packages/install
install -m 755 fink/emacsen-install %i/lib/emacsen-common/packages/install/%n

install -m 755 -d %i/lib/emacsen-common/packages/remove
install -m 755 fink/emacsen-remove %i/lib/emacsen-common/packages/remove/%n
<<

PostInstScript: %p/lib/emacsen-common/emacs-package-install %n
PreRmScript: %p/lib/emacsen-common/emacs-package-remove %n

DocFiles: ChangeLog HACKING NEWS README
InfoDocs: %n.info

Homepage: http://www.common-lisp.net/project/slime/

DescDetail: <<
SLIME (Superior Lisp Interaction Mode for Emacs) extends Emacs with
new support for interactive programming in Common Lisp. The features
are centered around slime-mode, an Emacs minor-mode that compliments
the standard lisp-mode. While lisp-mode supports editing Lisp source
files, slime-mode adds support for interacting with a running Common
Lisp process for compilation, debugging, documentation lookup, and so
on.
<<

DescUsage: <<
Make sure Emacs' `inferior-lisp-program' is set to a compatible version of
lisp by including something like this in your .emacs file:

(setq inferior-lisp-program "sbcl")

Currently, SBCL, OpenMCL, CMUCL, CLISP, Lispworks, Allegro CL, and ABCL
are supported to varying degrees.

Use `M-x slime' in Emacs to start slime and connect to a supported Common Lisp
environment.

Open a lisp-mode file and do `C-h m' to see the mode description.

Security note: SLIME has Lisp open a one-use TCP listen socket for
Emacs to connect to for setting up communication. With all Lisps
except CLISP and ABCL this socket is bound to the loopback interface
and thus inaccessible to remote hosts. Be aware that if an attacker
connected to this server port before Emacs then they could have the
Lisp process execute arbitrary code.
<<

DescPackaging: <<
slime reads the ChangeLog on startup, so this needs to be copied over
as well as the .el and .lisp files for each emacs flavor.

SLIME-1.0: for cmucl *use-dedicated-output-stream* needs to be nil,
and :FD-HANDLER should be used instead of :SIGIO. These changes may
no longer be necessary with future versions of SLIME.

Depends on sbcl or clisp, which don't compile on intel.
<<

slime stable port .patch

diff -Naur slime.orig/fink/50slime-start.el slime/fink/50slime-start.el
--- slime.orig/fink/50slime-start.el 1969-12-31 16:00:00.000000000 -0800
+++ slime/fink/50slime-start.el 2004-07-26 15:45:55.000000000 -0700
@@ -0,0 +1,3 @@
+(require 'slime)
+(add-hook 'lisp-mode-hook (lambda () (slime-mode t)))
+(add-hook 'inferior-lisp-mode-hook (lambda () (inferior-slime-mode t)))
diff -Naur slime.orig/fink/emacsen-install slime/fink/emacsen-install
--- slime.orig/fink/emacsen-install 1969-12-31 16:00:00.000000000 -0800
+++ slime/fink/emacsen-install 2004-08-03 12:10:25.000000000 -0700
@@ -0,0 +1,44 @@
+#! /bin/sh
+# @PREFIX@/lib/emacsen-common/packages/install/slime
+set -e
+
+FLAVOR=${1}
+PACKAGE=slime
+
+echo install/${PACKAGE}: Handling install of emacsen flavor ${FLAVOR}
+
+el_files="slime.el hyperspec.el"
+
+el_dir=@PREFIX@/share/emacs/site-lisp/${PACKAGE}/
+elc_dir=@PREFIX@/share/${FLAVOR}/site-lisp/${PACKAGE}/
+el_path_list=`for i in ${el_files}; do \
+ echo $i | perl -pe "s|^|${el_dir}|"; done`
+elc_path_list=`for i in ${el_files}; do \
+ echo $i | perl -pe "s|^|${elc_dir}|"; done`
+
+byte_compile_options="-batch -q --no-init-file --no-site-file"
+
+case $FLAVOR in
+ emacs20 | emacs21 )
+ echo install/${PACKAGE}: byte-compiling for ${FLAVOR}
+
+ install -m 755 -d ${elc_dir}
+
+ # Copy the temp .el files to the installation dir
+ cp ${el_path_list} ${elc_dir}
+
+ # .lisp files need to be copied over as well
+ cp ${el_dir}/*.lisp ${elc_dir}
+
+ # the beta release also needs to read the ChangeLog on startup
+ # for some bizarre reason (probably for the snazzy startup
+ # message), so that needs to be copied over as well
+
+ cp ${el_dir}/ChangeLog ${elc_dir}
+ ;;
+
+ * )
+ echo install/${PACKAGE}: Skipping unsupported flavor ${FLAVOR}
+ ;;
+esac
+
diff -Naur slime.orig/fink/emacsen-remove slime/fink/emacsen-remove
--- slime.orig/fink/emacsen-remove 1969-12-31 16:00:00.000000000 -0800
+++ slime/fink/emacsen-remove 2004-07-18 12:28:00.000000000 -0700
@@ -0,0 +1,18 @@
+#! /bin/sh
+# @PREFIX@/lib/emacsen-common/packages/remove/slime
+set -e
+
+FLAVOR=${1}
+PACKAGE=slime
+
+echo remove/${PACKAGE}: Handling removal of emacsen flavor ${FLAVOR}
+
+case $FLAVOR in
+ emacs20 | emacs21 | xemacs21 )
+ echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR}
+ rm -rf @PREFIX@/share/${FLAVOR}/site-lisp/${PACKAGE}
+ ;;
+ * )
+ echo remove/${PACKAGE}: Skipping unsupported flavor ${FLAVOR}
+ ;;
+esac
diff -Naur slime.orig/swank-cmucl.lisp slime/swank-cmucl.lisp
--- slime.orig/swank-cmucl.lisp 2004-09-09 15:37:50.000000000 -0700
+++ slime/swank-cmucl.lisp 2004-09-09 15:41:55.000000000 -0700
@@ -68,8 +68,10 @@
;;; know for sure what you'll be interrupting. Both `:FD-HANDLER' and
;;; `:SPAWN' are reasonable alternatives.

+;;; lrosengreen fink: "in any case use :FD-HANDER because CMUCL is
+;;; not interrupt safe" rtoy on #lisp
(defimplementation preferred-communication-style ()
- :sigio)
+ :fd-handler)

(defimplementation create-socket (host port)
(ext:create-inet-listener port :stream
diff -Naur slime.orig/swank.lisp slime/swank.lisp
--- slime.orig/swank.lisp 2004-09-09 15:25:17.000000000 -0700
+++ slime/swank.lisp 2004-09-09 15:35:45.000000000 -0700
@@ -269,7 +269,9 @@
"When non-nil redirect Lisp standard I/O to Emacs.
Redirection is done while Lisp is processing a request for Emacs.")

-(defvar *use-dedicated-output-stream* t)
+;;; lrosengreen fink: needs to be nil for cmucl ppc/darwin --
+;;; otherwise throws errors binding to port 0 on startup.
+(defvar *use-dedicated-output-stream* #+(and cmu ppc) nil #-(and cmu ppc) t)
(defvar *communication-style* (preferred-communication-style))
(defvar *log-events* nil)

slime _unstable_ port .patch