Attached are a patch and a dep file to get closure working on OpenMCL.
Well, it worked for me.
JQS
? resources/.cvsignore ? src/.cvsignore ? src/css/.cvsignore ? src/glisp/.cvsignore ? src/glisp/dep-openmcl.lisp ? src/gui/.cvsignore ? src/html/.cvsignore ? src/imagelib/.cvsignore ? src/net/.cvsignore ? src/parse/.cvsignore ? src/patches/.cvsignore ? src/protocols/.cvsignore ? src/renderer/.cvsignore ? src/util/.cvsignore ? src/xml/.cvsignore cvs server: Diffing . Index: closure.asd =================================================================== RCS file: /project/closure/cvsroot/closure/closure.asd,v retrieving revision 1.5 diff -u -r1.5 closure.asd --- closure.asd 13 Jun 2005 10:14:22 -0000 1.5 +++ closure.asd 25 Aug 2005 14:42:17 -0000 @@ -70,7 +70,8 @@ #+(AND ALLEGRO ALLEGRO-V5.0) "dep-acl5" #+(AND ALLEGRO (NOT ALLEGRO-V5.0)) "dep-acl" #+GCL "dep-gcl" - #-(OR sbcl CLISP CMU ALLEGRO GCL) #.(error "Configure!")) + #+OPENMCL "dep-openmcl" + #-(OR sbcl CLISP CMU ALLEGRO GCL OPENMCL) #.(error "Configure!")) (:file "package" :depends-on (dependent)) (:file "runes" cvs server: Diffing resources cvs server: Diffing resources/css cvs server: Diffing resources/dtd cvs server: Diffing resources/encodings cvs server: Diffing resources/encodings/apple cvs server: Diffing resources/icons cvs server: Diffing resources/patterns cvs server: Diffing src cvs server: Diffing src/css cvs server: Diffing src/glisp Index: src/glisp/gendep.lisp =================================================================== RCS file: /project/closure/cvsroot/closure/src/glisp/gendep.lisp,v retrieving revision 1.2 diff -u -r1.2 gendep.lisp --- src/glisp/gendep.lisp 13 Mar 2005 18:01:15 -0000 1.2 +++ src/glisp/gendep.lisp 25 Aug 2005 14:42:17 -0000 @@ -337,7 +337,8 @@ #+(AND ALLEGRO ALLEGRO-V5.0) "acl5" #+(AND ALLEGRO (NOT ALLEGRO-V5.0)) "acl" #+GCL "gcl" - #-(OR CLISP CMU ALLEGRO GCL) + #+OPENMCL "openmcl" + #-(OR CLISP CMU ALLEGRO GCL OPENMCL) #.(error "Configure!"))
;; all symbols, which are defined by gray streams @@ -379,6 +380,7 @@ #+:CMU '(:ext) #+:ALLEGRO '(:excl) #+:HARLEQUIN-COMMON-LISP '(:stream) + #+:OPENMCL '(:ccl) )
(defun seek-symbol (name packages) cvs server: Diffing src/gui Index: src/gui/clim-gui.lisp =================================================================== RCS file: /project/closure/cvsroot/closure/src/gui/clim-gui.lisp,v retrieving revision 1.20 diff -u -r1.20 clim-gui.lisp --- src/gui/clim-gui.lisp 11 Jul 2005 15:58:03 -0000 1.20 +++ src/gui/clim-gui.lisp 25 Aug 2005 14:42:22 -0000 @@ -423,12 +423,6 @@
(defun send-closure-command (command &rest args) (ensure-closure) - - #+openmcl - (with-closure () - (glisp::process-interrupt *closure-process* - #'(lambda () (apply command args)))) - #-openmcl (with-closure () (clim-sys:process-interrupt *closure-process* #'(lambda () (apply command args))))) cvs server: Diffing src/html cvs server: Diffing src/imagelib cvs server: Diffing src/net cvs server: Diffing src/parse cvs server: Diffing src/patches Index: src/patches/clx-patch.lisp =================================================================== RCS file: /project/closure/cvsroot/closure/src/patches/clx-patch.lisp,v retrieving revision 1.4 diff -u -r1.4 clx-patch.lisp --- src/patches/clx-patch.lisp 13 Mar 2005 18:02:58 -0000 1.4 +++ src/patches/clx-patch.lisp 25 Aug 2005 14:42:23 -0000 @@ -167,7 +167,7 @@ (get-host-name))
;;; GET-BEST-AUTHORIZATION - + #-openmcl (defun get-best-authorization (host display protocol) (labels ((read-short (stream &optional (eof-errorp t)) (let ((high-byte (read-byte stream eof-errorp nil))) cvs server: Diffing src/protocols cvs server: Diffing src/renderer cvs server: Diffing src/util cvs server: Diffing src/xml cvs server: Diffing src/xml/sax-tests
;;; -*- Mode: Lisp; Syntax: Common-Lisp; Package: CL-USER; -*- ;;; --------------------------------------------------------------------------- ;;; Title: OpenMCL dependent stuff + fixups ;;; Created: 2005-08-25 11:50 ;;; Author: ;;; License: MIT style (see below) ;;; --------------------------------------------------------------------------- ;;; (c) copyright 1999 by Gilbert Baumann
;;; Permission is hereby granted, free of charge, to any person obtaining ;;; a copy of this software and associated documentation files (the ;;; "Software"), to deal in the Software without restriction, including ;;; without limitation the rights to use, copy, modify, merge, publish, ;;; distribute, sublicense, and/or sell copies of the Software, and to ;;; permit persons to whom the Software is furnished to do so, subject to ;;; the following conditions: ;;; ;;; The above copyright notice and this permission notice shall be ;;; included in all copies or substantial portions of the Software. ;;; ;;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ;;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ;;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ;;; IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY ;;; CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, ;;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
(export 'glisp::read-byte-sequence :glisp) (export 'glisp::read-char-sequence :glisp) (export 'glisp::run-unix-shell-command :glisp)
(export 'glisp::getenv :glisp)
(export 'glisp::make-server-socket :glisp) (export 'glisp::close-server-socket :glisp)
(defun glisp::read-byte-sequence (&rest ap) (apply #'read-sequence ap))
(defun glisp::read-char-sequence (&rest ap) (apply #'read-sequence ap))
(defmacro glisp::with-timeout ((&rest options) &body body) (declare (ignore options)) `(progn ,@body))
(defun glisp::open-inet-socket (hostname port) (values (ccl::make-socket :address-family :internet :type :stream :remote-host hostname :remote-port port) :byte))
(defstruct (server-socket (:constructor make-server-socket-struct)) fd element-type port)
#|| (defun glisp::make-server-socket (port &key (element-type '(unsigned-byte 8))) (make-server-socket-struct :fd (ext:create-inet-listener port) :element-type element-type :port port))
(defun glisp::accept-connection/low (socket) (mp:process-wait-until-fd-usable (server-socket-fd socket) :input) (values (sys:make-fd-stream (ext:accept-tcp-connection (server-socket-fd socket)) :input t :output t :element-type (server-socket-element-type socket)) (cond ((subtypep (server-socket-element-type socket) 'integer) :byte) (t :char))))
(defun glisp::close-server-socket (socket) (unix:unix-close (server-socket-fd socket))) ||#
;;;;;;
(defun glisp::g/make-string (length &rest options) (apply #'make-array length :element-type 'base-char options))
(defun glisp::run-unix-shell-command (command) (nth-value 1 (ccl:external-process-status (ccl:run-program "/bin/sh" (list "-c" command) :wait t :input nil :output nil))))
(defmacro glisp::defsubst (name args &body body) `(progn (declaim (inline ,name)) (defun ,name ,args .,body)))
;;; MP
(export 'glisp::mp/process-yield :glisp) (export 'glisp::mp/process-wait :glisp) (export 'glisp::mp/process-run-function :glisp) (export 'glisp::mp/make-lock :glisp) (export 'glisp::mp/current-process :glisp) (export 'glisp::mp/process-kill :glisp)
(defun glisp::mp/make-lock (&key name) (clim-sys::make-lock name))
(defmacro glisp::mp/with-lock ((lock) &body body) `(clim-sys:with-lock-held (,lock) ,@body))
(defun glisp::mp/process-yield (&optional process-to-run) (declare (ignore process-to-run)) (clim-sys:process-yield))
(defun glisp::mp/process-wait (whostate predicate) (clim-sys:process-wait whostate predicate))
(defun glisp::mp/process-run-function (name fun &rest args) (clim-sys:make-process (lambda () (apply fun args)) :name name))
(defun glisp::mp/current-process () (clim-sys:current-process))
(defun glisp::mp/process-kill (process) (clim-sys:destroy-process process))
(defun glisp::getenv (string) (ccl::getenv string))