Re: sbcl build host breakage
Gary Byers <[email protected]> Thu, 8 Sep 2005 11:31:01 -0600 (MDT)
| Newsgroups | gmane.lisp.openmcl.bugs |
|---|---|
| Message-ID | <[email protected]> |
On Thu, 8 Sep 2005, bryan o'connor wrote:
> openmcl fails as build host for sbcl again.
>
> a hash table returns a negative hash-table-count that fails
> an assert in close-fasl-output (src/compiler/dump.lisp).
PUTHASH needs to increment (NHASH.COUNT HASH) if it replaces
a deleted entry with a new key/value pair.
Right around line 772 of l0-hash.lisp, just before the comment
";; Adjust deleted count", it should do:
(incf (nhash.count hash)) ; or some variant
A simpler test:
(let* ((hash (make-hash-table)))
(dotimes (i 100)
(setf (gethash i hash) i))
(format t "~&after additions, count should be 100, is ~d"
(hash-table-count hash))
(remhash 17 hash)
(format t "~&after deletion, count should be 99, is ~d"
(hash-table-count hash))
(setf (gethash 17 hash) 17)
(format t "~&after reinsertion, count should be 100, is ~d"
(hash-table-count hash)))
>
> i tested the theory that it's just a bookkeeping bug by
> removing the assert. the build continues on but breaks
> further down the line with some other code that is using a
> different hash table. (circularity detection in uncross,
> src/code/uncross.lisp)
Do you remember what the error/complaint is in the latter case ?
>
> the two may be related.. it's hard to tell at the moment.
>
> my sbcl tree is 0.9.4.52 (current of today) and this is
> with openmcl 1.0-pre-050907 (DarwinPPC32)
>
> ...bryan
>
> _______________________________________________
> Bug-openmcl mailing list
> [email protected]
> http://clozure.com/mailman/listinfo/bug-openmcl
>
>