From mboxrd@z Thu Jan 1 00:00:00 1970 From: erik quanstrom Date: Sat, 31 Aug 2013 11:11:32 -0400 To: 9fans@9fans.net Message-ID: <399e128253888fad1131901a3e8b6672@kw.quanstro.net> In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Subject: Re: [9fans] Building Go/386 Topicbox-Message-UUID: 77cb8b14-ead8-11e9-9d60-3106f5b1d025 > 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