[m-dev.] the compiler can't bootstrap in Java

Zoltan Somogyi zoltan.somogyi at runbox.com
Fri Jul 12 15:36:48 AEST 2024


I am just testing a diff that changes the representation of builtin ops.
Since such a diff affects all the backends, I want to test it on all the backends
before sending it for review. But my attempt to do so in the java grade
failed for a reason unrelated to my diff: the code of some predicate
in options.m has become too large for the JVM to handle.

The recent changes to options.m, probably my additions of the options
controlling color, or Peter's addition of warn_redundant_coerce, probably
were the straw that broke the camel's back. Unfortunately, I have no idea
how to get the Java ecosystem to tell where *exactly* the actual problem is.
There is an error message with a context, but it seems wrong to me.
The message you get when you try to link the stage 2 compiler is:

Making Java class files
Mercury/javas/jmercury/libs__options.java:15: error: code too large
  private static final jmercury.runtime.TypeInfo_Struct pair__pti_pair_2__plain_libs__options__type_ctor_info_option_0__plain_builtin__type_ctor_info_string_0 = new jmercury.runtime.TypeInfo_Struct();

Line 15 is the first non-comment line in that file (which is attached),
but it does not seem like it can itself be considered too big in any respect.
Do any of you have any ideas for how to find out exactly *what* is too big,
so we can try to slim it down?

Since testing.mercurylang.org does not do Java bootchecks, we don't know
when the problem arose. If simply adding Java bootchecks would be too much
for that machine (which I think was the upshot of when we last discussed
that machine), then we should set things up so that tests of Java and C# alternate.

Zoltan.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libs__options.java.gz
Type: application/gzip
Size: 131704 bytes
Desc: not available
URL: <http://lists.mercurylang.org/archives/developers/attachments/20240712/052c3308/attachment-0001.gz>


More information about the developers mailing list