Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!olivea!decwrl!pa.dec.com!src.dec.com!Dick Orgass From: orgass+@rchland.ibm.com (Dick Orgass) Newsgroups: comp.lang.modula3 Subject: SRC Modula-3 V 1.6 for IBM RISC 6000 Message-ID: <8byD=LM91E448uXVgw@rchland.ibm.com> Date: 2 Apr 91 21:08:39 GMT Reply-To: "Dick Orgass" Lines: 75 To: m3 Many thanks to Eric Muller for a good new compiler and for all his help with ports to IBM platforms. There are three minor details to fix in the 1.6 distribution for RISC 6000: (1) system/runtime/M3Machine.h.IBMR2 The definitions of PRIVATE, IMPORT and EXPORT that begin on line 18 should have the word volatile deleted so that they read as follows: #define PRIVATE static #define IMPORT extern #define EXPORT because the system C compiler does not accept declarations of functions whose return value is modified by volatile. This change does not preserve the intent of these declarations, variables that are private, imported or exported should be declared volatile but the return value of functions should not be volatile. However, preserving the original intent requires a modification of the compiler itself. (2) system/runtime/M3Runtime.h Comment out the extern declarations for TC_* that begins on line 22 of the file so that these identifiers are not multiply defined. The compiler emits a second declaration (with the volatile modifier) when these identifiers are used. The system C compiler rejects the redeclaration. (3) build util/mkexport before building the library The program mkexport is used to generate the export list for the shared libraries that come with SRC Modula-3 including the core library. It is not built from the top level make file. Before starting the system build, compile mkexport as follows: cd util bsdcc -o mkexport mkexport.c Instructions for adding bsdcc to your system are at the top of file util/config.dist-IBMR2. Known RISC 6000 bugs With the above corrections, the distributed system passes all test cases and runs all programs except the following: (1) tests/ptests/p083 There is an undefined symbol when the test program is linked; Eric reports that the link succeeds on DEC platforms. (2) demos/pickles/Graph4Test This pickle test program terminates with an unhandled exception Pkl.Error instead of terminating correctly. (3) tools/pp/m3pp The pretty printer is not working correctly. When tools/pp/Main.m3 is formatted, there is an assert failure at line 588 of Formatter.m3; when tools/pp/Parse.i3 is formatted, there is an assert failure at line 913 of Formatter.m3. Similar problems come up when formatting other Modula-3 source files. Dick