[Nickle]twixt bug?

Bart Massey nickle@nickle.org
Mon, 15 Jul 2002 01:38:50 -0700


------- =_aaaaaaaaaa0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <26634.1026722325.1@bart.cs.pdx.edu>

This may be the same bug that I reported before and Keith
has apparently fixed but not yet checked into CVS: I don't
know.  I've got it cut down to this, but haven't chased it
further, and I'm sleepy.

Invoke the attached script as
  ./bug.5c
On my machine, it reports

  nickle: sched.c:504: ContinuationMark: Assertion
  `!continuation->pc || ((((InstPtr) (continuation->obj +
  1)) + ( 0)) <= continuation->pc && continuation->pc <=
  (((InstPtr) (continuation->obj + 1)) + (
  ((continuation->obj)->used - 1))))' failed.

It is very sensitive to the stack state: I couldn't cut it
down further.  I got a stack backtrace with gdb: the garbage
collector was trying to collect an apparently broken
TwixtMark.

It seems like the twixt continuation stuff is still a bit
messed up, but I'll let Keith poke at it before I try
again...

	Bart


------- =_aaaaaaaaaa0
Content-Type: text/plain; name="bug.5c"; charset="us-ascii"
Content-ID: <26634.1026722325.2@bart.cs.pdx.edu>

#!/usr/bin/env nickle
import File;

int main() {
    string destcodes = sprintf("/tmp/%c.codes", 'a');
    twixt(file sf = open("/dev/zero", "r"); close(sf)) {
	string word;
	while (fscanf(sf, "%s\n", &word) == 1) {
	}
    }
    return 0;
}

main();

------- =_aaaaaaaaaa0--