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\")!")

Reply via email to