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

making "2/16/90 Rainy Day PCL (beta 3)" with AKCL 1-457.



Hi Folks,
	akcl 1-457 will make the newest version of PCL.  Here are the hacks
to make it work.  This was tried on a Sun 3/60 server running OS4.0.3 with
the regular C compiler, and on a diskless client running 4.0.1 but using
the gnu CC 1.35 compiler.  It works fine, as far as I can tell, in both
cases.  Occasionally it segment faults but I have only seen this when I
have done something illegal (ie its handling of pcl errors is sometimes not
graceful).  It doesnt actually core dump, just returns to the lisp error
prompt. 

here's what to do:

0.  As advertised before, make kcl-patches.lisp be an empty file and get
    the kcl-low.lisp from rascal.ics.utexas.edu.
1.  (setq compiler::*compile-ordinaries* t) as bill schelter indicated in
    the ChangeLog for 1-457.
2.  DONT use the turbo-closure feature in kcl-low.lisp, ie hack the
    kcl-low.lisp from rascal.ics.utexas.edu as shown below  (if you leave
    turbo closures on it barfs with the error that the function
    tc-cclosure-env-nthcdr  cant be found.  This happens with the older pcl
    as well, so I think its a bug in 1-457.)
3.  Make a small change to fixup.lisp, as shown below.  The change is to
    inhibit fixup until load, rather than doing it during compile.
4.  I'm not sure what the nettiquete of this list is:  perhaps someone out
    there is already doing this, or something.  If you would like upgrades
    posted for future versions until this pcl stabilizes, let me know and I
    will continue to post them, otherwise I'll be quiet.

--- Simon

Changes to kcl-low.lisp (using utexas version as a base)

*** kcl-low.UTEXAS	Sun Feb 18 15:38:15 1990
--- kcl-low.lisp	Sun Feb 18 12:51:22 1990
***************
*** 65,83 ****
  
  
  ;;;
! ;;; iwmc-class-p
  ;;;
! (si:define-compiler-macro iwmc-class-p (x)
    (once-only (x)
      `(and (si:structurep ,x)
! 	  (eq (si:structure-name ,x) 'iwmc-class))))
  
  (dolist (inline '((si:structurep
  		    ((t) compiler::boolean nil nil "type_of(#0)==t_structure")
  		    compiler::inline-always)
! 		  (si:structure-name
! 		    ((t) t nil nil "(#0)->str.str_name")
! 		    compiler::inline-unsafe)))
    (setf (get (first inline) (third inline)) (list (second inline))))
  
  (setf (get 'cclosure-env 'compiler::inline-always)
--- 65,84 ----
  
  
  ;;;
! ;;; std-instance-p
  ;;;
! (si:define-compiler-macro std-instance-p (x)
    (once-only (x)
      `(and (si:structurep ,x)
! 	  (eq (si:structure-name ,x) 'std-instance))))
  
  (dolist (inline '((si:structurep
  		    ((t) compiler::boolean nil nil "type_of(#0)==t_structure")
  		    compiler::inline-always)
! 			))
! 		  ;; (si:structure-name
! 		    ;; ((t) t nil nil "(#0)->str.str_name")
! 		    ;; compiler::inline-unsafe)))
    (setf (get (first inline) (third inline)) (list (second inline))))
  
  (setf (get 'cclosure-env 'compiler::inline-always)
***************
*** 92,98 ****
  ;;;		if (x->cc.cc_data->d.m) break;
  ;;; and (push :turbo-closure *features*)
  
! #+akcl (if (fboundp 'si::allocate-growth) (pushnew :turbo-closure *features*))
  
  
  #+:turbo-closure
--- 93,99 ----
  ;;;		if (x->cc.cc_data->d.m) break;
  ;;; and (push :turbo-closure *features*)
  
! ;;; #+akcl (if (fboundp 'si::allocate-growth) (pushnew :turbo-closure *features*))
  
  
  #+:turbo-closure


Changes to fixup.lisp

*** fixup.ORIG	Sun Feb 18 15:38:44 1990
--- fixup.lisp	Sun Feb 18 12:51:34 1990
***************
*** 27,33 ****
  
  (in-package 'pcl)
  
! (eval-when (compile load eval)
    (fix-early-generic-functions)
    (setq *boot-state* 'complete))
  
--- 27,33 ----
  
  (in-package 'pcl)
  
! (eval-when (load eval)
    (fix-early-generic-functions)
    (setq *boot-state* 'complete))