Re: Bug loading this file...
Gary Byers <[email protected]> Mon, 29 Jul 2002 08:09:41 -0600 (MDT)
| Newsgroups | gmane.lisp.openmcl.bugs |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 29 Jul 2002, Gary Byers wrote: > It looks like one of the "internal compiler changes that wasn't supposed to > be user-visible" in 0.12.1 is user-visible ... > > As a workaround (until that's fixed), you can get a lot farther by disabling > *SAVE-LOCAL-SYMBOLS* (it's set to T in an EVAL-WHEN near the top of the file). > > It's possible that fixing the *SAVE-LOCAL-SYMBOLS* mechanism will involve > disabling it for a release or two, and that it may behave a bit differently > in the future than it has traditionally (e.g., may only take effect under > certain compilation policies.) > That may happen (sooner or later), but the enclosed patch seems to keep things from blowing up in the meantime.
local-symbols-freed-lreg.diff
(text/plain, 927 B)
Index: compiler/PPC/ppc2.lisp
===================================================================
RCS file: /usr/local/publiccvs/ccl/compiler/PPC/ppc2.lisp,v
retrieving revision 1.20
diff -u -r1.20 ppc2.lisp
--- compiler/PPC/ppc2.lisp 18 Jun 2002 13:56:30 -0000 1.20
+++ compiler/PPC/ppc2.lisp 29 Jul 2002 14:07:59 -0000
@@ -4487,6 +4487,15 @@
(setf (vinsn-label-info v) (emit-lap-label v)))
(ppc2-expand-note id)))
(ppc2-expand-vinsn v)))
+ ;;; This doesn't have too much to do with anything else that's
+ ;;; going on here, but it needs to happen before the lregs
+ ;;; are freed. There really shouldn't be such a thing as a
+ ;;; var-ea, of course ...
+ (dolist (s *ppc2-recorded-symbols*)
+ (let* ((var (car s))
+ (ea (var-ea var)))
+ (when (typep ea 'lreg)
+ (setf (var-ea var) (lreg-value ea)))))
(free-logical-registers)
(ppc2-free-lcells))