stan@sdba.UUCP (Stan Brown) (05/15/88)
Subject: perl compilation problem Newsgroups: comp.sources.d Distribution: na Hi; I am having a problem getting perl to compile on my machine. For information sake the machine that I am working on is a Fortune 32:16 (a 68000) box. The error that I am geting occcurs during the compliation of perl.c and is something lik: ./perly.c lin 2807 compiler error no table entry fo SASG The lines of code of interest are: for (j = 1; ; ) { arg[j++] = node[1]; ^^^^^^^^^^^^^^^^^^^ if (j >= i) { However I suspect that the problem may actuly lie in the for statement. Anybody have any thoughts on this one ? -- Stan Brown S. D. Brown & Associates 404-292-9497 gatech!sdba!stan "vi forever"
lwall@devvax.JPL.NASA.GOV (Larry Wall) (05/17/88)
In article <240@sdba.UUCP> stan@sdba.UUCP (Stan Brown) writes:
: I am having a problem getting perl to compile on my machine.
...
: The lines of code of interest are:
:
: for (j = 1; ; ) {
: arg[j++] = node[1];
: ^^^^^^^^^^^^^^^^^^^
: if (j >= i) {
This problem was pointed out to me by somebody--in version 2.0 the autoincrement
is separated out to the next statement to circumvent the problem.
Larry Wall
lwall@jpl-devvax.jpl.nasa.gov
chip@ateng.UUCP (Chip Salzenberg) (05/17/88)
In article <240@sdba.UUCP> stan@sdba.UUCP (Stan Brown) writes: >I am having a problem getting perl to compile on my machine. >The lines of code of interest are: > > for (j = 1; ; ) { > arg[j++] = node[1]; > ^^^^^^^^^^^^^^^^^^^ > if (j >= i) { My Xenix system (Microsoft C) had the same problem. Change the offending line to two lines: arg[j] = node[1]; ++j; "Feeling much better." -- Chip Salzenberg "chip@ateng.UU.NET" or "codas!ateng!chip" A T Engineering My employer may or may not agree with me. "I must create a system or be enslaved by another man's." -- Blake
chris@mimsy.UUCP (Chris Torek) (05/17/88)
In article <240@sdba.UUCP> stan@sdba.UUCP (Stan Brown) writes: >... the machine that I am working on is a Fortune 32:16 >(a 68000) box. The error that I am geting occcurs during the compliation >of perl.c and is something like: > ... compiler error: no table entry for SASG Ah yes, everybody's favourite internal PCC error (the fun one is always `for op REG') :-) . SASG is almost certainly STASG, STructure ASsiGnment. It means someone goofed, either leaving an entry out of table.c, or doing something in the code generator that gets order() stuck with nowhere to go. > arg[j++] = node[1]; > ^^^^^^^^^^^^^^^^^^^ This is somewhat curious, as delay() should have deferred the j++. But who knows what lurks in the heart of an ancient PCC. At any rate, there is no way to fix this sort of thing without compiler sources, and I imagine those are hard to get (did not Fortune quit making 32:16s?). About all you can do is experiment with rephrasing the line of code that triggers the compiler bug. -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163) Domain: chris@mimsy.umd.edu Path: uunet!mimsy!chris