[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bugs, bugs, bugs



OK.  Now that I've read the usenix paper, I have some idea of what es is about.
Up until now, I'd been basically ignoring es, but since I've just been teaching
myself ML, it seemed like a good idea to play with es too.  But guess what?

A BUG!

: chao:p4; what es
es:
	es version 0.74: 10 Jan 1992
: chao:p4; prompt=(': es; ' ';; ') ./es
: es; . path-cache.es
: es; fn-echo=()
: es; whatis echo
gc.c:293: assertion failed (tag != ((void *)0))
iot instruction--core dumped

Another time (with readline compiled in):
: es; . path-cache.es
: es; fn-echo=()
: es; whatis echo
gc.c:299: assertion failed (tag->magic == TAGMAGIC)
iot instruction--core dumped

path-cache.es is figure 2 from the usenix paper:
# Path caching.

let (search = $fn-%pathsearch) {
	fn %pathsearch prog {
		let (file = <>($search $prog)) {
			if {~ $#file 1 && ~ $file /*} {
				echo cached $prog
				path-cache = $path-cache $prog
				fn-$prog = $file
			}
		return $file
		}
	}
}

fn recache {
	for (i = $path-cache)
		fn-$i =
	path-cache =
}

This is on a Sun SparcStation 1 under SunOS 4.1.1, compiled with gcc -V 2.3.3 -O -g.

	J