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

Symbolics carwash and MacIvory mods



	First, some timings for the carwash program on symbolics systems:
--# cars--	--3650 (no fpa)--	--MacIvory--
10		0.4 sec			0.65 sec
100		9.8 sec			18.4 sec

Notes:
	1.  Both machines are without Rick Harris' mods... I tried them
and they actually slowed things down slightly on symbolics.
	2. MacIvory paging is quite expensive - the 100 car case time
includes ~ 1.5 secs memory management overhead!

Included at the end are the only mods I needed to make to get clos
working on the MacIvory. This is a very preliminary port, mostly assuming
that the ivory is a 3600 (VERY wrong), so a careful conversion (i.e. a
good ivory-low.lisp) should be better.
	-mike thome (mthome@bbn.com)

;;; 3600-low.lisp
(defun set-function-name-1 (fn ignore new-name)	;changed to use list form (mt 881026)
  (cond ((or (funcallable-instance-p fn)
	     (si:lexical-closure-p fn))
	 (let ((env (si:lexical-closure-environment fn)))
	   (setf (gethash env dbg:*closure-names*) new-name)))	   
	((compiled-function-p fn)
	 (let* ((cca (si:compiled-function-cca fn))
		(debug
		  #-imach (si:%p-contents-offset cca 2)
		  #+imach (sys:cca-extra-info cca)))
	   (setf (car debug) new-name)))
	((and (listp fn)
	      (eq (car fn) 'si:digested-lambda))
	 (let ((debug (caddr fn)))
	   (setf (caddr fn) (cons new-name (cdr debug))))))
  fn)

;;; defsys.lisp
(defvar *port*
        '(#+Genera               Genera
          #+Genera-Release-6     Rel-6
          #+Genera-Release-7-1   Rel-7-1
          #+Genera-Release-7-2   Rel-7-2
          #+Genera-Release-7-3   Rel-7-3
	  #+imach                Ivory
          #+Lucid                Lucid
          #+Xerox                Xerox
	  #+Xerox-Lyric          Xerox-Lyric
	  #+Xerox-Medley         Xerox-Medley
          #+TI                   TI
          #+(and dec vax common) Vaxlisp
          #+KCL                  KCL
          #+excl                 excl
          #+:CMU                 CMU
          #+HP                   HP
          #+:gclisp              gclisp
          #+pyramid              pyramid
          #+:coral               coral))

(defvar *pathname-extensions*
  (let ((files-renamed-p t)
        (proper-extensions
          (car
           '(#+(and Genera (not imach))          ("lisp"  . "bin")
	     #+(and Genera imach)                ("lisp"  . "ibin")
             #+(and dec common vax (not ultrix)) ("LSP"   . "FAS")
             #+(and dec common vax ultrix)       ("lsp"   . "fas")
             #+KCL                               ("lsp"   . "o")
             #+Xerox                             ("lisp"  . "dfasl")
             #+(and Lucid MC68000)               ("lisp"  . "lbin")
             #+(and Lucid VAX)                   ("lisp"  . "vbin")
             #+(and Lucid Prime)                 ("lisp"  . "pbin")
	     #+(and Lucid SUNRise)               ("lisp"  . "sbin")
	     #+(and Lucid SPARC)                 ("lisp"  . "sbin")
             #+(and Lucid IBM-RT-PC)             ("lisp"  . "bbin")
             #+(and excl allegro)                ("lisp"  . "fasl")
	     #+(and excl (not allegro))          ("cl"    . "fasl")
             #+:CMU                              ("slisp" . "sfasl")
             #+HP                                ("l"     . "b")
             #+TI ("lisp" . #.(string (si::local-binary-file-type)))
             #+:gclisp                           ("LSP"   . "F2S")
             #+pyramid                           ("clisp" . "o")
             #+:coral                            ("lisp"  . "fasl")
             ))))
    (cond ((null proper-extensions) '("l" . "lbin"))
          ((null files-renamed-p) (cons "lisp" (cdr proper-extensions)))
          (t proper-extensions))))

;;; also, the defsystem needs to load rel-7-2-patches when on an ivory (we use symbolics
;;; defsystem forms instead of the provided system).