Bugs and patches: version 3.4

Listed below are the known bugs and patches or workarounds for version 3.4 of SRC Modula-3:

There is a natural tension between the frequency of new releases and the number of patches that must be applied to an old release. We try to make the right choice. If you have any wisdom or advice on how this tradeoff should be made, please send e-mail to m3-request@src.dec.com.


gcc optimizer (Tick.m3)

The combination of the gcc optimizer and the m3 IL -> gcc tree translator is buggy. It generates bad code for:

   Word.LT (16_80000000, x)
This code exists in the the Tick implementation.

Work-around:

Don't turn on the optimizer.


missing debugging info

The compiler front-end doesn't pass the following information to the back-end and therefore never gets into the debugger:

Work-around:

None.


bad floating-point values

The compiler front-end doesn't use the recommended Lex interface to read floating point values. Hence, very large, very small and very precise values may not be read correctly by the compiler.

The front-end uses host floating-point arithmetic to fold floating-point constants -- even when being used as a cross-compiler. Hence, cross-compilers may not compute the correct constants.

The front-end doesn't generate IEEE infinities for FIRST(REAL) and LAST(REAL).

Work-around:

None.


Trestle crashes under OpenWindows 3.0 (SPARC)

From: goldberg@parc.xerox.com (David Goldberg)

Trestle works fine on Openwin-2.0. There is a bug in the xnews openwin 3.0 server. If you are using 3.0, trestle will work if you make the following change to XClient.m3:

        (* XXX: Workaround for bug in openwin-3.0 server *)

        (*
        X.XGrabKey(trsl.dpy, X.AnyKey, X.AnyModifier, ur.w, X.True,
          X.GrabModeAsync, X.GrabModeAsync);
        *)

        VAR min, max: Ctypes.int;
        BEGIN
          X.XDisplayKeycodes(trsl.dpy, LOOPHOLE (ADR(min), Ctypes.int_star),
                                       LOOPHOLE (ADR(max), Ctypes.int_star));
          FOR i := min TO max DO
            X.XGrabKey(trsl.dpy, i, X.AnyModifier, ur.w, X.True,
                       X.GrabModeAsync, X.GrabModeAsync);
          END;
        END;


GC failure on SunOS 4.1.1 (SPARC)

From: chase@centerline.com (David Chase)

"The VM-synchronized garbage collector does not work on SunOS 4.1.1 because of an OS bug. Install a newer version of SunOS (e.g., 4.1.3_U1) if you want to fix this (and many other bugs)."


[Modula-3 home page]

m3-request@src.dec.com
Last modified on Mon Sep 25 18:30:30 PDT 1995 by heydon
     modified on Wed Jan 11 16:14:26 PST 1995 by kalsow