Mercurial > hg > xemacs-beta
diff lisp/ilisp/ilisp.el @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | b82b59fe008d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/ilisp/ilisp.el Mon Aug 13 08:45:50 2007 +0200 @@ -0,0 +1,185 @@ +;;; -*- Mode: Emacs-Lisp -*- + +;;; ilisp.el -- + +;;; This file is part of ILISP. +;;; Version: 5.7 +;;; +;;; Copyright (C) 1990, 1991, 1992, 1993 Chris McConnell +;;; 1993, 1994 Ivan Vasquez +;;; 1994, 1995 Marco Antoniotti and Rick Busdiecker +;;; +;;; Other authors' names for which this Copyright notice also holds +;;; may appear later in this file. +;;; +;;; Send mail to 'ilisp-request@lehman.com' to be included in the +;;; ILISP mailing list. 'ilisp@lehman.com' is the general ILISP +;;; mailing list were bugs and improvements are discussed. +;;; +;;; ILISP is freely redistributable under the terms found in the file +;;; COPYING. + + + +;;; Author: Chris McConnell <ccm@cs.cmu.edu> +;;; Maintainer: The Net <ilisp@lehman.com> +;;; Created: 14 Jun 1994 +;;; Version: 5.7 +;;; Keywords: lisp common-lisp scheme comint + +;;; This file may become part of GNU Emacs in the near future. + +;;; GNU Emacs is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY. No author or distributor +;;; accepts responsibility to anyone for the consequences of using it +;;; or for whether it serves any particular purpose or works at all, +;;; unless he says so in writing. Refer to the GNU Emacs General Public +;;; License for full details. + +;;; Everyone is granted permission to copy, modify and redistribute +;;; GNU Emacs, but only under the conditions described in the +;;; GNU Emacs General Public License. A copy of this license is +;;; supposed to have been given to you along with GNU Emacs so you +;;; can know your rights and responsibilities. It should be in a +;;; file named COPYING. Among other things, the copyright notice +;;; and this notice must be preserved on all copies. + +;;; ***************************************************************** +;;; Please read the texinfo file (via m-x info in emacs or tex it and +;;; print it out) for installation instructions. +;;; ***************************************************************** + +;;; This file defines a generic LISP interface that can be customized +;;; to match a specific LISP dialect. Support is already provided for +;;; a number of common LISP dialects. Lucid, Allegro and CMU are +;;; fully supported. Other LISP dialects are missing features like +;;; arglist and find-source. + +;;; Since this is built on top of the general command-interpreter-in- +;;; a-buffer mode (comint mode), it shares a common base +;;; functionality, and a common set of bindings, with all modes +;;; derived from comint mode. This makes it easier to use. + +;;; For documentation on the functionality provided by comint mode, +;;; and the hooks available for customizing it, see the file +;;; comint.el. + +;;; Throughout this file you will find comment lines with %'s on them. +;;; These lines define sections for outline mode which I use while +;;; programming to temporarily hide code. + +;;; See the documentation for ILISP mode, or read texinfo document for +;;; information. All of the EMACS function names begin or end with +;;; lisp or ilisp to separate ilisp functions from functions in other +;;; packages. Functions that work only in lisp buffers or that work +;;; in both lisp buffers and inferior lisp buffers use lisp, all other +;;; functions use ilisp. If a function is intended to be used +;;; interactively, then the lisp or ilisp comes at the end of the +;;; function name, otherwise at the start. + +;;;%%KNOWN BUGS +;;; +;;; If you type multiple things to the top level before you get a +;;; prompt, the LISP may be running with the status light indicating +;;; ready. This is because I have no way to distinguish between input +;;; to a program and that to the top level. +;;; +;;; When running a lisp on Ultrix, you need to set ilisp-program to +;;; "/bin/sh -c your/path/your-lisp-image". +;;; +;;; If you get lisp output breaking up in weird places it almost +;;; certainly means that comint-prompt-regexp is not precise enough. +;;; +;;; I would like to eat Lucid's return from break in the process +;;; filter, but I can't tell how many newlines to eat after. + + +;;;%%CONTRIBUTORS + +;; Recent contributors include (in alphabetical order): + +;; Marco Antoniotti, Robert P. Goldman, Larry Hunter, Eyvind Ness, +;; Ivan Vazquez, Fred White + + +;;;%Requirements +(if (string-match "\\`18" emacs-version) + (load "comint-v18") ; Included older version of comint. + (require 'comint)) + + +;;; This is the old call. The new one is just below. It now dispatches +;;; on the correct type of Emacs. +;;;(load "ilisp-cpat") +(load "ilcompat") + +(load "comint-ipc") + +;; This is optional -- used only by io-bridge-ilisp +(load "bridge") + +(if (load "ilisp-all.elc" t) + t + (progn ; I know it is useless in Elisp. + (load "ilisp-def") + (load "ilisp-el") + (load "ilisp-sym") + (load "ilisp-inp") + (load "ilisp-ind") + + (load "ilisp-prc") + (load "ilisp-val") + (load "ilisp-out") + (load "ilisp-mov") + (load "ilisp-key") + (load "ilisp-prn") + (load "ilisp-low") + (load "ilisp-doc") + (load "ilisp-ext") ; Some emacs-lisp + ; bindings. Lisp char syntax. + (load "ilisp-mod") + (load "ilisp-dia") + (load "ilisp-cmt") + (load "ilisp-rng") + (load "ilisp-hnd") + (load "ilisp-utl") + (load "ilisp-cmp") + (load "ilisp-kil") + (load "ilisp-snd") + (load "ilisp-xfr") + (load "ilisp-hi") + (load "ilisp-aut") + + ;; Dialects. + ;; The user will define their autoloads to load "ilisp" when trying + ;; to run their dialect. This will load all of the dialects in. + (load "ilisp-cl") + (load "ilisp-cmu") + (load "ilisp-acl") + (load "ilisp-hlw") + (load "ilisp-kcl") + (load "ilisp-luc") + (load "ilisp-sch") + )) + +;;; Create the keymaps before running the hooks. +;;; This is necessary if you want the lispm bindings in the load +;;; hook. Otherwise you need to put it AFTER the running of the hooks + +;;; (if (not ilisp-mode-map) (ilisp-bindings)) + + +;;; Now run the hooks. + +(run-hooks 'ilisp-site-hook) +;;; (run-hooks 'load-hook) +(run-hooks 'ilisp-load-hook) ; It seem s more reasonable. + +(if (not ilisp-mode-map) (ilisp-bindings)) + +;;; Optional: +; (load "ilisp-menu") +(if (not (member +ilisp-emacs-version-id+ '(xemacs lucid-19 lucid-19-new))) + (load "ilisp-mnb")) + +(provide 'ilisp)