chiark / gitweb /
Porting stuff.
authorMark Wooding <mdw@distorted.org.uk>
Wed, 24 May 2006 16:39:51 +0000 (17:39 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Wed, 24 May 2006 16:39:51 +0000 (17:39 +0100)
  * Change to use new runlisp system (rather than the bizarre hackery of
    the same name which we had previously).

  * Support ECL, as much as is sensible.

infix.lisp
mdw-mop.lisp
optparse-test
sys-base.lisp

index ea78422340db8add6c7e23398027befc5ed82991..9c77afeb95f86fe5780684e5cae8cc4b15bd8f3a 100644 (file)
@@ -70,7 +70,7 @@ (defstruct (operator (:predicate operatorp)
   (name nil :type symbol)
   (lprec nil :type (or fixnum null))
   (rprec nil :type (or fixnum null))
-  (func (lambda () nil) :type (function () t)))
+  (func (lambda () nil) :type #-ecl (function () t) #+ecl function))
 
 ;;;--------------------------------------------------------------------------
 ;;; Global parser state.
index ff43c11a53ea437760cc681081ef8a4177260bad..85e78853c76a11b14f2944e23e3b6c1494818710 100644 (file)
@@ -27,7 +27,7 @@
 ;;; Packages.
 
 (defpackage #:mdw.mop
-  (:use #:common-lisp #:mdw.base #+(or cmu clisp) #:mop)
+  (:use #:common-lisp #:mdw.base #+(or cmu clisp) #:mop #+ecl #:clos)
   (:export #:copy-instance #:copy-instance-using-class
           #:with-slot-variables
           #:compatible-class
index 1d76566689d07ecce678bc7c91f8252d7639c900..83662c2a1d8a63e042fcf38198fdfcea74407bed 100755 (executable)
@@ -3,7 +3,9 @@
 (let ((*compile-verbose* nil)
       (*load-verbose* nil))
   (asdf:oos 'asdf:load-op "mdw" :verbose nil))
-(use-package '#:optparse)
+(handler-case
+    (use-package '#:optparse)
+  (error (c) (invoke-debugger c)))
 
 (defvar opt-bool nil)
 (defvar opt-int nil)
index b1e3595a973cff10b82673e2ea8b18e81e75f85c..ede099a80c00a8016c0047f668871ced07f224f6 100644 (file)
 ;;; along with this program; if not, write to the Free Software Foundation,
 ;;; Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
-(defpackage #:mdw.runlisp
-  (:use #:common-lisp #+cmu #:extensions)
-  (:export #:*lisp-interpreter* #:*command-line-strings*))
-(in-package #:mdw.runlisp)
-
-#+clisp
-(progn
-  (defvar *lisp-interpreter*)
-  (defvar *command-line-strings*)
-  (let ((args (coerce (ext:argv) 'list)))
-    (setf *lisp-interpreter* (car args))
-    (setf *command-line-strings* (nthcdr 7 args))))
+(defpackage #:runlisp
+  (:use #:common-lisp)
+  (:export #:*lisp-interpreter* #:*command-line-strings* #:run))
 
 (defpackage #:mdw.sys-base
-  (:use #:common-lisp #+cmu #:extensions #+cmu #:mdw.runlisp)
+  (:use #:common-lisp #:runlisp)
   (:export #:exit #:hard-exit #:*program-name* #:*command-line-strings*)
-  (:import-from #:mdw.runlisp #:*lisp-interpreter* #:*command-line-strings*)
+  (:import-from #:runlisp #:*lisp-interpreter* #:*command-line-strings*)
   #+clisp (:import-from #:ext #:exit))
 (in-package #:mdw.sys-base)
 
-;;; --- This is currently all a bit CMUCL-specific ---
+(defun hard-exit (&optional (code 0))
+  "Stops the program immediately in its tracks.  Does nothing else.  Use
+   after fork, for example, to avoid flushing buffers."
+  (declare (type (unsigned-byte 32) code))
+  #+cmu (unix::void-syscall ("_exit" c-call:int) code)
+  #+(or clisp ecl) (ext:quit code))
 
-#+(or cmu)
+#-clisp
 (defun exit (&optional (code 0))
   "Polite way to end a program.  If running in an interactive Lisp, just
    return to the top-level REPL."
-  (if #+cmu *batch-mode*
-      #+cmu (throw 'lisp::%end-of-the-world code)
+  (if (boundp '*command-line-strings*)
+      #+(or cmu ecl) (ext:quit code)
       (progn
         (unless (zerop code)
           (format t "~&Exiting unsuccessfully with code ~D.~%" code))
         (abort))))
 
-(defun hard-exit (&optional (code 0))
-  "Stops the program immediately in its tracks.  Does nothing else.  Use
-   after fork, for example, to avoid flushing buffers."
-  (declare (type (unsigned-byte 32) code))
-  #+cmu (unix::void-syscall ("_exit" c-call:int) code)
-  #+clisp (ext:quit code))
-
 (defvar *program-name*
   (pathname-name (car *command-line-strings*))
   "A plausible guess at the program's name, stripped of strange extensions.")