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

Peter Wang novalazy at gmail.com
Mon Jul 15 11:23:11 AEST 2024


On Sun, 14 Jul 2024 20:21:36 +1000 "Zoltan Somogyi" <zoltan.somogyi at runbox.com> wrote:
> 
> Peter, you said that breaking up the original 8400+ line static block worked for you;
> how exactly did you do that breakup?

Here is the change as a diff:

--- libs__options.java.orig	2024-07-15 11:18:31.544900807 +1000
+++ libs__options.java	2024-07-15 11:20:22.118802822 +1000
@@ -786,7 +786,7 @@
   public static final jmercury.runtime.TypeCtorInfo_Struct libs__options__type_ctor_info_option_category_0 = new jmercury.runtime.TypeCtorInfo_Struct();
   private static final jmercury.runtime.TypeInfo_Struct tree234__ti_tree234_2libs__options__type_ctor_info_option_0getopt__type_ctor_info_option_data_0 = new jmercury.runtime.TypeInfo_Struct();
   public static final jmercury.runtime.TypeCtorInfo_Struct libs__options__type_ctor_info_option_table_0 = new jmercury.runtime.TypeCtorInfo_Struct();
-  static {
+  private static void init1() {
     //
     //
     //
@@ -4570,6 +4570,8 @@
       "par_loop_control_preserve_tail_recursion",
       744
     );
+  }
+  private static void init2() {
     //
     libs__options__enum_ordinal_ordered_option_0[0] =
       libs__options.libs__options__enum_functor_desc_option_0_0;
@@ -9272,6 +9274,10 @@
       null
     );
   }
+  static {
+    init1();
+    init2();
+  }

 // Scalar common data
   private static final jmercury.runtime.TypeInfo_Struct[] MR_scalar_common_1 = new jmercury.runtime.TypeInfo_Struct[4];

Peter


More information about the developers mailing list