[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