0
|
1 ;;; -*- Mode: Emacs-Lisp -*-
|
|
2
|
|
3 ;;; ilisp.el --
|
|
4
|
|
5 ;;; This file is part of ILISP.
|
4
|
6 ;;; Version: 5.8
|
0
|
7 ;;;
|
|
8 ;;; Copyright (C) 1990, 1991, 1992, 1993 Chris McConnell
|
|
9 ;;; 1993, 1994 Ivan Vasquez
|
4
|
10 ;;; 1994, 1995, 1996 Marco Antoniotti and Rick Busdiecker
|
|
11 ;;; 1996 Marco Antoniotti and Rick Campbell
|
0
|
12 ;;;
|
|
13 ;;; Other authors' names for which this Copyright notice also holds
|
|
14 ;;; may appear later in this file.
|
|
15 ;;;
|
4
|
16 ;;; Send mail to 'ilisp-request@naggum.no' to be included in the
|
|
17 ;;; ILISP mailing list. 'ilisp@naggum.no' is the general ILISP
|
0
|
18 ;;; mailing list were bugs and improvements are discussed.
|
|
19 ;;;
|
|
20 ;;; ILISP is freely redistributable under the terms found in the file
|
|
21 ;;; COPYING.
|
|
22
|
|
23
|
|
24
|
|
25 ;;; Author: Chris McConnell <ccm@cs.cmu.edu>
|
4
|
26 ;;; Maintainer: The Net <ilisp@naggum.no>
|
0
|
27 ;;; Created: 14 Jun 1994
|
4
|
28 ;;; Version: 5.8
|
0
|
29 ;;; Keywords: lisp common-lisp scheme comint
|
|
30
|
|
31 ;;; This file may become part of GNU Emacs in the near future.
|
|
32
|
|
33 ;;; GNU Emacs is distributed in the hope that it will be useful,
|
|
34 ;;; but WITHOUT ANY WARRANTY. No author or distributor
|
|
35 ;;; accepts responsibility to anyone for the consequences of using it
|
|
36 ;;; or for whether it serves any particular purpose or works at all,
|
|
37 ;;; unless he says so in writing. Refer to the GNU Emacs General Public
|
|
38 ;;; License for full details.
|
|
39
|
|
40 ;;; Everyone is granted permission to copy, modify and redistribute
|
|
41 ;;; GNU Emacs, but only under the conditions described in the
|
|
42 ;;; GNU Emacs General Public License. A copy of this license is
|
|
43 ;;; supposed to have been given to you along with GNU Emacs so you
|
|
44 ;;; can know your rights and responsibilities. It should be in a
|
|
45 ;;; file named COPYING. Among other things, the copyright notice
|
|
46 ;;; and this notice must be preserved on all copies.
|
|
47
|
|
48 ;;; *****************************************************************
|
|
49 ;;; Please read the texinfo file (via m-x info in emacs or tex it and
|
|
50 ;;; print it out) for installation instructions.
|
|
51 ;;; *****************************************************************
|
|
52
|
|
53 ;;; This file defines a generic LISP interface that can be customized
|
|
54 ;;; to match a specific LISP dialect. Support is already provided for
|
|
55 ;;; a number of common LISP dialects. Lucid, Allegro and CMU are
|
|
56 ;;; fully supported. Other LISP dialects are missing features like
|
|
57 ;;; arglist and find-source.
|
|
58
|
|
59 ;;; Since this is built on top of the general command-interpreter-in-
|
|
60 ;;; a-buffer mode (comint mode), it shares a common base
|
|
61 ;;; functionality, and a common set of bindings, with all modes
|
|
62 ;;; derived from comint mode. This makes it easier to use.
|
|
63
|
|
64 ;;; For documentation on the functionality provided by comint mode,
|
|
65 ;;; and the hooks available for customizing it, see the file
|
|
66 ;;; comint.el.
|
|
67
|
|
68 ;;; Throughout this file you will find comment lines with %'s on them.
|
|
69 ;;; These lines define sections for outline mode which I use while
|
|
70 ;;; programming to temporarily hide code.
|
|
71
|
|
72 ;;; See the documentation for ILISP mode, or read texinfo document for
|
|
73 ;;; information. All of the EMACS function names begin or end with
|
|
74 ;;; lisp or ilisp to separate ilisp functions from functions in other
|
|
75 ;;; packages. Functions that work only in lisp buffers or that work
|
|
76 ;;; in both lisp buffers and inferior lisp buffers use lisp, all other
|
|
77 ;;; functions use ilisp. If a function is intended to be used
|
|
78 ;;; interactively, then the lisp or ilisp comes at the end of the
|
|
79 ;;; function name, otherwise at the start.
|
|
80
|
|
81 ;;;%%KNOWN BUGS
|
|
82 ;;;
|
|
83 ;;; If you type multiple things to the top level before you get a
|
|
84 ;;; prompt, the LISP may be running with the status light indicating
|
|
85 ;;; ready. This is because I have no way to distinguish between input
|
|
86 ;;; to a program and that to the top level.
|
|
87 ;;;
|
|
88 ;;; When running a lisp on Ultrix, you need to set ilisp-program to
|
|
89 ;;; "/bin/sh -c your/path/your-lisp-image".
|
|
90 ;;;
|
|
91 ;;; If you get lisp output breaking up in weird places it almost
|
|
92 ;;; certainly means that comint-prompt-regexp is not precise enough.
|
|
93 ;;;
|
|
94 ;;; I would like to eat Lucid's return from break in the process
|
|
95 ;;; filter, but I can't tell how many newlines to eat after.
|
|
96
|
|
97
|
|
98 ;;;%%CONTRIBUTORS
|
|
99
|
|
100 ;; Recent contributors include (in alphabetical order):
|
|
101
|
|
102 ;; Marco Antoniotti, Robert P. Goldman, Larry Hunter, Eyvind Ness,
|
|
103 ;; Ivan Vazquez, Fred White
|
|
104
|
|
105
|
|
106 ;;;%Requirements
|
|
107 (if (string-match "\\`18" emacs-version)
|
|
108 (load "comint-v18") ; Included older version of comint.
|
|
109 (require 'comint))
|
|
110
|
|
111
|
|
112 ;;; This is the old call. The new one is just below. It now dispatches
|
|
113 ;;; on the correct type of Emacs.
|
|
114 ;;;(load "ilisp-cpat")
|
|
115 (load "ilcompat")
|
|
116
|
|
117 (load "comint-ipc")
|
|
118
|
|
119 ;; This is optional -- used only by io-bridge-ilisp
|
4
|
120 (if (not (and (eq +ilisp-emacs-version-id+ 'fsf-19)
|
|
121 (>= +ilisp-emacs-minor-version-number+ 29)))
|
|
122 (load "bridge"))
|
0
|
123
|
|
124 (if (load "ilisp-all.elc" t)
|
|
125 t
|
|
126 (progn ; I know it is useless in Elisp.
|
|
127 (load "ilisp-def")
|
|
128 (load "ilisp-el")
|
|
129 (load "ilisp-sym")
|
|
130 (load "ilisp-inp")
|
|
131 (load "ilisp-ind")
|
|
132
|
|
133 (load "ilisp-prc")
|
|
134 (load "ilisp-val")
|
|
135 (load "ilisp-out")
|
|
136 (load "ilisp-mov")
|
|
137 (load "ilisp-key")
|
|
138 (load "ilisp-prn")
|
|
139 (load "ilisp-low")
|
|
140 (load "ilisp-doc")
|
|
141 (load "ilisp-ext") ; Some emacs-lisp
|
|
142 ; bindings. Lisp char syntax.
|
|
143 (load "ilisp-mod")
|
|
144 (load "ilisp-dia")
|
|
145 (load "ilisp-cmt")
|
|
146 (load "ilisp-rng")
|
|
147 (load "ilisp-hnd")
|
|
148 (load "ilisp-utl")
|
|
149 (load "ilisp-cmp")
|
|
150 (load "ilisp-kil")
|
|
151 (load "ilisp-snd")
|
|
152 (load "ilisp-xfr")
|
|
153 (load "ilisp-hi")
|
|
154 (load "ilisp-aut")
|
|
155
|
|
156 ;; Dialects.
|
|
157 ;; The user will define their autoloads to load "ilisp" when trying
|
|
158 ;; to run their dialect. This will load all of the dialects in.
|
|
159 (load "ilisp-cl")
|
|
160 (load "ilisp-cmu")
|
|
161 (load "ilisp-acl")
|
|
162 (load "ilisp-hlw")
|
|
163 (load "ilisp-kcl")
|
|
164 (load "ilisp-luc")
|
|
165 (load "ilisp-sch")
|
|
166 ))
|
|
167
|
|
168 ;;; Create the keymaps before running the hooks.
|
|
169 ;;; This is necessary if you want the lispm bindings in the load
|
|
170 ;;; hook. Otherwise you need to put it AFTER the running of the hooks
|
|
171
|
|
172 ;;; (if (not ilisp-mode-map) (ilisp-bindings))
|
|
173
|
|
174
|
|
175 ;;; Now run the hooks.
|
|
176
|
|
177 (run-hooks 'ilisp-site-hook)
|
|
178 ;;; (run-hooks 'load-hook)
|
|
179 (run-hooks 'ilisp-load-hook) ; It seem s more reasonable.
|
|
180
|
|
181 (if (not ilisp-mode-map) (ilisp-bindings))
|
|
182
|
|
183 ;;; Optional:
|
|
184 ; (load "ilisp-menu")
|
|
185 (if (not (member +ilisp-emacs-version-id+ '(xemacs lucid-19 lucid-19-new)))
|
|
186 (load "ilisp-mnb"))
|
|
187
|
|
188 (provide 'ilisp)
|