krl@datlog.co.uk ( Kevin Long ) (02/19/88)
We have just taken delivery of a 386 UNIX system (guess whos) and there is a section in the 'C' compiler manual that says. "The compiler does not set explicit limits on the number and complexity of declarations, definitions, and statements ..... If the compiler encounters a function or program that is too complex to be processed, it displays an error message to that effect." and earlier "No matter what your source program contains these messages should not appear. If they occur, you should break your program into smaller modules" Great thinks I, a new fast machine to use... lets port conquest to it. But the damm thing won't compile. The 'C' compiler throws a wobbly and generates an internal error. Now I know that the conquest code is not the prettiest I've met but when the compiler couldn't cope with an expression with x>>3 in the middle of it, I changed it to x/8 and it compiled ! Also changing the size of variables from shorts to longs helped. I managed to reduce one of the conquest files to about 20 lines that refused to compile. Should the second entry in the manual read, "Break your compiler into smaller pieces, and send it back ?"