What version of cmucl is haskell intended for? I'm having some trouble
putting it up under the current version 16e.
In support/cl-support/cl-init.lisp
(namestring (make-pathname :type (c:backend-fasl-file-type c:*backend*)))
is illegal.
-------------------------------------------------------------------------------
(namestring (make-pathname :type (c:backend-fasl-file-type c:*backend*)))
Error in function COMMON-LISP::UNPARSE-UNIX-FILE:
Cannot specify the type without a file: #<Unprintable pathname:
Host=#<COMMON-LISP::UNIX-HOST
{10BD27D}>,
Device=NIL,
Directory=(),
Name=NIL,
Type="sparcf",
Version=NIL>
-------------------------------------------------------------------------------
I rewrote the file loading to use the HASKELL environment variable,
and have appended the patch to cl-init.lisp below.
Also in cl-support/cl-definitions.lisp
-------------------------------------------------------------------------------
(describe 'extensions:ignorable)
Reader error at 774 on #<Synonym Stream to *TERMINAL-IO*>:
The symbol "IGNORABLE" is not external in the EXTENSIONS package.
Error flushed ...
-------------------------------------------------------------------------------
I patched it to do the same as #+lucid.
Finally, I don't understand how the .scm files can be loaded without changing
the *readtable* to be the *mumble-readtable*:
-------------------------------------------------------------------------------
Reader error at 2647 on #<Stream for file
"/usr5/oo/src/haskell/haskell-1b/support/compile.scm">:
No dispatch function defined for #\T.
Restarts:
0: [CONTINUE] Return NIL from load of
"/usr5/oo/src/haskell/haskell/support/compile.scm".
1: Return NIL from load of
"/usr5/oo/src/haskell/haskell/support/shared-init.scm".
2: Return NIL from load of
"/usr5/oo/src/haskell/haskell/support/system.scm".
3: Return NIL from load of
"/usr5/oo/src/haskell/haskell/support/cl-support/cl-init".
4: Return NIL from load of "/tmp/cmu18922".
5: Return NIL from load of #<Stream for file
"/afs/cs/project/clisp/src/beta/tools/worldload.lisp">.
6: [ABORT ] Return to Top-Level.
Debug (type H for help)
(COMMON-LISP::%READER-ERROR
#<Stream for file "/usr5/oo/src/haskell/haskell-1b/support/compile.scm">
"No dispatch function defined for ~S."
#\T)
0]
-------------------------------------------------------------------------------
In cl-init.lisp, shouldn't it be
(eval-when (eval compile load)
(setq *readtable* *mumble-readtable*)
(setf *package* (find-package "MUMBLE-USER")))
I've appended the patches below that fix things.
Mike.
===============================================================================
*** cl-definitions.lisp.dst Wed Aug 19 20:47:50 1992
--- cl-definitions.lisp Fri Sep 11 15:47:18 1992
***************
*** 151,157 ****
(define-mumble-import mumble::ignorable))
#+cmu
! (define-mumble-import extensions:ignorable)
#-(or lucid cmu)
(missing-mumble-definition mumble::ignorable)
--- 151,159 ----
(define-mumble-import mumble::ignorable))
#+cmu
! (progn
! (proclaim '(declaration mumble::ignorable))
! (define-mumble-import mumble::ignorable))
#-(or lucid cmu)
(missing-mumble-definition mumble::ignorable)
*** cl-init.lisp.dst Wed Aug 19 20:47:51 1992
--- cl-init.lisp Fri Sep 11 15:55:20 1992
***************
*** 22,35 ****
;;; Load up definitions
! (defvar *implementation-directory* "/net/nebula/homes/systems/hcompile/Y2.0/")
(defvar *lisp-source-file-type* ".lisp")
(defvar *lisp-binary-file-type*
#+lucid
(namestring (make-pathname :type (car lcl:*load-binary-pathname-types*)))
#+cmu
! (namestring (make-pathname :type (c:backend-fasl-file-type c:*backend*)))
#-(or lucid cmu)
(error "Don't know how to initialize *LISP-BINARY-FILE-TYPE*.")
)
--- 22,59 ----
;;; Load up definitions
! #+cmu
! (defun MAKE-KEYWORD (x)
! "Makes a keyword out of a symbol."
! (cond ((keywordp x) x)
! ((stringp x) (intern x 'keyword))
! (t (intern (symbol-name x) 'keyword))))
+ (defun get-environment (env-string)
+ "Returns the Unix environment variable associated with its argument,
+ which can be a string, symbol or keyword. If none if found, nil is
+ returned; if one is found, the value is returned as a string."
+ #+allegro (excl::get-environ env-string)
+ #+lucid (environment-variable env-string)
+ #+cmu
+ (let ((answer (assoc (make-keyword env-string) ext::*environment-list*)))
+ (if answer (cdr answer) nil))
+ )
+
+ (defvar *implementation-directory*)
+
+ (eval-when (load eval compile)
+ (setq *implementation-directory* (get-environment "HASKELL"))
+ (unless (string= (subseq (reverse *implementation-directory*) 0 1) "/")
+ (setq *implementation-directory* (concatenate
+ 'string *implementation-directory* "/")))
+ )
(defvar *lisp-source-file-type* ".lisp")
(defvar *lisp-binary-file-type*
#+lucid
(namestring (make-pathname :type (car lcl:*load-binary-pathname-types*)))
#+cmu
! (concatenate 'string "." (c:backend-fasl-file-type c:*backend*))
#-(or lucid cmu)
(error "Don't know how to initialize *LISP-BINARY-FILE-TYPE*.")
)
***************
*** 62,70 ****
;;; enough to make it practical to compile things all the time.)
(eval-when (eval compile load)
(setf *package* (find-package "MUMBLE-USER")))
! (load "/net/nebula/homes/systems/hcompile/Y2.0/support/system")
(compile-haskell)
(write-line "Remember to do (in-package \"MUMBLE-USER\")!")
--- 86,95 ----
;;; enough to make it practical to compile things all the time.)
(eval-when (eval compile load)
+ (setq *readtable* *mumble-readtable*)
(setf *package* (find-package "MUMBLE-USER")))
! (load "$HASKELL/support/system")
(compile-haskell)
(write-line "Remember to do (in-package \"MUMBLE-USER\")!")