[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Scigraph



At 14:41 8/17/93 -0500, Sheldon S. Ball wrote:
>;;Below is a section of code from load-dwim.lisp, a file from the Scigraph
>;;scientific graphics application contributed to cambridge.apple.com by BBN.
>;;How can MCL-CLIM be added to the list of platforms supported?  In the case
>;;of file-type-for-sources, adding a line
>;; #+Coral "lisp"
>;;should work.
>;;I'm not entirely sure about fixes to file-type-for-binaries &
>;;suggest-bin-directory.
>
I would use #+MCL instead of #+Coral.  Also, there are two undocumented variables
*.fasl-pathname* and *.lisp-pathname* which contain pathnames with just the
type fields filled in.  You can call pathname-type on these to get the string equivalents
(the defaults are "fasl" and "lisp").  So my suggestion on how to change these three
functions:

(defun file-type-for-sources ()
  #+MCL #.(pathname-type *.lisp-pathname*)
  #+genera "LISP"
  #+unix "lisp"
  #+(and (not genera) (not unix)) (error "Not yet implemented."))

(defun file-type-for-binaries ()
  #+MCL #.(pathname-type *.fasl-pathname*)
  #+genera                   si:*default-binary-file-type*
  #+allegro                  #.(pathname-type (compile-file-pathname "foo"))
  #+lucid                    (car lcl:*load-binary-pathname-types*)
  #+(and (not genera)
         (not allegro)
         (not lucid))
  (error "Not yet implemented."))

(defun suggest-bin-directory (&optional (base *load-pathname*)
                                        (prefix "BIN-"))
  ;; The number of different binaries you must have is
  ;; the cross product of the instruction set and the gui.
  (let ((instruction-set
         #+MCL              "MCL"
         #+GENERA           "GENERA"
         #+LUCID            "LUCID"
         #+ALLEGRO          "ALLEGRO")
        (GUI
         #+(and mcl (not clim)) "MAC"
         #+(and genera (not clim)) "DW"
         #+clim-0.9                "CLIM-0-9"
         #+clim-1.0                "CLIM-1-0"
         #+clim-2                  "CLIM-2"))
    (namestring (make-pathname
                 :directory
                 (append
                  (if base (pathname-directory base) '(:relative)) 
                  (list (string-downcase
                         (format nil "~A~A-~A"
                                 prefix 
                                 instruction-set
                                 gui))))
                 :name :wild))))