> My gut says this is a Plan 9 problem: something tickled a bug in 8c.
> I hope someone here can diagnose the issue.

sure.  this is not a bug per ce.  it's a limitation of 8c's technique
for registerizing vlongs given the restricted register set of the 386.

8c takes an initial stab at registerizing expressions.  if it needs
more than AX-DI, it can't be compiled without breaking down the
expressions a bit.  spilling is not implemented at this level.

since even ghostscript doesn't get into this state, i'd be interested
in the line of code (and types of the variables) that hits this fatal
condition.

imho the diag() abort() should be replaced with a fatal(), since
-X will give anyone interested a broken process to debug, and leave
anyone not interested alone.

> I needed to modify /sys/include/bio.h as well as
> /sys/src/libbio/^(bgetc.c bputc.c) to get this far in the Go build; I
> have nothing against adding Bgetle2(), Bgetle4(), Bputle2() and
> Bputle4() to libbio, I do wish I had seen that coming.
> 
> We do seem to be losing ground to the Go developers, I have a feeling
> that it is going to be hard to catch up.

perhaps chasing the tip isn't going to work.

- erik

Reply via email to