Update of /cvsroot/sbcl/sbcl
In directory usw-pr-cvs1:/tmp/cvs-serv12243
Modified Files:
BUGS NEWS README version.lisp-expr
Log Message:
0.7.3.6:
merged APD bug 147 fix (sbcl-devel 2002-04-27)
Index: BUGS
===================================================================
RCS file: /cvsroot/sbcl/sbcl/BUGS,v
retrieving revision 1.132
retrieving revision 1.133
diff -C2 -d -r1.132 -r1.133
*** BUGS 19 Apr 2002 16:27:19 -0000 1.132
--- BUGS 30 Apr 2002 01:23:23 -0000 1.133
***************
*** 1135,1186 ****
by zero, etc.) and of course the "How can this be?" should be fixable.
- 147:
- (reported by Alexey Dejneka sbcl-devel 2002-01-28)
- Compiling a file containing
- (deftype digit () '(member #\1))
- (defun parse-num (string ind)
- (flet ((digs ()
- (let (old-index)
- (if (and (< ind ind)
- (typep (char string ind) 'digit))
- nil))))))
- in sbcl-0.7.1 causes the compiler to fail with
- internal error, failed AVER: "(= (LENGTH (BLOCK-SUCC CALL-BLOCK)) 1)"
- This problem seems to have been introduced by the sbcl-0.pre7.* compiler
- changes, since 0.pre7.73 and 0.6.13 don't suffer from it. A related
- test case is
- (defun parse-num (index)
- (let (num x)
- (flet ((digs ()
- (setq num index))
- (z ()
- (let ()
- (setq x nil))))
- (when (and (digs) (digs)) x))))
- In sbcl-0.7.1, this second test case failed with the same
- internal error, failed AVER: "(= (LENGTH (BLOCK-SUCC CALL-BLOCK)) 1)"
- After the APD patches in sbcl-0.7.1.2 (new consistency check in
- TARGET-IF-DESIRABLE, plus a fix in meta-vmdef.lisp to keep the
- new consistency check from failing routinely) this second test case
- failed in FIND-IN-PHYSENV instead. Fixes in sbcl-0.7.1.3 (not
- closing over unreferenced variables) made this second test case
- compile without error, but the original test case still fails.
-
- Another way to get rid of the DEFTYPE without changing the symptom
- of the bug is
- (defvar *ch*)
- (defun parse-num (string ind)
- (flet ((digs ()
- (let ()
- (if (and (< ind ind)
- (sb-int:memq *ch* '(#\1)))
- nil))))))
- In sbcl-0.7.1.3, this fails with
- internal error, failed AVER: "(= (LENGTH (BLOCK-SUCC CALL-BLOCK)) 1)"
- The problem occurs while the inline expansion of MEMQ,
- #<LAMBDA :%DEBUG-NAME "varargs entry point for SB-C::.ANONYMOUS.">
- is being LET-converted after having its second REF deleted, leaving
- it with only one entry in LEAF-REFS.
-
148:
In sbcl-0.7.1.3 on x86, COMPILE-FILE on the file
--- 1135,1138 ----
Index: NEWS
===================================================================
RCS file: /cvsroot/sbcl/sbcl/NEWS,v
retrieving revision 1.121
retrieving revision 1.122
diff -C2 -d -r1.121 -r1.122
*** NEWS 24 Apr 2002 19:57:24 -0000 1.121
--- NEWS 30 Apr 2002 01:23:23 -0000 1.122
***************
*** 1103,1106 ****
--- 1103,1111 ----
Martin Atzmueller)
+ changes in sbcl-0.7.4 relative to sbcl-0.7.3:
+ * bug 147 fixed: The compiler preserves its block link/count
+ invariants more correctly now so that it doesn't crash. (thanks
+ to Alexey Dejneka)
+
planned incompatible changes in 0.7.x:
* When the profiling interface settles down, maybe in 0.7.x, maybe
Index: README
===================================================================
RCS file: /cvsroot/sbcl/sbcl/README,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** README 26 Apr 2002 14:40:47 -0000 1.2
--- README 30 Apr 2002 01:23:23 -0000 1.3
***************
*** 28,37 ****
for OpenBSD:
! It's reported for CMU CL (by Darren Bane on the comp.lang.lisp newsgroup,
! 2002-04-22) that OpenBSD 3.0 has stricter ulimit values, and/or enforces
! them more strictly, than its predecessors, and so CMU CL's initial mmap()
! won't work unless you increase the limit on the data segment, e.g. with
! ulimit -S -d 524288
! before you run CMU CL. The same is probably true of SBCL, but hasn't been
! tested yet. (As of sbcl-0.7.3, SBCL has only been tested on OpenBSD 2.9
! and earlier.)
--- 28,39 ----
for OpenBSD:
! OpenBSD 3.0 has stricter ulimit values, and/or enforces them more
! strictly, than its predecessors. Therefore SBCL's initial mmap()
! won't work unless you increase the limit on the data segment from
! the OpenBSD defaults, e.g. with
! ulimit -S -d 1000000
! before you run SBCL. Otherwise SBCL fails with a message like
! "ensure_space: failed to validate xxxxxxx bytes at yyyyy". (SBCL
! is just allocating this huge address space, not actually using this
! huge memory at this point. OpenBSD <3.0 had no problem with this,
! but OpenBSD 3.0 is less hospitable.)
Index: version.lisp-expr
===================================================================
RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v
retrieving revision 1.399
retrieving revision 1.400
diff -C2 -d -r1.399 -r1.400
*** version.lisp-expr 26 Apr 2002 20:54:58 -0000 1.399
--- version.lisp-expr 30 Apr 2002 01:23:23 -0000 1.400
***************
*** 19,21 ****
;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
! "0.7.3.5"
--- 19,21 ----
;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
! "0.7.3.6"
|