[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))