c_src : Regenerated c_src to prevent use of String contructors
[nit.git] / c_src / compiling___compiling_global._sep.c
index bc3137e..a611688 100644 (file)
@@ -1,5 +1,6 @@
 /* This C file is generated by NIT to compile module compiling___compiling_global. */
 #include "compiling___compiling_global._sep.h"
+static const char LOCATE_compiling___compiling_global___Program___compile_tables_to_c[] = "compiling_global::Program::compile_tables_to_c";
 void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
@@ -31,7 +32,7 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:27 */
+  /* compiling/compiling_global.nit:27 */
   fra.me.REG[2] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___mhe(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -41,23 +42,23 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
   fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[2])(fra.me.REG[2]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___compiling_global___Program___compile_tables_to_c_1));
   CALL_program___Program___with_each_live_local_classes(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_compiling___compiling_global___Program___compile_tables_to_c_2));
-  /* ./compiling//compiling_global.nit:36 */
+  /* compiling/compiling_global.nit:36 */
   if (!once_value_4) {
     fra.me.REG[2] = BOX_NativeString("classtable_t TAG2VFT[4] = {NULL");
     REGB0 = TAG_Int(31);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_4 = fra.me.REG[2];
     register_static_object(&once_value_4);
   } else fra.me.REG[2] = once_value_4;
   fra.me.REG[2] = fra.me.REG[2];
   fra.me.REG[2] = NEW_Buffer_standard___string___Buffer___from(fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:37 */
+  /* compiling/compiling_global.nit:37 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_5) {
     fra.me.REG[4] = BOX_NativeString("Int");
     REGB0 = TAG_Int(3);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_5 = fra.me.REG[4];
     register_static_object(&once_value_5);
   } else fra.me.REG[4] = once_value_5;
@@ -66,7 +67,7 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
   if (!once_value_6) {
     fra.me.REG[4] = BOX_NativeString("Char");
     REGB0 = TAG_Int(4);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_6 = fra.me.REG[4];
     register_static_object(&once_value_6);
   } else fra.me.REG[4] = once_value_6;
@@ -75,26 +76,26 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
   if (!once_value_7) {
     fra.me.REG[4] = BOX_NativeString("Bool");
     REGB0 = TAG_Int(4);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_7 = fra.me.REG[4];
     register_static_object(&once_value_7);
   } else fra.me.REG[4] = once_value_7;
   fra.me.REG[4] = fra.me.REG[4];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:271 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:272 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:273 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -106,33 +107,33 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:242 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:273 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
+        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:725 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
-      /* ./compiling//compiling_global.nit:38 */
+      /* compiling/compiling_global.nit:38 */
       fra.me.REG[6] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
-      fra.me.REG[7] = CALL_standard___symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
+      fra.me.REG[7] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
       REGB1 = CALL_metamodel___abstractmetamodel___MMModule___has_global_class_named(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
       if (UNTAG_Bool(REGB1)) {
-        /* ./compiling//compiling_global.nit:39 */
+        /* compiling/compiling_global.nit:39 */
         fra.me.REG[7] = CALL_program___Program___main_module(fra.me.REG[0])(fra.me.REG[0]);
-        fra.me.REG[5] = CALL_standard___symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
+        fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
         fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMModule___class_by_name(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[5]);
-        /* ./compiling//compiling_global.nit:40 */
+        /* compiling/compiling_global.nit:40 */
         REGB1 = TAG_Int(3);
         fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
         if (!once_value_8) {
           fra.me.REG[6] = BOX_NativeString(", (const classtable_t)VFT_");
           REGB1 = TAG_Int(26);
-          fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
+          fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB1);
           once_value_8 = fra.me.REG[6];
           register_static_object(&once_value_8);
         } else fra.me.REG[6] = once_value_8;
@@ -143,7 +144,7 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
         if (!once_value_9) {
           fra.me.REG[5] = BOX_NativeString("");
           REGB1 = TAG_Int(0);
-          fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB1);
+          fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB1);
           once_value_9 = fra.me.REG[5];
           register_static_object(&once_value_9);
         } else fra.me.REG[5] = once_value_9;
@@ -152,40 +153,40 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
         fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
         CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
       } else {
-        /* ./compiling//compiling_global.nit:42 */
+        /* compiling/compiling_global.nit:42 */
         if (!once_value_10) {
           fra.me.REG[7] = BOX_NativeString(", NULL");
           REGB1 = TAG_Int(6);
-          fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
+          fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB1);
           once_value_10 = fra.me.REG[7];
           register_static_object(&once_value_10);
         } else fra.me.REG[7] = once_value_10;
         fra.me.REG[7] = fra.me.REG[7];
         CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]);
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:275 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:245 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:275 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:273 */
       goto label11;
     }
   }
   label11: while(0);
-  /* ./compiling//compiling_global.nit:45 */
+  /* compiling/compiling_global.nit:45 */
   if (!once_value_12) {
     fra.me.REG[0] = BOX_NativeString("};");
     REGB0 = TAG_Int(2);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_12 = fra.me.REG[0];
     register_static_object(&once_value_12);
   } else fra.me.REG[0] = once_value_12;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:46 */
+  /* compiling/compiling_global.nit:46 */
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   stack_frame_head = fra.me.prev;
@@ -207,7 +208,7 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./compiling//compiling_global.nit:28 */
+    /* compiling/compiling_global.nit:28 */
     CALL_compiling___compiling_global___MMModule___compile_local_table_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     stack_frame_head = fra.me.prev;
     return;
@@ -217,7 +218,7 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
     val_t REGB0;
     val_t REGB1;
     val_t tmp;
-    /* ./compiling//compiling_global.nit:31 */
+    /* compiling/compiling_global.nit:31 */
     fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
     fra.me.file = LOCATE_compiling___compiling_global;
     fra.me.line = 31;
@@ -228,11 +229,11 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
     fra.me.REG[0] = NIT_NULL;
     fra.me.REG[1] = NIT_NULL;
     fra.me.REG[0] = p0;
-    /* ./compiling//compiling_global.nit:32 */
+    /* compiling/compiling_global.nit:32 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_abstract(fra.me.REG[1])(fra.me.REG[1]);
     if (UNTAG_Bool(REGB0)) {
-      REGB0 = TAG_Bool(true);
+      REGB0 = TAG_Bool(1);
     } else {
       fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
       REGB1 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_interface(fra.me.REG[1])(fra.me.REG[1]);
@@ -241,12 +242,13 @@ void compiling___compiling_global___Program___compile_tables_to_c(val_t p0, val_
     if (UNTAG_Bool(REGB0)) {
       goto label3;
     }
-    /* ./compiling//compiling_global.nit:33 */
+    /* compiling/compiling_global.nit:33 */
     CALL_compiling___compiling_global___MMLocalClass___compile_tables_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     label3: while(0);
     stack_frame_head = fra.me.prev;
     return;
   }
+static const char LOCATE_compiling___compiling_global___Program___compile_main_part[] = "compiling_global::Program::compile_main_part";
 void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -276,39 +278,39 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:52 */
+  /* compiling/compiling_global.nit:52 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("int main(int argc, char **argv) {");
     REGB0 = TAG_Int(33);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_1 = fra.me.REG[2];
     register_static_object(&once_value_1);
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:53 */
+  /* compiling/compiling_global.nit:53 */
   CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:54 */
+  /* compiling/compiling_global.nit:54 */
   if (!once_value_2) {
     fra.me.REG[2] = BOX_NativeString("prepare_signals();");
     REGB0 = TAG_Int(18);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_2 = fra.me.REG[2];
     register_static_object(&once_value_2);
   } else fra.me.REG[2] = once_value_2;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:55 */
+  /* compiling/compiling_global.nit:55 */
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString("glob_argc = argc; glob_argv = argv;");
     REGB0 = TAG_Int(35);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_3 = fra.me.REG[2];
     register_static_object(&once_value_3);
   } else fra.me.REG[2] = once_value_3;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:56 */
+  /* compiling/compiling_global.nit:56 */
   fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_program___Program___main_method(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -316,7 +318,7 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
   } else {
     REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
+      REGB1 = TAG_Bool(0);
       REGB0 = REGB1;
     } else {
       REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
@@ -324,27 +326,27 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_global.nit:57 */
+    /* compiling/compiling_global.nit:57 */
     if (!once_value_4) {
       fra.me.REG[2] = BOX_NativeString("No main");
       REGB0 = TAG_Int(7);
-      fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
       once_value_4 = fra.me.REG[2];
       register_static_object(&once_value_4);
     } else fra.me.REG[2] = once_value_4;
     fra.me.REG[2] = fra.me.REG[2];
     CALL_standard___file___Object___print(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   } else {
-    /* ./compiling//compiling_global.nit:59 */
+    /* compiling/compiling_global.nit:59 */
     fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[2] = CALL_program___Program___main_class(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./compiling//compiling_global.nit:60 */
+    /* compiling/compiling_global.nit:60 */
     REGB0 = TAG_Int(3);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_5) {
       fra.me.REG[3] = BOX_NativeString("G_sys = NEW_");
       REGB0 = TAG_Int(12);
-      fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+      fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
       once_value_5 = fra.me.REG[3];
       register_static_object(&once_value_5);
     } else fra.me.REG[3] = once_value_5;
@@ -359,7 +361,7 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
     if (!once_value_6) {
       fra.me.REG[2] = BOX_NativeString("();");
       REGB0 = TAG_Int(3);
-      fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
       once_value_6 = fra.me.REG[2];
       register_static_object(&once_value_6);
     } else fra.me.REG[2] = once_value_6;
@@ -367,23 +369,23 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./compiling//compiling_global.nit:61 */
+    /* compiling/compiling_global.nit:61 */
     if (!once_value_7) {
       fra.me.REG[0] = BOX_NativeString("register_static_object(&G_sys);");
       REGB0 = TAG_Int(31);
-      fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+      fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
       once_value_7 = fra.me.REG[0];
       register_static_object(&once_value_7);
     } else fra.me.REG[0] = once_value_7;
     fra.me.REG[0] = fra.me.REG[0];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-    /* ./compiling//compiling_global.nit:62 */
+    /* compiling/compiling_global.nit:62 */
     REGB0 = TAG_Int(3);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_8) {
       fra.me.REG[2] = BOX_NativeString("");
       REGB0 = TAG_Int(0);
-      fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
       once_value_8 = fra.me.REG[2];
       register_static_object(&once_value_8);
     } else fra.me.REG[2] = once_value_8;
@@ -400,7 +402,7 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
     if (!once_value_9) {
       fra.me.REG[2] = BOX_NativeString("(G_sys);");
       REGB0 = TAG_Int(8);
-      fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
       once_value_9 = fra.me.REG[2];
       register_static_object(&once_value_9);
     } else fra.me.REG[2] = once_value_9;
@@ -409,23 +411,23 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./compiling//compiling_global.nit:64 */
+  /* compiling/compiling_global.nit:64 */
   if (!once_value_10) {
     fra.me.REG[0] = BOX_NativeString("return 0;");
     REGB0 = TAG_Int(9);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_10 = fra.me.REG[0];
     register_static_object(&once_value_10);
   } else fra.me.REG[0] = once_value_10;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:65 */
+  /* compiling/compiling_global.nit:65 */
   CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:66 */
+  /* compiling/compiling_global.nit:66 */
   if (!once_value_11) {
     fra.me.REG[0] = BOX_NativeString("}");
     REGB0 = TAG_Int(1);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_11 = fra.me.REG[0];
     register_static_object(&once_value_11);
   } else fra.me.REG[0] = once_value_11;
@@ -434,6 +436,7 @@ void compiling___compiling_global___Program___compile_main_part(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_compiling___compiling_global___MMModule___declare_class_tables_to_c[] = "compiling_global::MMModule::declare_class_tables_to_c";
 void compiling___compiling_global___MMModule___declare_class_tables_to_c(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
@@ -449,7 +452,7 @@ void compiling___compiling_global___MMModule___declare_class_tables_to_c(val_t p
   fra.me.REG[2] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:74 */
+  /* compiling/compiling_global.nit:74 */
   fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_compiling___compiling_global___MMModule___declare_class_tables_to_c_1));
   stack_frame_head = fra.me.prev;
@@ -474,7 +477,7 @@ void compiling___compiling_global___MMModule___declare_class_tables_to_c(val_t p
     fra.me.closure_funs = CREG;
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
-    /* ./compiling//compiling_global.nit:75 */
+    /* compiling/compiling_global.nit:75 */
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
     fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMGlobalClass___mmmodule(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[1],closctx->REG[0]));
@@ -484,12 +487,13 @@ void compiling___compiling_global___MMModule___declare_class_tables_to_c(val_t p
       REGB0 = REGB1;
     }
     if (UNTAG_Bool(REGB0)) {
-      /* ./compiling//compiling_global.nit:76 */
+      /* compiling/compiling_global.nit:76 */
       CALL_compiling___compiling_global___MMLocalClass___declare_tables_to_c(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
     }
     stack_frame_head = fra.me.prev;
     return;
   }
+static const char LOCATE_compiling___compiling_global___MMModule___compile_mod_to_c[] = "compiling_global::MMModule::compile_mod_to_c";
 void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
@@ -523,13 +527,13 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
   fra.me.REG[7] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:84 */
+  /* compiling/compiling_global.nit:84 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
-    fra.me.REG[3] = BOX_NativeString("extern const char *LOCATE_");
-    REGB0 = TAG_Int(26);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = BOX_NativeString("extern const char LOCATE_");
+    REGB0 = TAG_Int(25);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_1 = fra.me.REG[3];
     register_static_object(&once_value_1);
   } else fra.me.REG[3] = once_value_1;
@@ -538,9 +542,9 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
   fra.me.REG[3] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   if (!once_value_2) {
-    fra.me.REG[3] = BOX_NativeString(";");
-    REGB0 = TAG_Int(1);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = BOX_NativeString("[];");
+    REGB0 = TAG_Int(3);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_2 = fra.me.REG[3];
     register_static_object(&once_value_2);
   } else fra.me.REG[3] = once_value_2;
@@ -548,19 +552,19 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:85 */
+  /* compiling/compiling_global.nit:85 */
   fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_program___ToolContext___use_SFT_optimization(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_global.nit:86 */
+    /* compiling/compiling_global.nit:86 */
     REGB0 = TAG_Int(3);
     fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_3) {
       fra.me.REG[3] = BOX_NativeString("extern const int SFT_");
       REGB0 = TAG_Int(21);
-      fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+      fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
       once_value_3 = fra.me.REG[3];
       register_static_object(&once_value_3);
     } else fra.me.REG[3] = once_value_3;
@@ -571,7 +575,7 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
     if (!once_value_4) {
       fra.me.REG[3] = BOX_NativeString("[];");
       REGB0 = TAG_Int(3);
-      fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+      fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
       once_value_4 = fra.me.REG[3];
       register_static_object(&once_value_4);
     } else fra.me.REG[3] = once_value_4;
@@ -580,24 +584,24 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
     fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
     CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   }
-  /* ./compiling//compiling_global.nit:88 */
+  /* compiling/compiling_global.nit:88 */
   REGB0 = TAG_Int(0);
-  /* ./compiling//compiling_global.nit:89 */
+  /* compiling/compiling_global.nit:89 */
   fra.me.REG[2] = CALL_compiling___table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:271 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:272 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:273 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -609,29 +613,29 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:242 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:273 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
+        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:725 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB1)];
-      /* ./compiling//compiling_global.nit:91 */
+      /* compiling/compiling_global.nit:91 */
       fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[5] = CALL_program___Program___tc(fra.me.REG[5])(fra.me.REG[5]);
       REGB2 = CALL_program___ToolContext___use_SFT_optimization(fra.me.REG[5])(fra.me.REG[5]);
       if (UNTAG_Bool(REGB2)) {
-        /* ./compiling//compiling_global.nit:92 */
+        /* compiling/compiling_global.nit:92 */
         REGB2 = TAG_Int(3);
         fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_5) {
           fra.me.REG[6] = BOX_NativeString("");
           REGB2 = TAG_Int(0);
-          fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+          fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
           once_value_5 = fra.me.REG[6];
           register_static_object(&once_value_5);
         } else fra.me.REG[6] = once_value_5;
@@ -643,7 +647,7 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
         if (!once_value_6) {
           fra.me.REG[6] = BOX_NativeString("");
           REGB2 = TAG_Int(0);
-          fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+          fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
           once_value_6 = fra.me.REG[6];
           register_static_object(&once_value_6);
         } else fra.me.REG[6] = once_value_6;
@@ -651,13 +655,13 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
         fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
       } else {
-        /* ./compiling//compiling_global.nit:94 */
+        /* compiling/compiling_global.nit:94 */
         REGB2 = TAG_Int(5);
         fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_7) {
           fra.me.REG[7] = BOX_NativeString("SFT_");
           REGB2 = TAG_Int(4);
-          fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
+          fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB2);
           once_value_7 = fra.me.REG[7];
           register_static_object(&once_value_7);
         } else fra.me.REG[7] = once_value_7;
@@ -668,7 +672,7 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
         if (!once_value_8) {
           fra.me.REG[7] = BOX_NativeString("[");
           REGB2 = TAG_Int(1);
-          fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
+          fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB2);
           once_value_8 = fra.me.REG[7];
           register_static_object(&once_value_8);
         } else fra.me.REG[7] = once_value_8;
@@ -679,7 +683,7 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
         if (!once_value_9) {
           fra.me.REG[7] = BOX_NativeString("]");
           REGB2 = TAG_Int(1);
-          fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
+          fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB2);
           once_value_9 = fra.me.REG[7];
           register_static_object(&once_value_9);
         } else fra.me.REG[7] = once_value_9;
@@ -687,28 +691,28 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]);
         fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
         fra.me.REG[5] = fra.me.REG[6];
-        /* ./compiling//compiling_global.nit:95 */
+        /* compiling/compiling_global.nit:95 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:245 */
         REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-        /* ./compiling//compiling_global.nit:95 */
+        /* compiling/compiling_global.nit:95 */
         REGB0 = REGB2;
       }
-      /* ./compiling//compiling_global.nit:97 */
+      /* compiling/compiling_global.nit:97 */
       CALL_compiling___compiling_global___AbsTableElt___compile_macros(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[5]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:275 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:245 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:275 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:273 */
       goto label10;
     }
   }
   label10: while(0);
-  /* ./compiling//compiling_global.nit:99 */
+  /* compiling/compiling_global.nit:99 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMModule___local_classes(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[3])(fra.me.REG[3], (&(fra.me)), ((fun_t)OC_compiling___compiling_global___MMModule___compile_mod_to_c_11));
   stack_frame_head = fra.me.prev;
@@ -732,13 +736,13 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
     fra.me.REG[0] = p0;
     CREG[0] = clos_fun0;
     closctx->REG[3] = fra.me.REG[0];
-    /* ./compiling//compiling_global.nit:100 */
+    /* compiling/compiling_global.nit:100 */
     REGB0 = TAG_Bool(VAL_ISA(closctx->REG[3], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
     if (UNTAG_Bool(REGB0)) {
       goto label12;
     }
-    /* ./compiling//compiling_global.nit:101 */
+    /* compiling/compiling_global.nit:101 */
     fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(closctx->REG[3])(closctx->REG[3]);
     CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_compiling___compiling_global___MMModule___compile_mod_to_c_13));
     label12: while(0);
@@ -775,9 +779,9 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
       fra.me.closure_funs = CREG;
       fra.me.REG[0] = p0;
       CREG[0] = clos_fun0;
-      /* ./compiling//compiling_global.nit:102 */
+      /* compiling/compiling_global.nit:102 */
       fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[3])(closctx->REG[3], fra.me.REG[0]);
-      /* ./compiling//compiling_global.nit:103 */
+      /* compiling/compiling_global.nit:103 */
       fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[1])(fra.me.REG[1]);
       REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],closctx->REG[3]));
       if (UNTAG_Bool(REGB0)) {
@@ -788,19 +792,19 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
       if (UNTAG_Bool(REGB0)) {
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
       } else {
-        REGB1 = TAG_Bool(false);
+        REGB1 = TAG_Bool(0);
         REGB0 = REGB1;
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling_global.nit:104 */
+        /* compiling/compiling_global.nit:104 */
         CALL_compiling___compiling_global___MMMethod___compile_property_to_c(fra.me.REG[1])(fra.me.REG[1], closctx->REG[1]);
       }
-      /* ./compiling//compiling_global.nit:106 */
+      /* compiling/compiling_global.nit:106 */
       REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[0])(fra.me.REG[0], closctx->REG[3]);
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling_global.nit:108 */
+        /* compiling/compiling_global.nit:108 */
         fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
-        /* ./compiling//compiling_global.nit:109 */
+        /* compiling/compiling_global.nit:109 */
         REGB0 = TAG_Int(0);
         fra.me.REG[2] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]);
         REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -808,26 +812,26 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
           nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 109);
         }
         REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
-        /* ./../lib/standard//kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:404 */
         while(1) {
           REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
           if (UNTAG_Bool(REGB2)) {
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ./../lib/standard//kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:242 */
           REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-          /* ./../lib/standard//kernel.nit:352 */
+          /* ../lib/standard/kernel.nit:404 */
           if (UNTAG_Bool(REGB2)) {
-            /* ./compiling//compiling_global.nit:109 */
+            /* compiling/compiling_global.nit:109 */
             REGB2 = REGB0;
-            /* ./compiling//compiling_global.nit:110 */
+            /* compiling/compiling_global.nit:110 */
             REGB3 = TAG_Int(3);
             fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB3);
             if (!once_value_14) {
               fra.me.REG[3] = BOX_NativeString("val_t p");
               REGB3 = TAG_Int(7);
-              fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB3);
+              fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB3);
               once_value_14 = fra.me.REG[3];
               register_static_object(&once_value_14);
             } else fra.me.REG[3] = once_value_14;
@@ -838,7 +842,7 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
             if (!once_value_15) {
               fra.me.REG[3] = BOX_NativeString("");
               REGB2 = TAG_Int(0);
-              fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
+              fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB2);
               once_value_15 = fra.me.REG[3];
               register_static_object(&once_value_15);
             } else fra.me.REG[3] = once_value_15;
@@ -846,25 +850,25 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
             fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
             CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:406 */
             REGB2 = TAG_Int(1);
-            /* ./../lib/standard//kernel.nit:235 */
+            /* ../lib/standard/kernel.nit:245 */
             REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-            /* ./../lib/standard//kernel.nit:354 */
+            /* ../lib/standard/kernel.nit:406 */
             REGB0 = REGB2;
           } else {
-            /* ./../lib/standard//kernel.nit:352 */
+            /* ../lib/standard/kernel.nit:404 */
             goto label16;
           }
         }
         label16: while(0);
-        /* ./compiling//compiling_global.nit:112 */
+        /* compiling/compiling_global.nit:112 */
         REGB0 = TAG_Int(7);
         fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_17) {
           fra.me.REG[3] = BOX_NativeString("val_t NEW_");
           REGB0 = TAG_Int(10);
-          fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+          fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
           once_value_17 = fra.me.REG[3];
           register_static_object(&once_value_17);
         } else fra.me.REG[3] = once_value_17;
@@ -875,7 +879,7 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
         if (!once_value_18) {
           fra.me.REG[3] = BOX_NativeString("_");
           REGB0 = TAG_Int(1);
-          fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+          fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
           once_value_18 = fra.me.REG[3];
           register_static_object(&once_value_18);
         } else fra.me.REG[3] = once_value_18;
@@ -888,7 +892,7 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
         if (!once_value_19) {
           fra.me.REG[1] = BOX_NativeString("(");
           REGB0 = TAG_Int(1);
-          fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+          fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
           once_value_19 = fra.me.REG[1];
           register_static_object(&once_value_19);
         } else fra.me.REG[1] = once_value_19;
@@ -897,7 +901,7 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
         if (!once_value_20) {
           fra.me.REG[1] = BOX_NativeString(", ");
           REGB0 = TAG_Int(2);
-          fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+          fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
           once_value_20 = fra.me.REG[1];
           register_static_object(&once_value_20);
         } else fra.me.REG[1] = once_value_20;
@@ -907,7 +911,7 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
         if (!once_value_21) {
           fra.me.REG[1] = BOX_NativeString(");");
           REGB0 = TAG_Int(2);
-          fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+          fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
           once_value_21 = fra.me.REG[1];
           register_static_object(&once_value_21);
         } else fra.me.REG[1] = once_value_21;
@@ -919,6 +923,7 @@ void compiling___compiling_global___MMModule___compile_mod_to_c(val_t p0, val_t
       stack_frame_head = fra.me.prev;
       return;
     }
+static const char LOCATE_compiling___compiling_global___MMModule___compile_local_table_to_c[] = "compiling_global::MMModule::compile_local_table_to_c";
 void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -947,13 +952,13 @@ void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0
   fra.me.REG[4] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:121 */
+  /* compiling/compiling_global.nit:121 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
-    fra.me.REG[3] = BOX_NativeString("const char *LOCATE_");
-    REGB0 = TAG_Int(19);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = BOX_NativeString("const char LOCATE_");
+    REGB0 = TAG_Int(18);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_1 = fra.me.REG[3];
     register_static_object(&once_value_1);
   } else fra.me.REG[3] = once_value_1;
@@ -962,9 +967,9 @@ void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0
   fra.me.REG[3] = CALL_compiling___compiling_base___MMModule___cname(fra.me.REG[0])(fra.me.REG[0]);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   if (!once_value_2) {
-    fra.me.REG[3] = BOX_NativeString(" = \"");
-    REGB0 = TAG_Int(4);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = BOX_NativeString("[] = \"");
+    REGB0 = TAG_Int(6);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_2 = fra.me.REG[3];
     register_static_object(&once_value_2);
   } else fra.me.REG[3] = once_value_2;
@@ -981,7 +986,7 @@ void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0
   if (!once_value_3) {
     fra.me.REG[3] = BOX_NativeString("\";");
     REGB0 = TAG_Int(2);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_3 = fra.me.REG[3];
     register_static_object(&once_value_3);
   } else fra.me.REG[3] = once_value_3;
@@ -989,28 +994,28 @@ void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:123 */
+  /* compiling/compiling_global.nit:123 */
   fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[2] = CALL_program___Program___tc(fra.me.REG[2])(fra.me.REG[2]);
   REGB0 = CALL_program___ToolContext___use_SFT_optimization(fra.me.REG[2])(fra.me.REG[2]);
   if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(true);
+    REGB0 = TAG_Bool(1);
   } else {
     fra.me.REG[2] = CALL_compiling___table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]);
     REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_global.nit:124 */
+    /* compiling/compiling_global.nit:124 */
     goto label4;
   }
-  /* ./compiling//compiling_global.nit:127 */
+  /* compiling/compiling_global.nit:127 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_5) {
     fra.me.REG[3] = BOX_NativeString("const int SFT_");
     REGB0 = TAG_Int(14);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_5 = fra.me.REG[3];
     register_static_object(&once_value_5);
   } else fra.me.REG[3] = once_value_5;
@@ -1021,27 +1026,27 @@ void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0
   if (!once_value_6) {
     fra.me.REG[3] = BOX_NativeString("[");
     REGB0 = TAG_Int(1);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_6 = fra.me.REG[3];
     register_static_object(&once_value_6);
   } else fra.me.REG[3] = once_value_6;
   fra.me.REG[3] = fra.me.REG[3];
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[3] = CALL_compiling___table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:127 */
+  /* compiling/compiling_global.nit:127 */
   fra.me.REG[3] = CALL_standard___string___Object___to_s(REGB0)(REGB0);
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   if (!once_value_7) {
     fra.me.REG[3] = BOX_NativeString("] = {");
     REGB0 = TAG_Int(5);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_7 = fra.me.REG[3];
     register_static_object(&once_value_7);
   } else fra.me.REG[3] = once_value_7;
@@ -1049,24 +1054,24 @@ void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
   fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:128 */
+  /* compiling/compiling_global.nit:128 */
   CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:129 */
+  /* compiling/compiling_global.nit:129 */
   fra.me.REG[0] = CALL_compiling___table_computation___MMModule___local_table(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB0 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:271 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:272 */
   fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:273 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -1078,49 +1083,49 @@ void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:242 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:273 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
+        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:725 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
-      /* ./compiling//compiling_global.nit:130 */
+      /* compiling/compiling_global.nit:130 */
       fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
       fra.me.REG[4] = CALL_compiling___compiling_global___ModuleTableElt___value(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
       if (!once_value_8) {
         fra.me.REG[3] = BOX_NativeString(",");
         REGB1 = TAG_Int(1);
-        fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB1);
+        fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB1);
         once_value_8 = fra.me.REG[3];
         register_static_object(&once_value_8);
       } else fra.me.REG[3] = once_value_8;
       fra.me.REG[3] = fra.me.REG[3];
       fra.me.REG[3] = CALL_standard___string___String_____plus(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:275 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:245 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:275 */
       REGB0 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:273 */
       goto label9;
     }
   }
   label9: while(0);
-  /* ./compiling//compiling_global.nit:132 */
+  /* compiling/compiling_global.nit:132 */
   CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:133 */
+  /* compiling/compiling_global.nit:133 */
   if (!once_value_10) {
     fra.me.REG[2] = BOX_NativeString("};");
     REGB0 = TAG_Int(2);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_10 = fra.me.REG[2];
     register_static_object(&once_value_10);
   } else fra.me.REG[2] = once_value_10;
@@ -1130,6 +1135,7 @@ void compiling___compiling_global___MMModule___compile_local_table_to_c(val_t p0
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_compiling___compiling_global___AbsTableElt___compile_macros[] = "compiling_global::AbsTableElt::compile_macros";
 void compiling___compiling_global___AbsTableElt___compile_macros(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -1140,11 +1146,12 @@ void compiling___compiling_global___AbsTableElt___compile_macros(val_t p0, val_t
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./compiling//compiling_global.nit:140 */
+  /* compiling/compiling_global.nit:140 */
   nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_global, 140);
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_compiling___compiling_global___TableElt___compile_to_c[] = "compiling_global::TableElt::compile_to_c";
 val_t compiling___compiling_global___TableElt___compile_to_c(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -1155,11 +1162,12 @@ val_t compiling___compiling_global___TableElt___compile_to_c(val_t p0, val_t p1,
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./compiling//compiling_global.nit:145 */
+  /* compiling/compiling_global.nit:145 */
   nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_global, 145);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_compiling___compiling_global___ModuleTableElt___value[] = "compiling_global::ModuleTableElt::value";
 val_t compiling___compiling_global___ModuleTableElt___value(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -1170,11 +1178,12 @@ val_t compiling___compiling_global___ModuleTableElt___value(val_t p0, val_t p1){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./compiling//compiling_global.nit:150 */
+  /* compiling/compiling_global.nit:150 */
   nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_global, 150);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_compiling___compiling_global___ModuleTableEltGroup___value[] = "compiling_global::ModuleTableEltGroup::(compiling_global::ModuleTableElt::value)";
 val_t compiling___compiling_global___ModuleTableEltGroup___value(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -1194,13 +1203,13 @@ val_t compiling___compiling_global___ModuleTableEltGroup___value(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:155 */
+  /* compiling/compiling_global.nit:155 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[3] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_1 = fra.me.REG[3];
     register_static_object(&once_value_1);
   } else fra.me.REG[3] = once_value_1;
@@ -1215,7 +1224,7 @@ val_t compiling___compiling_global___ModuleTableEltGroup___value(val_t p0, val_t
   if (!once_value_2) {
     fra.me.REG[0] = BOX_NativeString(" /* Group of ? */");
     REGB0 = TAG_Int(17);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_2 = fra.me.REG[0];
     register_static_object(&once_value_2);
   } else fra.me.REG[0] = once_value_2;
@@ -1227,6 +1236,7 @@ val_t compiling___compiling_global___ModuleTableEltGroup___value(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_compiling___compiling_global___ModuleTableEltGroup___compile_macros[] = "compiling_global::ModuleTableEltGroup::(compiling_global::AbsTableElt::compile_macros)";
 void compiling___compiling_global___ModuleTableEltGroup___compile_macros(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
@@ -1254,24 +1264,24 @@ void compiling___compiling_global___ModuleTableEltGroup___compile_macros(val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:158 */
+  /* compiling/compiling_global.nit:158 */
   REGB0 = TAG_Int(0);
-  /* ./compiling//compiling_global.nit:159 */
+  /* compiling/compiling_global.nit:159 */
   fra.me.REG[0] = CALL_compiling___table_computation___ModuleTableEltGroup___elements(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:271 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:272 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[0]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:273 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1283,24 +1293,24 @@ void compiling___compiling_global___ModuleTableEltGroup___compile_macros(val_t p
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:242 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:273 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
+        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:725 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB1)];
-      /* ./compiling//compiling_global.nit:160 */
+      /* compiling/compiling_global.nit:160 */
       REGB2 = TAG_Int(5);
       fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_1) {
         fra.me.REG[6] = BOX_NativeString("");
         REGB2 = TAG_Int(0);
-        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
         once_value_1 = fra.me.REG[6];
         register_static_object(&once_value_1);
       } else fra.me.REG[6] = once_value_1;
@@ -1310,7 +1320,7 @@ void compiling___compiling_global___ModuleTableEltGroup___compile_macros(val_t p
       if (!once_value_2) {
         fra.me.REG[6] = BOX_NativeString(" + ");
         REGB2 = TAG_Int(3);
-        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
         once_value_2 = fra.me.REG[6];
         register_static_object(&once_value_2);
       } else fra.me.REG[6] = once_value_2;
@@ -1321,7 +1331,7 @@ void compiling___compiling_global___ModuleTableEltGroup___compile_macros(val_t p
       if (!once_value_3) {
         fra.me.REG[6] = BOX_NativeString("");
         REGB2 = TAG_Int(0);
-        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
         once_value_3 = fra.me.REG[6];
         register_static_object(&once_value_3);
       } else fra.me.REG[6] = once_value_3;
@@ -1329,20 +1339,20 @@ void compiling___compiling_global___ModuleTableEltGroup___compile_macros(val_t p
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
       fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
       CALL_compiling___compiling_global___AbsTableElt___compile_macros(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[5]);
-      /* ./compiling//compiling_global.nit:161 */
+      /* compiling/compiling_global.nit:161 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:245 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./compiling//compiling_global.nit:161 */
+      /* compiling/compiling_global.nit:161 */
       REGB0 = REGB2;
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:275 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:245 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:275 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:273 */
       goto label4;
     }
   }
@@ -1350,6 +1360,7 @@ void compiling___compiling_global___ModuleTableEltGroup___compile_macros(val_t p
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_compiling___compiling_global___TableEltMeth___compile_macros[] = "compiling_global::TableEltMeth::(compiling_global::AbsTableElt::compile_macros)";
 void compiling___compiling_global___TableEltMeth___compile_macros(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -1373,16 +1384,16 @@ void compiling___compiling_global___TableEltMeth___compile_macros(val_t p0, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:169 */
+  /* compiling/compiling_global.nit:169 */
   fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:170 */
+  /* compiling/compiling_global.nit:170 */
   REGB0 = TAG_Int(7);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[4] = BOX_NativeString("#define ");
     REGB0 = TAG_Int(8);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_1 = fra.me.REG[4];
     register_static_object(&once_value_1);
   } else fra.me.REG[4] = once_value_1;
@@ -1393,7 +1404,7 @@ void compiling___compiling_global___TableEltMeth___compile_macros(val_t p0, val_
   if (!once_value_2) {
     fra.me.REG[4] = BOX_NativeString("(recv) ((");
     REGB0 = TAG_Int(9);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_2 = fra.me.REG[4];
     register_static_object(&once_value_2);
   } else fra.me.REG[4] = once_value_2;
@@ -1405,7 +1416,7 @@ void compiling___compiling_global___TableEltMeth___compile_macros(val_t p0, val_
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString("_t)CALL((recv), (");
     REGB0 = TAG_Int(17);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_3 = fra.me.REG[0];
     register_static_object(&once_value_3);
   } else fra.me.REG[0] = once_value_3;
@@ -1415,7 +1426,7 @@ void compiling___compiling_global___TableEltMeth___compile_macros(val_t p0, val_
   if (!once_value_4) {
     fra.me.REG[2] = BOX_NativeString(")))");
     REGB0 = TAG_Int(3);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_4 = fra.me.REG[2];
     register_static_object(&once_value_4);
   } else fra.me.REG[2] = once_value_4;
@@ -1426,6 +1437,7 @@ void compiling___compiling_global___TableEltMeth___compile_macros(val_t p0, val_
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_compiling___compiling_global___TableEltMeth___compile_to_c[] = "compiling_global::TableEltMeth::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltMeth___compile_to_c(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
@@ -1442,17 +1454,18 @@ val_t compiling___compiling_global___TableEltMeth___compile_to_c(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:175 */
+  /* compiling/compiling_global.nit:175 */
   fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:176 */
+  /* compiling/compiling_global.nit:176 */
   fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_compiling___compiling_global___TableEltSuper___compile_macros[] = "compiling_global::TableEltSuper::(compiling_global::AbsTableElt::compile_macros)";
 void compiling___compiling_global___TableEltSuper___compile_macros(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -1476,15 +1489,15 @@ void compiling___compiling_global___TableEltSuper___compile_macros(val_t p0, val
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:183 */
+  /* compiling/compiling_global.nit:183 */
   fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:184 */
+  /* compiling/compiling_global.nit:184 */
   REGB0 = TAG_Int(7);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[4] = BOX_NativeString("#define ");
     REGB0 = TAG_Int(8);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_1 = fra.me.REG[4];
     register_static_object(&once_value_1);
   } else fra.me.REG[4] = once_value_1;
@@ -1495,7 +1508,7 @@ void compiling___compiling_global___TableEltSuper___compile_macros(val_t p0, val
   if (!once_value_2) {
     fra.me.REG[4] = BOX_NativeString("(recv) ((");
     REGB0 = TAG_Int(9);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_2 = fra.me.REG[4];
     register_static_object(&once_value_2);
   } else fra.me.REG[4] = once_value_2;
@@ -1506,7 +1519,7 @@ void compiling___compiling_global___TableEltSuper___compile_macros(val_t p0, val
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString("_t)CALL((recv), (");
     REGB0 = TAG_Int(17);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_3 = fra.me.REG[0];
     register_static_object(&once_value_3);
   } else fra.me.REG[0] = once_value_3;
@@ -1516,7 +1529,7 @@ void compiling___compiling_global___TableEltSuper___compile_macros(val_t p0, val
   if (!once_value_4) {
     fra.me.REG[2] = BOX_NativeString(")))");
     REGB0 = TAG_Int(3);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_4 = fra.me.REG[2];
     register_static_object(&once_value_4);
   } else fra.me.REG[2] = once_value_4;
@@ -1527,6 +1540,7 @@ void compiling___compiling_global___TableEltSuper___compile_macros(val_t p0, val
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_compiling___compiling_global___TableEltSuper___compile_to_c[] = "compiling_global::TableEltSuper::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltSuper___compile_to_c(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
@@ -1551,31 +1565,31 @@ val_t compiling___compiling_global___TableEltSuper___compile_to_c(val_t p0, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:189 */
+  /* compiling/compiling_global.nit:189 */
   fra.me.REG[1] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___local_class(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:190 */
+  /* compiling/compiling_global.nit:190 */
   fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:191 */
+  /* compiling/compiling_global.nit:191 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___linear_extension(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:192 */
-  REGB0 = TAG_Bool(false);
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* compiling/compiling_global.nit:192 */
+  REGB0 = TAG_Bool(0);
+  /* ../lib/standard/collection/array.nit:270 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:271 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
   }
   REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:272 */
   fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:273 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
@@ -1587,18 +1601,18 @@ val_t compiling___compiling_global___TableEltSuper___compile_to_c(val_t p0, val_
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:242 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:273 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
+        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:725 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
-      /* ./compiling//compiling_global.nit:195 */
+      /* compiling/compiling_global.nit:195 */
       REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[5],fra.me.REG[1]));
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -1606,47 +1620,48 @@ val_t compiling___compiling_global___TableEltSuper___compile_to_c(val_t p0, val_
         REGB2 = REGB3;
       }
       if (UNTAG_Bool(REGB2)) {
-        /* ./compiling//compiling_global.nit:196 */
-        REGB2 = TAG_Bool(true);
+        /* compiling/compiling_global.nit:196 */
+        REGB2 = TAG_Bool(1);
         REGB0 = REGB2;
       } else {
-        /* ./compiling//compiling_global.nit:197 */
+        /* compiling/compiling_global.nit:197 */
         if (UNTAG_Bool(REGB0)) {
           fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___che(fra.me.REG[2])(fra.me.REG[2]);
           REGB2 = CALL_metamodel___partial_order___PartialOrderElement_____l(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
         } else {
-          REGB3 = TAG_Bool(false);
+          REGB3 = TAG_Bool(0);
           REGB2 = REGB3;
         }
         if (UNTAG_Bool(REGB2)) {
-          /* ./compiling//compiling_global.nit:198 */
+          /* compiling/compiling_global.nit:198 */
           REGB2 = CALL_metamodel___abstractmetamodel___MMLocalClass___has_global_property(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
           if (UNTAG_Bool(REGB2)) {
-            /* ./compiling//compiling_global.nit:200 */
+            /* compiling/compiling_global.nit:200 */
             fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[0]);
             fra.me.REG[5] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[5])(fra.me.REG[5]);
             goto label1;
           }
         }
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:275 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:245 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:275 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:273 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./compiling//compiling_global.nit:204 */
+  /* compiling/compiling_global.nit:204 */
   nit_abort("Aborted", NULL, LOCATE_compiling___compiling_global, 204);
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[5];
 }
+static const char LOCATE_compiling___compiling_global___TableEltVTClassColor___compile_macros[] = "compiling_global::TableEltVTClassColor::(compiling_global::AbsTableElt::compile_macros)";
 void compiling___compiling_global___TableEltVTClassColor___compile_macros(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -1669,16 +1684,16 @@ void compiling___compiling_global___TableEltVTClassColor___compile_macros(val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:211 */
+  /* compiling/compiling_global.nit:211 */
   fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:212 */
+  /* compiling/compiling_global.nit:212 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[4] = BOX_NativeString("#define ");
     REGB0 = TAG_Int(8);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_1 = fra.me.REG[4];
     register_static_object(&once_value_1);
   } else fra.me.REG[4] = once_value_1;
@@ -1689,7 +1704,7 @@ void compiling___compiling_global___TableEltVTClassColor___compile_macros(val_t
   if (!once_value_2) {
     fra.me.REG[0] = BOX_NativeString("(recv) (VAL2VFT(recv)[");
     REGB0 = TAG_Int(22);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_2 = fra.me.REG[0];
     register_static_object(&once_value_2);
   } else fra.me.REG[0] = once_value_2;
@@ -1699,7 +1714,7 @@ void compiling___compiling_global___TableEltVTClassColor___compile_macros(val_t
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString("].i)");
     REGB0 = TAG_Int(4);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_3 = fra.me.REG[2];
     register_static_object(&once_value_3);
   } else fra.me.REG[2] = once_value_3;
@@ -1710,6 +1725,7 @@ void compiling___compiling_global___TableEltVTClassColor___compile_macros(val_t
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_compiling___compiling_global___TableEltVTClassColor___compile_to_c[] = "compiling_global::TableEltVTClassColor::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltVTClassColor___compile_to_c(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[7];} fra;
   val_t REGB0;
@@ -1738,15 +1754,15 @@ val_t compiling___compiling_global___TableEltVTClassColor___compile_to_c(val_t p
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:215 */
+  /* compiling/compiling_global.nit:215 */
   fra.me.REG[3] = fra.me.REG[0];
-  /* ./compiling//compiling_global.nit:217 */
+  /* compiling/compiling_global.nit:217 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:218 */
+  /* compiling/compiling_global.nit:218 */
   fra.me.REG[4] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
-  /* ./compiling//compiling_global.nit:219 */
+  /* compiling/compiling_global.nit:219 */
   fra.me.REG[5] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
   fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[5])(fra.me.REG[5]);
@@ -1756,7 +1772,7 @@ val_t compiling___compiling_global___TableEltVTClassColor___compile_to_c(val_t p
   }
   fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
   fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[5])(fra.me.REG[5]);
-  /* ./compiling//compiling_global.nit:220 */
+  /* compiling/compiling_global.nit:220 */
   fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMGlobalClass___intro(fra.me.REG[5])(fra.me.REG[5]);
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[6], COLOR_metamodel___abstractmetamodel___MMConcreteClass, ID_metamodel___abstractmetamodel___MMConcreteClass)) /*cast MMConcreteClass*/;
   if (UNTAG_Bool(REGB0)) {
@@ -1764,13 +1780,13 @@ val_t compiling___compiling_global___TableEltVTClassColor___compile_to_c(val_t p
     nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_global, 220);
   }
   fra.me.REG[6] = CALL_compiling___table_computation___MMConcreteClass___class_color_pos(fra.me.REG[6])(fra.me.REG[6]);
-  /* ./compiling//compiling_global.nit:221 */
+  /* compiling/compiling_global.nit:221 */
   REGB0 = TAG_Int(11);
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[7] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
-    fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB0);
+    fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB0);
     once_value_1 = fra.me.REG[7];
     register_static_object(&once_value_1);
   } else fra.me.REG[7] = once_value_1;
@@ -1783,7 +1799,7 @@ val_t compiling___compiling_global___TableEltVTClassColor___compile_to_c(val_t p
   if (!once_value_2) {
     fra.me.REG[6] = BOX_NativeString(" /* ");
     REGB0 = TAG_Int(4);
-    fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
+    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
     once_value_2 = fra.me.REG[6];
     register_static_object(&once_value_2);
   } else fra.me.REG[6] = once_value_2;
@@ -1796,7 +1812,7 @@ val_t compiling___compiling_global___TableEltVTClassColor___compile_to_c(val_t p
   if (!once_value_3) {
     fra.me.REG[3] = BOX_NativeString(": VT ");
     REGB0 = TAG_Int(5);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_3 = fra.me.REG[3];
     register_static_object(&once_value_3);
   } else fra.me.REG[3] = once_value_3;
@@ -1807,7 +1823,7 @@ val_t compiling___compiling_global___TableEltVTClassColor___compile_to_c(val_t p
   if (!once_value_4) {
     fra.me.REG[2] = BOX_NativeString("::");
     REGB0 = TAG_Int(2);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_4 = fra.me.REG[2];
     register_static_object(&once_value_4);
   } else fra.me.REG[2] = once_value_4;
@@ -1818,7 +1834,7 @@ val_t compiling___compiling_global___TableEltVTClassColor___compile_to_c(val_t p
   if (!once_value_5) {
     fra.me.REG[4] = BOX_NativeString(" : color of ");
     REGB0 = TAG_Int(12);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_5 = fra.me.REG[4];
     register_static_object(&once_value_5);
   } else fra.me.REG[4] = once_value_5;
@@ -1829,7 +1845,7 @@ val_t compiling___compiling_global___TableEltVTClassColor___compile_to_c(val_t p
   if (!once_value_6) {
     fra.me.REG[5] = BOX_NativeString(" */");
     REGB0 = TAG_Int(3);
-    fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
+    fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
     once_value_6 = fra.me.REG[5];
     register_static_object(&once_value_6);
   } else fra.me.REG[5] = once_value_6;
@@ -1841,6 +1857,7 @@ val_t compiling___compiling_global___TableEltVTClassColor___compile_to_c(val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_compiling___compiling_global___TableEltVTClassId___compile_macros[] = "compiling_global::TableEltVTClassId::(compiling_global::AbsTableElt::compile_macros)";
 void compiling___compiling_global___TableEltVTClassId___compile_macros(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -1863,16 +1880,16 @@ void compiling___compiling_global___TableEltVTClassId___compile_macros(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:228 */
+  /* compiling/compiling_global.nit:228 */
   fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:229 */
+  /* compiling/compiling_global.nit:229 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[4] = BOX_NativeString("#define ");
     REGB0 = TAG_Int(8);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_1 = fra.me.REG[4];
     register_static_object(&once_value_1);
   } else fra.me.REG[4] = once_value_1;
@@ -1883,7 +1900,7 @@ void compiling___compiling_global___TableEltVTClassId___compile_macros(val_t p0,
   if (!once_value_2) {
     fra.me.REG[0] = BOX_NativeString("(recv) (VAL2VFT(recv)[");
     REGB0 = TAG_Int(22);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_2 = fra.me.REG[0];
     register_static_object(&once_value_2);
   } else fra.me.REG[0] = once_value_2;
@@ -1893,7 +1910,7 @@ void compiling___compiling_global___TableEltVTClassId___compile_macros(val_t p0,
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString("].i)");
     REGB0 = TAG_Int(4);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_3 = fra.me.REG[2];
     register_static_object(&once_value_3);
   } else fra.me.REG[2] = once_value_3;
@@ -1904,6 +1921,7 @@ void compiling___compiling_global___TableEltVTClassId___compile_macros(val_t p0,
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_compiling___compiling_global___TableEltVTClassId___compile_to_c[] = "compiling_global::TableEltVTClassId::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltVTClassId___compile_to_c(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
@@ -1931,13 +1949,13 @@ val_t compiling___compiling_global___TableEltVTClassId___compile_to_c(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:234 */
+  /* compiling/compiling_global.nit:234 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:235 */
+  /* compiling/compiling_global.nit:235 */
   fra.me.REG[3] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:236 */
+  /* compiling/compiling_global.nit:236 */
   fra.me.REG[4] = CALL_metamodel___static_type___MMLocalClass___get_type(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature_for(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[4] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[4])(fra.me.REG[4]);
@@ -1947,13 +1965,13 @@ val_t compiling___compiling_global___TableEltVTClassId___compile_to_c(val_t p0,
   }
   fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./compiling//compiling_global.nit:237 */
+  /* compiling/compiling_global.nit:237 */
   REGB0 = TAG_Int(11);
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[6] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
-    fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
+    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
     once_value_1 = fra.me.REG[6];
     register_static_object(&once_value_1);
   } else fra.me.REG[6] = once_value_1;
@@ -1971,7 +1989,7 @@ val_t compiling___compiling_global___TableEltVTClassId___compile_to_c(val_t p0,
   if (!once_value_2) {
     fra.me.REG[6] = BOX_NativeString(" /* ");
     REGB0 = TAG_Int(4);
-    fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
+    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
     once_value_2 = fra.me.REG[6];
     register_static_object(&once_value_2);
   } else fra.me.REG[6] = once_value_2;
@@ -1984,7 +2002,7 @@ val_t compiling___compiling_global___TableEltVTClassId___compile_to_c(val_t p0,
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString(": VT ");
     REGB0 = TAG_Int(5);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_3 = fra.me.REG[0];
     register_static_object(&once_value_3);
   } else fra.me.REG[0] = once_value_3;
@@ -1995,7 +2013,7 @@ val_t compiling___compiling_global___TableEltVTClassId___compile_to_c(val_t p0,
   if (!once_value_4) {
     fra.me.REG[2] = BOX_NativeString("::");
     REGB0 = TAG_Int(2);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_4 = fra.me.REG[2];
     register_static_object(&once_value_4);
   } else fra.me.REG[2] = once_value_4;
@@ -2006,7 +2024,7 @@ val_t compiling___compiling_global___TableEltVTClassId___compile_to_c(val_t p0,
   if (!once_value_5) {
     fra.me.REG[3] = BOX_NativeString(" : id of ");
     REGB0 = TAG_Int(9);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_5 = fra.me.REG[3];
     register_static_object(&once_value_5);
   } else fra.me.REG[3] = once_value_5;
@@ -2017,7 +2035,7 @@ val_t compiling___compiling_global___TableEltVTClassId___compile_to_c(val_t p0,
   if (!once_value_6) {
     fra.me.REG[4] = BOX_NativeString(" */");
     REGB0 = TAG_Int(3);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_6 = fra.me.REG[4];
     register_static_object(&once_value_6);
   } else fra.me.REG[4] = once_value_6;
@@ -2029,6 +2047,7 @@ val_t compiling___compiling_global___TableEltVTClassId___compile_to_c(val_t p0,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[5];
 }
+static const char LOCATE_compiling___compiling_global___TableEltAttr___compile_macros[] = "compiling_global::TableEltAttr::(compiling_global::AbsTableElt::compile_macros)";
 void compiling___compiling_global___TableEltAttr___compile_macros(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -2051,16 +2070,16 @@ void compiling___compiling_global___TableEltAttr___compile_macros(val_t p0, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:244 */
+  /* compiling/compiling_global.nit:244 */
   fra.me.REG[0] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:245 */
+  /* compiling/compiling_global.nit:245 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[4] = BOX_NativeString("#define ");
     REGB0 = TAG_Int(8);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_1 = fra.me.REG[4];
     register_static_object(&once_value_1);
   } else fra.me.REG[4] = once_value_1;
@@ -2071,7 +2090,7 @@ void compiling___compiling_global___TableEltAttr___compile_macros(val_t p0, val_
   if (!once_value_2) {
     fra.me.REG[0] = BOX_NativeString("(recv) ATTR(recv, (");
     REGB0 = TAG_Int(19);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_2 = fra.me.REG[0];
     register_static_object(&once_value_2);
   } else fra.me.REG[0] = once_value_2;
@@ -2081,7 +2100,7 @@ void compiling___compiling_global___TableEltAttr___compile_macros(val_t p0, val_
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString("))");
     REGB0 = TAG_Int(2);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_3 = fra.me.REG[2];
     register_static_object(&once_value_3);
   } else fra.me.REG[2] = once_value_3;
@@ -2092,6 +2111,7 @@ void compiling___compiling_global___TableEltAttr___compile_macros(val_t p0, val_
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_compiling___compiling_global___TableEltAttr___compile_to_c[] = "compiling_global::TableEltAttr::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltAttr___compile_to_c(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
@@ -2116,19 +2136,19 @@ val_t compiling___compiling_global___TableEltAttr___compile_to_c(val_t p0, val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:250 */
+  /* compiling/compiling_global.nit:250 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:251 */
+  /* compiling/compiling_global.nit:251 */
   fra.me.REG[3] = CALL_compiling___table_computation___TableEltProp___property(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:252 */
+  /* compiling/compiling_global.nit:252 */
   REGB0 = TAG_Int(7);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[5] = BOX_NativeString("/* ");
     REGB0 = TAG_Int(3);
-    fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
+    fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
     once_value_1 = fra.me.REG[5];
     register_static_object(&once_value_1);
   } else fra.me.REG[5] = once_value_1;
@@ -2141,7 +2161,7 @@ val_t compiling___compiling_global___TableEltAttr___compile_to_c(val_t p0, val_t
   if (!once_value_2) {
     fra.me.REG[0] = BOX_NativeString(": Attribute ");
     REGB0 = TAG_Int(12);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_2 = fra.me.REG[0];
     register_static_object(&once_value_2);
   } else fra.me.REG[0] = once_value_2;
@@ -2152,7 +2172,7 @@ val_t compiling___compiling_global___TableEltAttr___compile_to_c(val_t p0, val_t
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString("::");
     REGB0 = TAG_Int(2);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_3 = fra.me.REG[2];
     register_static_object(&once_value_3);
   } else fra.me.REG[2] = once_value_3;
@@ -2163,7 +2183,7 @@ val_t compiling___compiling_global___TableEltAttr___compile_to_c(val_t p0, val_t
   if (!once_value_4) {
     fra.me.REG[3] = BOX_NativeString(" */");
     REGB0 = TAG_Int(3);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_4 = fra.me.REG[3];
     register_static_object(&once_value_4);
   } else fra.me.REG[3] = once_value_4;
@@ -2175,6 +2195,7 @@ val_t compiling___compiling_global___TableEltAttr___compile_to_c(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[4];
 }
+static const char LOCATE_compiling___compiling_global___AbsTableEltClass___symbol[] = "compiling_global::AbsTableEltClass::symbol";
 val_t compiling___compiling_global___AbsTableEltClass___symbol(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2185,11 +2206,12 @@ val_t compiling___compiling_global___AbsTableEltClass___symbol(val_t p0){
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./compiling//compiling_global.nit:258 */
+  /* compiling/compiling_global.nit:258 */
   nit_abort("Deferred method called", NULL, LOCATE_compiling___compiling_global, 258);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_compiling___compiling_global___AbsTableEltClass___compile_macros[] = "compiling_global::AbsTableEltClass::(compiling_global::AbsTableElt::compile_macros)";
 void compiling___compiling_global___AbsTableEltClass___compile_macros(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -2212,13 +2234,13 @@ void compiling___compiling_global___AbsTableEltClass___compile_macros(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:263 */
+  /* compiling/compiling_global.nit:263 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[4] = BOX_NativeString("#define ");
     REGB0 = TAG_Int(8);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_1 = fra.me.REG[4];
     register_static_object(&once_value_1);
   } else fra.me.REG[4] = once_value_1;
@@ -2229,7 +2251,7 @@ void compiling___compiling_global___AbsTableEltClass___compile_macros(val_t p0,
   if (!once_value_2) {
     fra.me.REG[0] = BOX_NativeString(" (");
     REGB0 = TAG_Int(2);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_2 = fra.me.REG[0];
     register_static_object(&once_value_2);
   } else fra.me.REG[0] = once_value_2;
@@ -2239,7 +2261,7 @@ void compiling___compiling_global___AbsTableEltClass___compile_macros(val_t p0,
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString(")");
     REGB0 = TAG_Int(1);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_3 = fra.me.REG[2];
     register_static_object(&once_value_3);
   } else fra.me.REG[2] = once_value_3;
@@ -2250,6 +2272,7 @@ void compiling___compiling_global___AbsTableEltClass___compile_macros(val_t p0,
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_compiling___compiling_global___TableEltClassId___symbol[] = "compiling_global::TableEltClassId::(compiling_global::AbsTableEltClass::symbol)";
 val_t compiling___compiling_global___TableEltClassId___symbol(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2262,7 +2285,7 @@ val_t compiling___compiling_global___TableEltClassId___symbol(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_global.nit:268 */
+  /* compiling/compiling_global.nit:268 */
   fra.me.REG[0] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalClass___id_id(fra.me.REG[0])(fra.me.REG[0]);
@@ -2271,6 +2294,7 @@ val_t compiling___compiling_global___TableEltClassId___symbol(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_compiling___compiling_global___TableEltClassId___value[] = "compiling_global::TableEltClassId::(compiling_global::ModuleTableElt::value)";
 val_t compiling___compiling_global___TableEltClassId___value(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -2291,13 +2315,13 @@ val_t compiling___compiling_global___TableEltClassId___value(val_t p0, val_t p1)
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:272 */
+  /* compiling/compiling_global.nit:272 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[3] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_1 = fra.me.REG[3];
     register_static_object(&once_value_1);
   } else fra.me.REG[3] = once_value_1;
@@ -2317,7 +2341,7 @@ val_t compiling___compiling_global___TableEltClassId___value(val_t p0, val_t p1)
   if (!once_value_2) {
     fra.me.REG[3] = BOX_NativeString(" /* Id of ");
     REGB0 = TAG_Int(10);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_2 = fra.me.REG[3];
     register_static_object(&once_value_2);
   } else fra.me.REG[3] = once_value_2;
@@ -2329,7 +2353,7 @@ val_t compiling___compiling_global___TableEltClassId___value(val_t p0, val_t p1)
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString(" */");
     REGB0 = TAG_Int(3);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_3 = fra.me.REG[0];
     register_static_object(&once_value_3);
   } else fra.me.REG[0] = once_value_3;
@@ -2341,6 +2365,7 @@ val_t compiling___compiling_global___TableEltClassId___value(val_t p0, val_t p1)
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_compiling___compiling_global___TableEltClassInitTable___symbol[] = "compiling_global::TableEltClassInitTable::(compiling_global::AbsTableEltClass::symbol)";
 val_t compiling___compiling_global___TableEltClassInitTable___symbol(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2353,7 +2378,7 @@ val_t compiling___compiling_global___TableEltClassInitTable___symbol(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_global.nit:277 */
+  /* compiling/compiling_global.nit:277 */
   fra.me.REG[0] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalClass___init_table_pos_id(fra.me.REG[0])(fra.me.REG[0]);
@@ -2362,6 +2387,7 @@ val_t compiling___compiling_global___TableEltClassInitTable___symbol(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_compiling___compiling_global___TableEltClassInitTable___compile_to_c[] = "compiling_global::TableEltClassInitTable::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltClassInitTable___compile_to_c(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
   val_t REGB0;
@@ -2391,38 +2417,38 @@ val_t compiling___compiling_global___TableEltClassInitTable___compile_to_c(val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:281 */
+  /* compiling/compiling_global.nit:281 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:282 */
+  /* compiling/compiling_global.nit:282 */
   fra.me.REG[3] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./compiling//compiling_global.nit:283 */
+  /* compiling/compiling_global.nit:283 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___reverse_linear_extension(fra.me.REG[3])(fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:284 */
+  /* compiling/compiling_global.nit:284 */
   REGB0 = TAG_Int(0);
-  /* ./compiling//compiling_global.nit:285 */
+  /* compiling/compiling_global.nit:285 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:278 */
+    /* ../lib/standard/collection/array.nit:279 */
     fra.me.REG[5] = fra.me.REG[3];
     REGB1 = REGB0;
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:281 */
     REGB2 = TAG_Int(0);
     REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:233 */
+    /* ../lib/standard/kernel.nit:243 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
-    /* ./../lib/standard//collection//array.nit:280 */
+    /* ../lib/standard/collection/array.nit:281 */
     if (UNTAG_Bool(REGB2)) {
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
-        nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280);
+        nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 281);
       }
       REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
       REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -2430,29 +2456,29 @@ val_t compiling___compiling_global___TableEltClassInitTable___compile_to_c(val_t
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:242 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
     } else {
-      /* ./../lib/standard//collection//array.nit:280 */
-      REGB3 = TAG_Bool(false);
+      /* ../lib/standard/collection/array.nit:281 */
+      REGB3 = TAG_Bool(0);
       REGB2 = REGB3;
     }
     if (UNTAG_Bool(REGB2)) {
     } else {
-      nit_abort("Assert %s  failed", "'index'", LOCATE_standard___collection___array, 280);
+      nit_abort("Assert '%s' failed", "index", LOCATE_standard___collection___array, 281);
     }
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:282 */
     fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
     REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
-      nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
+      nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 282);
     }
-    /* ./../lib/standard//collection//array.nit:718 */
+    /* ../lib/standard/collection/array.nit:725 */
     fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
-    /* ./../lib/standard//collection//array.nit:281 */
+    /* ../lib/standard/collection/array.nit:282 */
     goto label1;
     label1: while(0);
-    /* ./compiling//compiling_global.nit:285 */
+    /* compiling/compiling_global.nit:285 */
     REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
       nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 285);
@@ -2468,25 +2494,25 @@ val_t compiling___compiling_global___TableEltClassInitTable___compile_to_c(val_t
     }
     REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
     if (UNTAG_Bool(REGB1)) {
-      /* ./compiling//compiling_global.nit:286 */
+      /* compiling/compiling_global.nit:286 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:245 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-      /* ./compiling//compiling_global.nit:286 */
+      /* compiling/compiling_global.nit:286 */
       REGB0 = REGB1;
     } else {
-      /* ./compiling//compiling_global.nit:285 */
+      /* compiling/compiling_global.nit:285 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./compiling//compiling_global.nit:288 */
+  /* compiling/compiling_global.nit:288 */
   REGB1 = TAG_Int(9);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_3) {
     fra.me.REG[6] = BOX_NativeString("");
     REGB1 = TAG_Int(0);
-    fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB1);
+    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB1);
     once_value_3 = fra.me.REG[6];
     register_static_object(&once_value_3);
   } else fra.me.REG[6] = once_value_3;
@@ -2497,7 +2523,7 @@ val_t compiling___compiling_global___TableEltClassInitTable___compile_to_c(val_t
   if (!once_value_4) {
     fra.me.REG[6] = BOX_NativeString(" /* ");
     REGB0 = TAG_Int(4);
-    fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
+    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
     once_value_4 = fra.me.REG[6];
     register_static_object(&once_value_4);
   } else fra.me.REG[6] = once_value_4;
@@ -2510,7 +2536,7 @@ val_t compiling___compiling_global___TableEltClassInitTable___compile_to_c(val_t
   if (!once_value_5) {
     fra.me.REG[0] = BOX_NativeString(": ");
     REGB0 = TAG_Int(2);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_5 = fra.me.REG[0];
     register_static_object(&once_value_5);
   } else fra.me.REG[0] = once_value_5;
@@ -2521,7 +2547,7 @@ val_t compiling___compiling_global___TableEltClassInitTable___compile_to_c(val_t
   if (!once_value_6) {
     fra.me.REG[2] = BOX_NativeString(" < ");
     REGB0 = TAG_Int(3);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_6 = fra.me.REG[2];
     register_static_object(&once_value_6);
   } else fra.me.REG[2] = once_value_6;
@@ -2533,7 +2559,7 @@ val_t compiling___compiling_global___TableEltClassInitTable___compile_to_c(val_t
   if (!once_value_7) {
     fra.me.REG[4] = BOX_NativeString(": superclass init_table position */");
     REGB0 = TAG_Int(35);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_7 = fra.me.REG[4];
     register_static_object(&once_value_7);
   } else fra.me.REG[4] = once_value_7;
@@ -2545,6 +2571,7 @@ val_t compiling___compiling_global___TableEltClassInitTable___compile_to_c(val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
+static const char LOCATE_compiling___compiling_global___TableEltClassColor___symbol[] = "compiling_global::TableEltClassColor::(compiling_global::AbsTableEltClass::symbol)";
 val_t compiling___compiling_global___TableEltClassColor___symbol(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2557,7 +2584,7 @@ val_t compiling___compiling_global___TableEltClassColor___symbol(val_t p0){
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./compiling//compiling_global.nit:293 */
+  /* compiling/compiling_global.nit:293 */
   fra.me.REG[0] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[0] = CALL_compiling___compiling_base___MMGlobalClass___color_id(fra.me.REG[0])(fra.me.REG[0]);
@@ -2566,6 +2593,7 @@ val_t compiling___compiling_global___TableEltClassColor___symbol(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_compiling___compiling_global___TableEltClassColor___value[] = "compiling_global::TableEltClassColor::(compiling_global::ModuleTableElt::value)";
 val_t compiling___compiling_global___TableEltClassColor___value(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -2586,13 +2614,13 @@ val_t compiling___compiling_global___TableEltClassColor___value(val_t p0, val_t
   fra.me.REG[3] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:297 */
+  /* compiling/compiling_global.nit:297 */
   REGB0 = TAG_Int(5);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[3] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_1 = fra.me.REG[3];
     register_static_object(&once_value_1);
   } else fra.me.REG[3] = once_value_1;
@@ -2605,7 +2633,7 @@ val_t compiling___compiling_global___TableEltClassColor___value(val_t p0, val_t
   if (!once_value_2) {
     fra.me.REG[1] = BOX_NativeString(" /* Color of ");
     REGB0 = TAG_Int(13);
-    fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
+    fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0);
     once_value_2 = fra.me.REG[1];
     register_static_object(&once_value_2);
   } else fra.me.REG[1] = once_value_2;
@@ -2617,7 +2645,7 @@ val_t compiling___compiling_global___TableEltClassColor___value(val_t p0, val_t
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString(" */");
     REGB0 = TAG_Int(3);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_3 = fra.me.REG[0];
     register_static_object(&once_value_3);
   } else fra.me.REG[0] = once_value_3;
@@ -2629,6 +2657,7 @@ val_t compiling___compiling_global___TableEltClassColor___value(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_compiling___compiling_global___TableEltClassColor___compile_to_c[] = "compiling_global::TableEltClassColor::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltClassColor___compile_to_c(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
@@ -2654,20 +2683,20 @@ val_t compiling___compiling_global___TableEltClassColor___compile_to_c(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:302 */
+  /* compiling/compiling_global.nit:302 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:303 */
+  /* compiling/compiling_global.nit:303 */
   fra.me.REG[3] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[4] = CALL_compiling___table_computation___AbsTableEltClass___local_class(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[4])(fra.me.REG[4]);
   fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./compiling//compiling_global.nit:304 */
+  /* compiling/compiling_global.nit:304 */
   REGB0 = TAG_Int(9);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[5] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
-    fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
+    fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
     once_value_1 = fra.me.REG[5];
     register_static_object(&once_value_1);
   } else fra.me.REG[5] = once_value_1;
@@ -2679,7 +2708,7 @@ val_t compiling___compiling_global___TableEltClassColor___compile_to_c(val_t p0,
   if (!once_value_2) {
     fra.me.REG[5] = BOX_NativeString(" /* ");
     REGB0 = TAG_Int(4);
-    fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
+    fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
     once_value_2 = fra.me.REG[5];
     register_static_object(&once_value_2);
   } else fra.me.REG[5] = once_value_2;
@@ -2692,7 +2721,7 @@ val_t compiling___compiling_global___TableEltClassColor___compile_to_c(val_t p0,
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString(": ");
     REGB0 = TAG_Int(2);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_3 = fra.me.REG[0];
     register_static_object(&once_value_3);
   } else fra.me.REG[0] = once_value_3;
@@ -2703,7 +2732,7 @@ val_t compiling___compiling_global___TableEltClassColor___compile_to_c(val_t p0,
   if (!once_value_4) {
     fra.me.REG[2] = BOX_NativeString(" < ");
     REGB0 = TAG_Int(3);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_4 = fra.me.REG[2];
     register_static_object(&once_value_4);
   } else fra.me.REG[2] = once_value_4;
@@ -2715,7 +2744,7 @@ val_t compiling___compiling_global___TableEltClassColor___compile_to_c(val_t p0,
   if (!once_value_5) {
     fra.me.REG[4] = BOX_NativeString(": superclass typecheck marker */");
     REGB0 = TAG_Int(32);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_5 = fra.me.REG[4];
     register_static_object(&once_value_5);
   } else fra.me.REG[4] = once_value_5;
@@ -2727,6 +2756,7 @@ val_t compiling___compiling_global___TableEltClassColor___compile_to_c(val_t p0,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
+static const char LOCATE_compiling___compiling_global___TableEltComposite___compile_to_c[] = "compiling_global::TableEltComposite::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltComposite___compile_to_c(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t tmp;
@@ -2743,11 +2773,12 @@ val_t compiling___compiling_global___TableEltComposite___compile_to_c(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:309 */
+  /* compiling/compiling_global.nit:309 */
   nit_abort("Aborted", NULL, LOCATE_compiling___compiling_global, 309);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_compiling___compiling_global___TableEltClassSelfId___compile_to_c[] = "compiling_global::TableEltClassSelfId::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltClassSelfId___compile_to_c(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -2770,15 +2801,15 @@ val_t compiling___compiling_global___TableEltClassSelfId___compile_to_c(val_t p0
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:315 */
+  /* compiling/compiling_global.nit:315 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:316 */
+  /* compiling/compiling_global.nit:316 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[4] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_1 = fra.me.REG[4];
     register_static_object(&once_value_1);
   } else fra.me.REG[4] = once_value_1;
@@ -2797,7 +2828,7 @@ val_t compiling___compiling_global___TableEltClassSelfId___compile_to_c(val_t p0
   if (!once_value_2) {
     fra.me.REG[2] = BOX_NativeString(" /* ");
     REGB0 = TAG_Int(4);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_2 = fra.me.REG[2];
     register_static_object(&once_value_2);
   } else fra.me.REG[2] = once_value_2;
@@ -2810,7 +2841,7 @@ val_t compiling___compiling_global___TableEltClassSelfId___compile_to_c(val_t p0
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString(": Identity */");
     REGB0 = TAG_Int(13);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_3 = fra.me.REG[0];
     register_static_object(&once_value_3);
   } else fra.me.REG[0] = once_value_3;
@@ -2822,6 +2853,7 @@ val_t compiling___compiling_global___TableEltClassSelfId___compile_to_c(val_t p0
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
+static const char LOCATE_compiling___compiling_global___TableEltClassSelfName___compile_to_c[] = "compiling_global::TableEltClassSelfName::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltClassSelfName___compile_to_c(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -2844,15 +2876,15 @@ val_t compiling___compiling_global___TableEltClassSelfName___compile_to_c(val_t
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:323 */
+  /* compiling/compiling_global.nit:323 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:324 */
+  /* compiling/compiling_global.nit:324 */
   REGB0 = TAG_Int(5);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[4] = BOX_NativeString("\"");
     REGB0 = TAG_Int(1);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_1 = fra.me.REG[4];
     register_static_object(&once_value_1);
   } else fra.me.REG[4] = once_value_1;
@@ -2865,7 +2897,7 @@ val_t compiling___compiling_global___TableEltClassSelfName___compile_to_c(val_t
   if (!once_value_2) {
     fra.me.REG[2] = BOX_NativeString("\" /* ");
     REGB0 = TAG_Int(5);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_2 = fra.me.REG[2];
     register_static_object(&once_value_2);
   } else fra.me.REG[2] = once_value_2;
@@ -2878,7 +2910,7 @@ val_t compiling___compiling_global___TableEltClassSelfName___compile_to_c(val_t
   if (!once_value_3) {
     fra.me.REG[0] = BOX_NativeString(": Class Name */");
     REGB0 = TAG_Int(15);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_3 = fra.me.REG[0];
     register_static_object(&once_value_3);
   } else fra.me.REG[0] = once_value_3;
@@ -2890,6 +2922,7 @@ val_t compiling___compiling_global___TableEltClassSelfName___compile_to_c(val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
+static const char LOCATE_compiling___compiling_global___TableEltClassObjectSize___compile_to_c[] = "compiling_global::TableEltClassObjectSize::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltClassObjectSize___compile_to_c(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -2916,21 +2949,21 @@ val_t compiling___compiling_global___TableEltClassObjectSize___compile_to_c(val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:331 */
+  /* compiling/compiling_global.nit:331 */
   REGB0 = TAG_Int(0);
-  /* ./compiling//compiling_global.nit:332 */
+  /* compiling/compiling_global.nit:332 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:333 */
+  /* compiling/compiling_global.nit:333 */
   fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
   if (!once_value_1) {
     fra.me.REG[4] = BOX_NativeString("NativeArray");
     REGB1 = TAG_Int(11);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB1);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB1);
     once_value_1 = fra.me.REG[4];
     register_static_object(&once_value_1);
   } else fra.me.REG[4] = once_value_1;
   fra.me.REG[4] = fra.me.REG[4];
-  fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
+  fra.me.REG[4] = CALL_symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]);
   REGB1 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4]));
   if (UNTAG_Bool(REGB1)) {
   } else {
@@ -2938,33 +2971,33 @@ val_t compiling___compiling_global___TableEltClassObjectSize___compile_to_c(val_
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
-    /* ./compiling//compiling_global.nit:334 */
+    /* compiling/compiling_global.nit:334 */
     REGB1 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:246 */
     REGB1 = TAG_Int(-UNTAG_Int(REGB1));
-    /* ./compiling//compiling_global.nit:334 */
+    /* compiling/compiling_global.nit:334 */
     REGB0 = REGB1;
   } else {
-    /* ./compiling//compiling_global.nit:336 */
+    /* compiling/compiling_global.nit:336 */
     fra.me.REG[4] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
     fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
-    /* ./compiling//compiling_global.nit:337 */
+    /* compiling/compiling_global.nit:337 */
     fra.me.REG[2] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:269 */
+    /* ../lib/standard/collection/array.nit:270 */
     REGB1 = TAG_Int(0);
-    /* ./../lib/standard//collection//array.nit:270 */
+    /* ../lib/standard/collection/array.nit:271 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
-      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
+      nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
     }
     REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:271 */
+    /* ../lib/standard/collection/array.nit:272 */
     fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:273 */
     while(1) {
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
@@ -2976,43 +3009,43 @@ val_t compiling___compiling_global___TableEltClassObjectSize___compile_to_c(val_
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ./../lib/standard//kernel.nit:232 */
+      /* ../lib/standard/kernel.nit:242 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:273 */
       if (UNTAG_Bool(REGB2)) {
-        /* ./../lib/standard//collection//array.nit:273 */
+        /* ../lib/standard/collection/array.nit:274 */
         REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
-          nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
+          nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
         }
-        /* ./../lib/standard//collection//array.nit:718 */
+        /* ../lib/standard/collection/array.nit:725 */
         fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
-        /* ./compiling//compiling_global.nit:339 */
+        /* compiling/compiling_global.nit:339 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:245 */
         REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-        /* ./compiling//compiling_global.nit:339 */
+        /* compiling/compiling_global.nit:339 */
         REGB0 = REGB2;
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:275 */
         REGB2 = TAG_Int(1);
-        /* ./../lib/standard//kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:245 */
         REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-        /* ./../lib/standard//collection//array.nit:274 */
+        /* ../lib/standard/collection/array.nit:275 */
         REGB1 = REGB2;
       } else {
-        /* ./../lib/standard//collection//array.nit:272 */
+        /* ../lib/standard/collection/array.nit:273 */
         goto label2;
       }
     }
     label2: while(0);
   }
-  /* ./compiling//compiling_global.nit:342 */
+  /* compiling/compiling_global.nit:342 */
   REGB1 = TAG_Int(5);
   fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
   if (!once_value_3) {
     fra.me.REG[2] = BOX_NativeString("");
     REGB1 = TAG_Int(0);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB1);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB1);
     once_value_3 = fra.me.REG[2];
     register_static_object(&once_value_3);
   } else fra.me.REG[2] = once_value_3;
@@ -3023,7 +3056,7 @@ val_t compiling___compiling_global___TableEltClassObjectSize___compile_to_c(val_
   if (!once_value_4) {
     fra.me.REG[2] = BOX_NativeString(" /* ");
     REGB0 = TAG_Int(4);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_4 = fra.me.REG[2];
     register_static_object(&once_value_4);
   } else fra.me.REG[2] = once_value_4;
@@ -3036,7 +3069,7 @@ val_t compiling___compiling_global___TableEltClassObjectSize___compile_to_c(val_
   if (!once_value_5) {
     fra.me.REG[0] = BOX_NativeString(": Object size (-1 if a NativeArray)*/");
     REGB0 = TAG_Int(37);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_5 = fra.me.REG[0];
     register_static_object(&once_value_5);
   } else fra.me.REG[0] = once_value_5;
@@ -3048,6 +3081,7 @@ val_t compiling___compiling_global___TableEltClassObjectSize___compile_to_c(val_
   stack_frame_head = fra.me.prev;
   return fra.me.REG[4];
 }
+static const char LOCATE_compiling___compiling_global___TableEltObjectId___compile_to_c[] = "compiling_global::TableEltObjectId::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltObjectId___compile_to_c(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -3068,15 +3102,15 @@ val_t compiling___compiling_global___TableEltObjectId___compile_to_c(val_t p0, v
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:349 */
+  /* compiling/compiling_global.nit:349 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:350 */
+  /* compiling/compiling_global.nit:350 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[3] = BOX_NativeString("/* ");
     REGB0 = TAG_Int(3);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_1 = fra.me.REG[3];
     register_static_object(&once_value_1);
   } else fra.me.REG[3] = once_value_1;
@@ -3089,7 +3123,7 @@ val_t compiling___compiling_global___TableEltObjectId___compile_to_c(val_t p0, v
   if (!once_value_2) {
     fra.me.REG[0] = BOX_NativeString(": Object_id */");
     REGB0 = TAG_Int(14);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_2 = fra.me.REG[0];
     register_static_object(&once_value_2);
   } else fra.me.REG[0] = once_value_2;
@@ -3101,6 +3135,7 @@ val_t compiling___compiling_global___TableEltObjectId___compile_to_c(val_t p0, v
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_compiling___compiling_global___TableEltVftPointer___compile_to_c[] = "compiling_global::TableEltVftPointer::(compiling_global::TableElt::compile_to_c)";
 val_t compiling___compiling_global___TableEltVftPointer___compile_to_c(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -3121,15 +3156,15 @@ val_t compiling___compiling_global___TableEltVftPointer___compile_to_c(val_t p0,
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ./compiling//compiling_global.nit:357 */
+  /* compiling/compiling_global.nit:357 */
   fra.me.REG[1] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:358 */
+  /* compiling/compiling_global.nit:358 */
   REGB0 = TAG_Int(3);
   fra.me.REG[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_1) {
     fra.me.REG[3] = BOX_NativeString("/* ");
     REGB0 = TAG_Int(3);
-    fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+    fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
     once_value_1 = fra.me.REG[3];
     register_static_object(&once_value_1);
   } else fra.me.REG[3] = once_value_1;
@@ -3142,7 +3177,7 @@ val_t compiling___compiling_global___TableEltVftPointer___compile_to_c(val_t p0,
   if (!once_value_2) {
     fra.me.REG[0] = BOX_NativeString(": Pointer to the classtable */");
     REGB0 = TAG_Int(30);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_2 = fra.me.REG[0];
     register_static_object(&once_value_2);
   } else fra.me.REG[0] = once_value_2;
@@ -3154,6 +3189,7 @@ val_t compiling___compiling_global___TableEltVftPointer___compile_to_c(val_t p0,
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_compiling___compiling_global___MMLocalClass___declare_tables_to_c[] = "compiling_global::MMLocalClass::declare_tables_to_c";
 void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
   val_t REGB0;
@@ -3188,25 +3224,25 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
   fra.me.REG[5] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:368 */
+  /* compiling/compiling_global.nit:368 */
   if (!once_value_1) {
     fra.me.REG[2] = BOX_NativeString("");
     REGB0 = TAG_Int(0);
-    fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+    fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
     once_value_1 = fra.me.REG[2];
     register_static_object(&once_value_1);
   } else fra.me.REG[2] = once_value_1;
   fra.me.REG[2] = fra.me.REG[2];
   CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:369 */
+  /* compiling/compiling_global.nit:369 */
   fra.me.REG[2] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:370 */
+  /* compiling/compiling_global.nit:370 */
   REGB0 = TAG_Int(3);
   fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
   if (!once_value_2) {
     fra.me.REG[4] = BOX_NativeString("extern const classtable_elt_t VFT_");
     REGB0 = TAG_Int(34);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_2 = fra.me.REG[4];
     register_static_object(&once_value_2);
   } else fra.me.REG[4] = once_value_2;
@@ -3217,7 +3253,7 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
   if (!once_value_3) {
     fra.me.REG[4] = BOX_NativeString("[];");
     REGB0 = TAG_Int(3);
-    fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+    fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
     once_value_3 = fra.me.REG[4];
     register_static_object(&once_value_3);
   } else fra.me.REG[4] = once_value_3;
@@ -3225,13 +3261,13 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
   fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
   CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:371 */
+  /* compiling/compiling_global.nit:371 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
+      REGB1 = TAG_Bool(0);
       REGB0 = REGB1;
     } else {
       REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
@@ -3247,23 +3283,23 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
     REGB0 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[2])(fra.me.REG[2]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   } else {
-    REGB1 = TAG_Bool(false);
+    REGB1 = TAG_Bool(0);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_global.nit:372 */
+    /* compiling/compiling_global.nit:372 */
     REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
       nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 372);
     }
     fra.me.REG[2] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[2])(fra.me.REG[2]);
-    /* ./compiling//compiling_global.nit:373 */
+    /* compiling/compiling_global.nit:373 */
     REGB0 = TAG_Int(3);
     fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_4) {
       fra.me.REG[4] = BOX_NativeString("struct TBOX_");
       REGB0 = TAG_Int(12);
-      fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
       once_value_4 = fra.me.REG[4];
       register_static_object(&once_value_4);
     } else fra.me.REG[4] = once_value_4;
@@ -3275,20 +3311,20 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
     if (!once_value_5) {
       fra.me.REG[4] = BOX_NativeString("");
       REGB0 = TAG_Int(0);
-      fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
       once_value_5 = fra.me.REG[4];
       register_static_object(&once_value_5);
     } else fra.me.REG[4] = once_value_5;
     fra.me.REG[4] = fra.me.REG[4];
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
     fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
-    /* ./compiling//compiling_global.nit:374 */
+    /* compiling/compiling_global.nit:374 */
     REGB0 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_6) {
       fra.me.REG[5] = BOX_NativeString("");
       REGB0 = TAG_Int(0);
-      fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
+      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
       once_value_6 = fra.me.REG[5];
       register_static_object(&once_value_6);
     } else fra.me.REG[5] = once_value_6;
@@ -3298,7 +3334,7 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
     if (!once_value_7) {
       fra.me.REG[5] = BOX_NativeString(" { const classtable_elt_t * vft; bigint object_id; ");
       REGB0 = TAG_Int(51);
-      fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
+      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
       once_value_7 = fra.me.REG[5];
       register_static_object(&once_value_7);
     } else fra.me.REG[5] = once_value_7;
@@ -3308,7 +3344,7 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
     if (!once_value_8) {
       fra.me.REG[5] = BOX_NativeString(" val;};");
       REGB0 = TAG_Int(7);
-      fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
+      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
       once_value_8 = fra.me.REG[5];
       register_static_object(&once_value_8);
     } else fra.me.REG[5] = once_value_8;
@@ -3316,13 +3352,13 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-    /* ./compiling//compiling_global.nit:375 */
+    /* compiling/compiling_global.nit:375 */
     REGB0 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_9) {
       fra.me.REG[5] = BOX_NativeString("val_t BOX_");
       REGB0 = TAG_Int(10);
-      fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
+      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
       once_value_9 = fra.me.REG[5];
       register_static_object(&once_value_9);
     } else fra.me.REG[5] = once_value_9;
@@ -3334,7 +3370,7 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
     if (!once_value_10) {
       fra.me.REG[5] = BOX_NativeString("(");
       REGB0 = TAG_Int(1);
-      fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0);
+      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB0);
       once_value_10 = fra.me.REG[5];
       register_static_object(&once_value_10);
     } else fra.me.REG[5] = once_value_10;
@@ -3344,7 +3380,7 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
     if (!once_value_11) {
       fra.me.REG[2] = BOX_NativeString(" val);");
       REGB0 = TAG_Int(6);
-      fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
       once_value_11 = fra.me.REG[2];
       register_static_object(&once_value_11);
     } else fra.me.REG[2] = once_value_11;
@@ -3352,13 +3388,13 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
     fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
     CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-    /* ./compiling//compiling_global.nit:376 */
+    /* compiling/compiling_global.nit:376 */
     REGB0 = TAG_Int(5);
     fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_12) {
       fra.me.REG[2] = BOX_NativeString("#define UNBOX_");
       REGB0 = TAG_Int(14);
-      fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
       once_value_12 = fra.me.REG[2];
       register_static_object(&once_value_12);
     } else fra.me.REG[2] = once_value_12;
@@ -3370,7 +3406,7 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
     if (!once_value_13) {
       fra.me.REG[0] = BOX_NativeString("(x) (((");
       REGB0 = TAG_Int(7);
-      fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+      fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
       once_value_13 = fra.me.REG[0];
       register_static_object(&once_value_13);
     } else fra.me.REG[0] = once_value_13;
@@ -3380,7 +3416,7 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
     if (!once_value_14) {
       fra.me.REG[3] = BOX_NativeString(" *)(VAL2OBJ(x)))->val)");
       REGB0 = TAG_Int(22);
-      fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+      fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
       once_value_14 = fra.me.REG[3];
       register_static_object(&once_value_14);
     } else fra.me.REG[3] = once_value_14;
@@ -3392,6 +3428,7 @@ void compiling___compiling_global___MMLocalClass___declare_tables_to_c(val_t p0,
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_compiling___compiling_global___MMLocalClass___compile_tables_to_c[] = "compiling_global::MMLocalClass::compile_tables_to_c";
 void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
   val_t REGB0;
@@ -3482,27 +3519,27 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
   fra.me.REG[9] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:380 */
+  /* compiling/compiling_global.nit:380 */
   fra.me.REG[2] = fra.me.REG[0];
-  /* ./compiling//compiling_global.nit:383 */
+  /* compiling/compiling_global.nit:383 */
   fra.me.REG[3] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[3] = CALL_compiling___table_computation___Program___compiled_classes(fra.me.REG[3])(fra.me.REG[3]);
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[2])(fra.me.REG[2]);
   fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
-  /* ./compiling//compiling_global.nit:384 */
+  /* compiling/compiling_global.nit:384 */
   fra.me.REG[3] = CALL_compiling___table_computation___CompiledClass___class_table(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:386 */
+  /* compiling/compiling_global.nit:386 */
   fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
   fra.me.REG[5] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[5])(fra.me.REG[5]);
   REGB1 = CALL_compiling___table_computation___TableInformation___max_class_table_length(fra.me.REG[5])(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -3514,23 +3551,23 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:244 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB2));
-  /* ./compiling//compiling_global.nit:386 */
+  /* compiling/compiling_global.nit:386 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./compiling//compiling_global.nit:387 */
+    /* compiling/compiling_global.nit:387 */
     fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___program(fra.me.REG[1])(fra.me.REG[1]);
     fra.me.REG[5] = CALL_compiling___table_computation___Program___table_information(fra.me.REG[5])(fra.me.REG[5]);
     REGB2 = CALL_compiling___table_computation___TableInformation___max_class_table_length(fra.me.REG[5])(fra.me.REG[5]);
     REGB0 = REGB2;
   }
-  /* ./compiling//compiling_global.nit:390 */
+  /* compiling/compiling_global.nit:390 */
   REGB2 = TAG_Int(5);
   fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
   if (!once_value_1) {
     fra.me.REG[6] = BOX_NativeString("const classtable_elt_t VFT_");
     REGB2 = TAG_Int(27);
-    fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
     once_value_1 = fra.me.REG[6];
     register_static_object(&once_value_1);
   } else fra.me.REG[6] = once_value_1;
@@ -3541,7 +3578,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
   if (!once_value_2) {
     fra.me.REG[6] = BOX_NativeString("[");
     REGB2 = TAG_Int(1);
-    fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
     once_value_2 = fra.me.REG[6];
     register_static_object(&once_value_2);
   } else fra.me.REG[6] = once_value_2;
@@ -3552,7 +3589,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
   if (!once_value_3) {
     fra.me.REG[6] = BOX_NativeString("] = {");
     REGB2 = TAG_Int(5);
-    fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
     once_value_3 = fra.me.REG[6];
     register_static_object(&once_value_3);
   } else fra.me.REG[6] = once_value_3;
@@ -3560,24 +3597,24 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
   CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
   fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./compiling//compiling_global.nit:391 */
+  /* compiling/compiling_global.nit:391 */
   CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./../lib/standard//collection//array.nit:266 */
+  /* ../lib/standard/collection/array.nit:267 */
   fra.me.REG[5] = fra.me.REG[3];
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:271 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:272 */
   fra.me.REG[6] = ATTR_standard___collection___array___Array____items(fra.me.REG[5]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:273 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[5])!=NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
     } else {
@@ -3589,24 +3626,24 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:242 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:273 */
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
+        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:725 */
       fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB2)];
-      /* ./compiling//compiling_global.nit:393 */
+      /* compiling/compiling_global.nit:393 */
       REGB1 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
       } else {
         REGB3 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
         if (UNTAG_Bool(REGB3)) {
-          REGB3 = TAG_Bool(false);
+          REGB3 = TAG_Bool(0);
           REGB1 = REGB3;
         } else {
           REGB3 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], NIT_NULL);
@@ -3614,24 +3651,24 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         }
       }
       if (UNTAG_Bool(REGB1)) {
-        /* ./compiling//compiling_global.nit:394 */
+        /* compiling/compiling_global.nit:394 */
         if (!once_value_4) {
           fra.me.REG[8] = BOX_NativeString("{0} /* Class Hole :( */,");
           REGB1 = TAG_Int(24);
-          fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB1);
+          fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB1);
           once_value_4 = fra.me.REG[8];
           register_static_object(&once_value_4);
         } else fra.me.REG[8] = once_value_4;
         fra.me.REG[8] = fra.me.REG[8];
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
       } else {
-        /* ./compiling//compiling_global.nit:396 */
+        /* compiling/compiling_global.nit:396 */
         REGB1 = TAG_Int(3);
         fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB1);
         if (!once_value_5) {
           fra.me.REG[9] = BOX_NativeString("{(bigint) ");
           REGB1 = TAG_Int(10);
-          fra.me.REG[9] = NEW_String_standard___string___String___with_native(fra.me.REG[9], REGB1);
+          fra.me.REG[9] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[9])(fra.me.REG[9], REGB1);
           once_value_5 = fra.me.REG[9];
           register_static_object(&once_value_5);
         } else fra.me.REG[9] = once_value_5;
@@ -3646,7 +3683,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         if (!once_value_6) {
           fra.me.REG[7] = BOX_NativeString("},");
           REGB1 = TAG_Int(2);
-          fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB1);
+          fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB1);
           once_value_6 = fra.me.REG[7];
           register_static_object(&once_value_6);
         } else fra.me.REG[7] = once_value_6;
@@ -3655,19 +3692,19 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         fra.me.REG[8] = CALL_standard___string___Object___to_s(fra.me.REG[8])(fra.me.REG[8]);
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:275 */
       REGB1 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:245 */
       REGB1 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:275 */
       REGB2 = REGB1;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:273 */
       goto label7;
     }
   }
   label7: while(0);
-  /* ./../lib/standard//collection//array.nit:24 */
+  /* ../lib/standard/collection/array.nit:24 */
   REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -3679,62 +3716,62 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:244 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB2));
-  /* ./compiling//compiling_global.nit:399 */
+  /* compiling/compiling_global.nit:399 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./compiling//compiling_global.nit:400 */
+    /* compiling/compiling_global.nit:400 */
     if (!once_value_8) {
       fra.me.REG[6] = BOX_NativeString("{0},");
       REGB2 = TAG_Int(4);
-      fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
       once_value_8 = fra.me.REG[6];
       register_static_object(&once_value_8);
     } else fra.me.REG[6] = once_value_8;
     fra.me.REG[6] = fra.me.REG[6];
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:247 */
     REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
-    /* ./compiling//compiling_global.nit:400 */
+    /* compiling/compiling_global.nit:400 */
     fra.me.REG[6] = CALL_standard___string___String_____star(fra.me.REG[6])(fra.me.REG[6], REGB2);
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
   }
-  /* ./compiling//compiling_global.nit:402 */
+  /* compiling/compiling_global.nit:402 */
   CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:403 */
+  /* compiling/compiling_global.nit:403 */
   if (!once_value_9) {
     fra.me.REG[6] = BOX_NativeString("};");
     REGB2 = TAG_Int(2);
-    fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+    fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
     once_value_9 = fra.me.REG[6];
     register_static_object(&once_value_9);
   } else fra.me.REG[6] = once_value_9;
   fra.me.REG[6] = fra.me.REG[6];
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./compiling//compiling_global.nit:404 */
+  /* compiling/compiling_global.nit:404 */
   fra.me.REG[4] = CALL_compiling___table_computation___CompiledClass___instance_table(fra.me.REG[4])(fra.me.REG[4]);
-  /* ./../lib/standard//collection//array.nit:266 */
+  /* ../lib/standard/collection/array.nit:267 */
   fra.me.REG[6] = fra.me.REG[4];
-  /* ./../lib/standard//collection//array.nit:269 */
+  /* ../lib/standard/collection/array.nit:270 */
   REGB2 = TAG_Int(0);
-  /* ./../lib/standard//collection//array.nit:270 */
+  /* ../lib/standard/collection/array.nit:271 */
   REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
-    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 271);
   }
   REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6]);
-  /* ./../lib/standard//collection//array.nit:271 */
+  /* ../lib/standard/collection/array.nit:272 */
   fra.me.REG[3] = ATTR_standard___collection___array___Array____items(fra.me.REG[6]);
-  /* ./../lib/standard//collection//array.nit:272 */
+  /* ../lib/standard/collection/array.nit:273 */
   while(1) {
-    /* ./../lib/standard//collection//array.nit:24 */
+    /* ../lib/standard/collection/array.nit:24 */
     REGB0 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[6])!=NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
     } else {
@@ -3746,24 +3783,24 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:242 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
-    /* ./../lib/standard//collection//array.nit:272 */
+    /* ../lib/standard/collection/array.nit:273 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//collection//array.nit:273 */
+      /* ../lib/standard/collection/array.nit:274 */
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
+        nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 274);
       }
-      /* ./../lib/standard//collection//array.nit:718 */
+      /* ../lib/standard/collection/array.nit:725 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
-      /* ./compiling//compiling_global.nit:406 */
+      /* compiling/compiling_global.nit:406 */
       REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
       } else {
         REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
         if (UNTAG_Bool(REGB1)) {
-          REGB1 = TAG_Bool(false);
+          REGB1 = TAG_Bool(0);
           REGB0 = REGB1;
         } else {
           REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
@@ -3771,18 +3808,18 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         }
       }
       if (UNTAG_Bool(REGB0)) {
-        /* ./compiling//compiling_global.nit:407 */
+        /* compiling/compiling_global.nit:407 */
         if (!once_value_10) {
           fra.me.REG[8] = BOX_NativeString("/* Instance Hole :( */");
           REGB0 = TAG_Int(22);
-          fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
+          fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
           once_value_10 = fra.me.REG[8];
           register_static_object(&once_value_10);
         } else fra.me.REG[8] = once_value_10;
         fra.me.REG[8] = fra.me.REG[8];
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[8]);
       } else {
-        /* ./compiling//compiling_global.nit:409 */
+        /* compiling/compiling_global.nit:409 */
         REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
         if (UNTAG_Bool(REGB0)) {
           nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 409);
@@ -3790,31 +3827,31 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         fra.me.REG[5] = CALL_compiling___compiling_global___TableElt___compile_to_c(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[2]);
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
       }
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:275 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:245 */
       REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
-      /* ./../lib/standard//collection//array.nit:274 */
+      /* ../lib/standard/collection/array.nit:275 */
       REGB2 = REGB0;
     } else {
-      /* ./../lib/standard//collection//array.nit:272 */
+      /* ../lib/standard/collection/array.nit:273 */
       goto label11;
     }
   }
   label11: while(0);
-  /* ./compiling//compiling_global.nit:413 */
+  /* compiling/compiling_global.nit:413 */
   fra.me.REG[3] = CALL_primitive_info___MMLocalClass___primitive_info(fra.me.REG[2])(fra.me.REG[2]);
-  /* ./compiling//compiling_global.nit:414 */
+  /* compiling/compiling_global.nit:414 */
   fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[2])(fra.me.REG[2]);
   if (!once_value_12) {
     fra.me.REG[5] = BOX_NativeString("NativeArray");
     REGB2 = TAG_Int(11);
-    fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
+    fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
     once_value_12 = fra.me.REG[5];
     register_static_object(&once_value_12);
   } else fra.me.REG[5] = once_value_12;
   fra.me.REG[5] = fra.me.REG[5];
-  fra.me.REG[5] = CALL_standard___symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
+  fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]);
   REGB2 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[6],fra.me.REG[5]));
   if (UNTAG_Bool(REGB2)) {
   } else {
@@ -3822,45 +3859,45 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     REGB2 = REGB0;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./compiling//compiling_global.nit:415 */
+    /* compiling/compiling_global.nit:415 */
     if (!once_value_13) {
       fra.me.REG[5] = BOX_NativeString("val_t NEW_NativeArray(size_t length, size_t size) {");
       REGB2 = TAG_Int(51);
-      fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
+      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
       once_value_13 = fra.me.REG[5];
       register_static_object(&once_value_13);
     } else fra.me.REG[5] = once_value_13;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:416 */
+    /* compiling/compiling_global.nit:416 */
     CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./compiling//compiling_global.nit:417 */
+    /* compiling/compiling_global.nit:417 */
     if (!once_value_14) {
       fra.me.REG[5] = BOX_NativeString("Nit_NativeArray array;");
       REGB2 = TAG_Int(22);
-      fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
+      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
       once_value_14 = fra.me.REG[5];
       register_static_object(&once_value_14);
     } else fra.me.REG[5] = once_value_14;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:418 */
+    /* compiling/compiling_global.nit:418 */
     if (!once_value_15) {
       fra.me.REG[5] = BOX_NativeString("array = (Nit_NativeArray)alloc(sizeof(struct Nit_NativeArray) + ((length - 1) * size));");
       REGB2 = TAG_Int(87);
-      fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
+      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
       once_value_15 = fra.me.REG[5];
       register_static_object(&once_value_15);
     } else fra.me.REG[5] = once_value_15;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:419 */
+    /* compiling/compiling_global.nit:419 */
     REGB2 = TAG_Int(3);
     fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
     if (!once_value_16) {
       fra.me.REG[6] = BOX_NativeString("array->vft = (classtable_elt_t*)VFT_");
       REGB2 = TAG_Int(36);
-      fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
       once_value_16 = fra.me.REG[6];
       register_static_object(&once_value_16);
     } else fra.me.REG[6] = once_value_16;
@@ -3871,7 +3908,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     if (!once_value_17) {
       fra.me.REG[6] = BOX_NativeString(";");
       REGB2 = TAG_Int(1);
-      fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
       once_value_17 = fra.me.REG[6];
       register_static_object(&once_value_17);
     } else fra.me.REG[6] = once_value_17;
@@ -3879,66 +3916,66 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
     fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:420 */
+    /* compiling/compiling_global.nit:420 */
     if (!once_value_18) {
       fra.me.REG[5] = BOX_NativeString("array->object_id = object_id_counter;");
       REGB2 = TAG_Int(37);
-      fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
+      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
       once_value_18 = fra.me.REG[5];
       register_static_object(&once_value_18);
     } else fra.me.REG[5] = once_value_18;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:421 */
+    /* compiling/compiling_global.nit:421 */
     if (!once_value_19) {
       fra.me.REG[5] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
       REGB2 = TAG_Int(42);
-      fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
+      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
       once_value_19 = fra.me.REG[5];
       register_static_object(&once_value_19);
     } else fra.me.REG[5] = once_value_19;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:422 */
+    /* compiling/compiling_global.nit:422 */
     if (!once_value_20) {
       fra.me.REG[5] = BOX_NativeString("array->size = length;");
       REGB2 = TAG_Int(21);
-      fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
+      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
       once_value_20 = fra.me.REG[5];
       register_static_object(&once_value_20);
     } else fra.me.REG[5] = once_value_20;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:423 */
+    /* compiling/compiling_global.nit:423 */
     if (!once_value_21) {
       fra.me.REG[5] = BOX_NativeString("return OBJ2VAL(array);");
       REGB2 = TAG_Int(22);
-      fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
+      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
       once_value_21 = fra.me.REG[5];
       register_static_object(&once_value_21);
     } else fra.me.REG[5] = once_value_21;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-    /* ./compiling//compiling_global.nit:424 */
+    /* compiling/compiling_global.nit:424 */
     CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-    /* ./compiling//compiling_global.nit:425 */
+    /* compiling/compiling_global.nit:425 */
     if (!once_value_22) {
       fra.me.REG[5] = BOX_NativeString("}");
       REGB2 = TAG_Int(1);
-      fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
+      fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
       once_value_22 = fra.me.REG[5];
       register_static_object(&once_value_22);
     } else fra.me.REG[5] = once_value_22;
     fra.me.REG[5] = fra.me.REG[5];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
   } else {
-    /* ./compiling//compiling_global.nit:426 */
+    /* compiling/compiling_global.nit:426 */
     REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB0)) {
-        REGB0 = TAG_Bool(false);
+        REGB0 = TAG_Bool(0);
         REGB2 = REGB0;
       } else {
         REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
@@ -3946,13 +3983,13 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       }
     }
     if (UNTAG_Bool(REGB2)) {
-      /* ./compiling//compiling_global.nit:429 */
+      /* compiling/compiling_global.nit:429 */
       REGB2 = TAG_Int(3);
       fra.me.REG[5] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_23) {
         fra.me.REG[6] = BOX_NativeString("INIT_ATTRIBUTES__");
         REGB2 = TAG_Int(17);
-        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
         once_value_23 = fra.me.REG[6];
         register_static_object(&once_value_23);
       } else fra.me.REG[6] = once_value_23;
@@ -3963,21 +4000,21 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       if (!once_value_24) {
         fra.me.REG[6] = BOX_NativeString("");
         REGB2 = TAG_Int(0);
-        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
         once_value_24 = fra.me.REG[6];
         register_static_object(&once_value_24);
       } else fra.me.REG[6] = once_value_24;
       fra.me.REG[6] = fra.me.REG[6];
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]);
       fra.me.REG[5] = CALL_standard___string___Object___to_s(fra.me.REG[5])(fra.me.REG[5]);
-      /* ./compiling//compiling_global.nit:430 */
+      /* compiling/compiling_global.nit:430 */
       fra.me.REG[6] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[2])(fra.me.REG[2]);
       REGB2 = TAG_Int(3);
       fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_25) {
         fra.me.REG[7] = BOX_NativeString("init var of ");
         REGB2 = TAG_Int(12);
-        fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
+        fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB2);
         once_value_25 = fra.me.REG[7];
         register_static_object(&once_value_25);
       } else fra.me.REG[7] = once_value_25;
@@ -3989,7 +4026,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       if (!once_value_26) {
         fra.me.REG[7] = BOX_NativeString("");
         REGB2 = TAG_Int(0);
-        fra.me.REG[7] = NEW_String_standard___string___String___with_native(fra.me.REG[7], REGB2);
+        fra.me.REG[7] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[7])(fra.me.REG[7], REGB2);
         once_value_26 = fra.me.REG[7];
         register_static_object(&once_value_26);
       } else fra.me.REG[7] = once_value_26;
@@ -4001,40 +4038,40 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 430);
       }
       fra.me.REG[8] = CALL_compiling___compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[1], fra.me.REG[5], fra.me.REG[8], NIT_NULL, NIT_NULL);
-      /* ./compiling//compiling_global.nit:431 */
+      /* compiling/compiling_global.nit:431 */
       fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_global.nit:432 */
+      /* compiling/compiling_global.nit:432 */
       fra.me.REG[7] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
-      fra.me.REG[7] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[7])(fra.me.REG[7]);
+      fra.me.REG[7] = CALL_compiling_writer___Writer___sub(fra.me.REG[7])(fra.me.REG[7]);
       CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
-      /* ./compiling//compiling_global.nit:433 */
+      /* compiling/compiling_global.nit:433 */
       fra.me.REG[7] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[2])(fra.me.REG[2]);
       REGB2 = TAG_Bool(fra.me.REG[7]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 433);
       }
       CALL_compiling___compiling_icode___IRoutine___compile_to_c(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[1], fra.me.REG[5], fra.me.REG[8]);
-      /* ./compiling//compiling_global.nit:434 */
+      /* compiling/compiling_global.nit:434 */
       CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:435 */
+      /* compiling/compiling_global.nit:435 */
       CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_global.nit:436 */
+      /* compiling/compiling_global.nit:436 */
       if (!once_value_27) {
         fra.me.REG[6] = BOX_NativeString("}");
         REGB2 = TAG_Int(1);
-        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
         once_value_27 = fra.me.REG[6];
         register_static_object(&once_value_27);
       } else fra.me.REG[6] = once_value_27;
       fra.me.REG[6] = fra.me.REG[6];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:440 */
+      /* compiling/compiling_global.nit:440 */
       REGB2 = TAG_Int(3);
       fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_28) {
         fra.me.REG[8] = BOX_NativeString("val_t NEW_");
         REGB2 = TAG_Int(10);
-        fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
+        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
         once_value_28 = fra.me.REG[8];
         register_static_object(&once_value_28);
       } else fra.me.REG[8] = once_value_28;
@@ -4045,7 +4082,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       if (!once_value_29) {
         fra.me.REG[8] = BOX_NativeString("(void);");
         REGB2 = TAG_Int(7);
-        fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
+        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
         once_value_29 = fra.me.REG[8];
         register_static_object(&once_value_29);
       } else fra.me.REG[8] = once_value_29;
@@ -4053,13 +4090,13 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
       fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
       CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:441 */
+      /* compiling/compiling_global.nit:441 */
       REGB2 = TAG_Int(3);
       fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_30) {
         fra.me.REG[8] = BOX_NativeString("val_t NEW_");
         REGB2 = TAG_Int(10);
-        fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
+        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
         once_value_30 = fra.me.REG[8];
         register_static_object(&once_value_30);
       } else fra.me.REG[8] = once_value_30;
@@ -4070,7 +4107,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       if (!once_value_31) {
         fra.me.REG[8] = BOX_NativeString("(void)");
         REGB2 = TAG_Int(6);
-        fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
+        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
         once_value_31 = fra.me.REG[8];
         register_static_object(&once_value_31);
       } else fra.me.REG[8] = once_value_31;
@@ -4078,54 +4115,54 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
       fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:442 */
+      /* compiling/compiling_global.nit:442 */
       if (!once_value_32) {
         fra.me.REG[6] = BOX_NativeString("{");
         REGB2 = TAG_Int(1);
-        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
         once_value_32 = fra.me.REG[6];
         register_static_object(&once_value_32);
       } else fra.me.REG[6] = once_value_32;
       fra.me.REG[6] = fra.me.REG[6];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:443 */
+      /* compiling/compiling_global.nit:443 */
       CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_global.nit:444 */
+      /* compiling/compiling_global.nit:444 */
       if (!once_value_33) {
         fra.me.REG[6] = BOX_NativeString("obj_t obj;");
         REGB2 = TAG_Int(10);
-        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
         once_value_33 = fra.me.REG[6];
         register_static_object(&once_value_33);
       } else fra.me.REG[6] = once_value_33;
       fra.me.REG[6] = fra.me.REG[6];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:445 */
+      /* compiling/compiling_global.nit:445 */
       REGB2 = TAG_Int(3);
       fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_34) {
         fra.me.REG[8] = BOX_NativeString("obj = alloc(sizeof(val_t) * ");
         REGB2 = TAG_Int(28);
-        fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
+        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
         once_value_34 = fra.me.REG[8];
         register_static_object(&once_value_34);
       } else fra.me.REG[8] = once_value_34;
       fra.me.REG[8] = fra.me.REG[8];
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[8]);
-      /* ./../lib/standard//collection//array.nit:24 */
+      /* ../lib/standard/collection/array.nit:24 */
       REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
       } else {
         nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
       }
       REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-      /* ./compiling//compiling_global.nit:445 */
+      /* compiling/compiling_global.nit:445 */
       fra.me.REG[4] = CALL_standard___string___Object___to_s(REGB2)(REGB2);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
       if (!once_value_35) {
         fra.me.REG[4] = BOX_NativeString(");");
         REGB2 = TAG_Int(2);
-        fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
+        fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
         once_value_35 = fra.me.REG[4];
         register_static_object(&once_value_35);
       } else fra.me.REG[4] = once_value_35;
@@ -4133,13 +4170,13 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
       fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:446 */
+      /* compiling/compiling_global.nit:446 */
       REGB2 = TAG_Int(3);
       fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_36) {
         fra.me.REG[4] = BOX_NativeString("obj->vft = (classtable_elt_t*)VFT_");
         REGB2 = TAG_Int(34);
-        fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
+        fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
         once_value_36 = fra.me.REG[4];
         register_static_object(&once_value_36);
       } else fra.me.REG[4] = once_value_36;
@@ -4150,7 +4187,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       if (!once_value_37) {
         fra.me.REG[4] = BOX_NativeString(";");
         REGB2 = TAG_Int(1);
-        fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
+        fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
         once_value_37 = fra.me.REG[4];
         register_static_object(&once_value_37);
       } else fra.me.REG[4] = once_value_37;
@@ -4158,55 +4195,55 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
       fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:447 */
+      /* compiling/compiling_global.nit:447 */
       if (!once_value_38) {
         fra.me.REG[6] = BOX_NativeString("obj[1].object_id = object_id_counter;");
         REGB2 = TAG_Int(37);
-        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
         once_value_38 = fra.me.REG[6];
         register_static_object(&once_value_38);
       } else fra.me.REG[6] = once_value_38;
       fra.me.REG[6] = fra.me.REG[6];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:448 */
+      /* compiling/compiling_global.nit:448 */
       if (!once_value_39) {
         fra.me.REG[6] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
         REGB2 = TAG_Int(42);
-        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
         once_value_39 = fra.me.REG[6];
         register_static_object(&once_value_39);
       } else fra.me.REG[6] = once_value_39;
       fra.me.REG[6] = fra.me.REG[6];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:449 */
+      /* compiling/compiling_global.nit:449 */
       if (!once_value_40) {
         fra.me.REG[6] = BOX_NativeString("return OBJ2VAL(obj);");
         REGB2 = TAG_Int(20);
-        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
         once_value_40 = fra.me.REG[6];
         register_static_object(&once_value_40);
       } else fra.me.REG[6] = once_value_40;
       fra.me.REG[6] = fra.me.REG[6];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:450 */
+      /* compiling/compiling_global.nit:450 */
       CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_global.nit:451 */
+      /* compiling/compiling_global.nit:451 */
       if (!once_value_41) {
         fra.me.REG[6] = BOX_NativeString("}");
         REGB2 = TAG_Int(1);
-        fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB2);
+        fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB2);
         once_value_41 = fra.me.REG[6];
         register_static_object(&once_value_41);
       } else fra.me.REG[6] = once_value_41;
       fra.me.REG[6] = fra.me.REG[6];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:455 */
+      /* compiling/compiling_global.nit:455 */
       REGB2 = TAG_Int(3);
       fra.me.REG[6] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_42) {
         fra.me.REG[4] = BOX_NativeString("CHECKNEW_");
         REGB2 = TAG_Int(9);
-        fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
+        fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
         once_value_42 = fra.me.REG[4];
         register_static_object(&once_value_42);
       } else fra.me.REG[4] = once_value_42;
@@ -4217,21 +4254,21 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       if (!once_value_43) {
         fra.me.REG[4] = BOX_NativeString("");
         REGB2 = TAG_Int(0);
-        fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
+        fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
         once_value_43 = fra.me.REG[4];
         register_static_object(&once_value_43);
       } else fra.me.REG[4] = once_value_43;
       fra.me.REG[4] = fra.me.REG[4];
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]);
       fra.me.REG[6] = CALL_standard___string___Object___to_s(fra.me.REG[6])(fra.me.REG[6]);
-      /* ./compiling//compiling_global.nit:456 */
+      /* compiling/compiling_global.nit:456 */
       fra.me.REG[4] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[2])(fra.me.REG[2]);
       REGB2 = TAG_Int(3);
       fra.me.REG[8] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_44) {
         fra.me.REG[5] = BOX_NativeString("check new ");
         REGB2 = TAG_Int(10);
-        fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
+        fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
         once_value_44 = fra.me.REG[5];
         register_static_object(&once_value_44);
       } else fra.me.REG[5] = once_value_44;
@@ -4243,7 +4280,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       if (!once_value_45) {
         fra.me.REG[5] = BOX_NativeString("");
         REGB2 = TAG_Int(0);
-        fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB2);
+        fra.me.REG[5] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[5])(fra.me.REG[5], REGB2);
         once_value_45 = fra.me.REG[5];
         register_static_object(&once_value_45);
       } else fra.me.REG[5] = once_value_45;
@@ -4255,47 +4292,47 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 456);
       }
       fra.me.REG[8] = CALL_compiling___compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[6], fra.me.REG[8], NIT_NULL, NIT_NULL);
-      /* ./compiling//compiling_global.nit:457 */
+      /* compiling/compiling_global.nit:457 */
       fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_global.nit:458 */
+      /* compiling/compiling_global.nit:458 */
       fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
-      fra.me.REG[5] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[5])(fra.me.REG[5]);
+      fra.me.REG[5] = CALL_compiling_writer___Writer___sub(fra.me.REG[5])(fra.me.REG[5]);
       CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-      /* ./compiling//compiling_global.nit:459 */
+      /* compiling/compiling_global.nit:459 */
       fra.me.REG[5] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[2])(fra.me.REG[2]);
       REGB2 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 459);
       }
       CALL_compiling___compiling_icode___IRoutine___compile_to_c(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[1], fra.me.REG[6], fra.me.REG[8]);
-      /* ./compiling//compiling_global.nit:460 */
+      /* compiling/compiling_global.nit:460 */
       CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-      /* ./compiling//compiling_global.nit:461 */
+      /* compiling/compiling_global.nit:461 */
       CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-      /* ./compiling//compiling_global.nit:462 */
+      /* compiling/compiling_global.nit:462 */
       if (!once_value_46) {
         fra.me.REG[4] = BOX_NativeString("}");
         REGB2 = TAG_Int(1);
-        fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
+        fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
         once_value_46 = fra.me.REG[4];
         register_static_object(&once_value_46);
       } else fra.me.REG[4] = once_value_46;
       fra.me.REG[4] = fra.me.REG[4];
       CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-      /* ./compiling//compiling_global.nit:465 */
+      /* compiling/compiling_global.nit:465 */
       fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___cshe(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___greaters(fra.me.REG[4])(fra.me.REG[4]);
       REGB2 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[4])(fra.me.REG[4]);
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:245 */
       REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
-      /* ./compiling//compiling_global.nit:466 */
+      /* compiling/compiling_global.nit:466 */
       REGB2 = TAG_Int(5);
       fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
       if (!once_value_47) {
         fra.me.REG[8] = BOX_NativeString("int init_table[");
         REGB2 = TAG_Int(15);
-        fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
+        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
         once_value_47 = fra.me.REG[8];
         register_static_object(&once_value_47);
       } else fra.me.REG[8] = once_value_47;
@@ -4306,7 +4343,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       if (!once_value_48) {
         fra.me.REG[8] = BOX_NativeString("] = {0");
         REGB2 = TAG_Int(6);
-        fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
+        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
         once_value_48 = fra.me.REG[8];
         register_static_object(&once_value_48);
       } else fra.me.REG[8] = once_value_48;
@@ -4315,32 +4352,32 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       if (!once_value_49) {
         fra.me.REG[8] = BOX_NativeString(", 0");
         REGB2 = TAG_Int(3);
-        fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
+        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
         once_value_49 = fra.me.REG[8];
         register_static_object(&once_value_49);
       } else fra.me.REG[8] = once_value_49;
       fra.me.REG[8] = fra.me.REG[8];
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:247 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB2));
-      /* ./compiling//compiling_global.nit:466 */
+      /* compiling/compiling_global.nit:466 */
       fra.me.REG[8] = CALL_standard___string___String_____star(fra.me.REG[8])(fra.me.REG[8], REGB2);
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
       if (!once_value_50) {
         fra.me.REG[8] = BOX_NativeString("};");
         REGB2 = TAG_Int(2);
-        fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
+        fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
         once_value_50 = fra.me.REG[8];
         register_static_object(&once_value_50);
       } else fra.me.REG[8] = once_value_50;
       fra.me.REG[8] = fra.me.REG[8];
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]);
       fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
-      /* ./compiling//compiling_global.nit:468 */
+      /* compiling/compiling_global.nit:468 */
       fra.me.REG[8] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(fra.me.REG[2])(fra.me.REG[2]);
       CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[8])(fra.me.REG[8], (&(fra.me)), ((fun_t)OC_compiling___compiling_global___MMLocalClass___compile_tables_to_c_51));
     } else {
-      /* ./compiling//compiling_global.nit:485 */
+      /* compiling/compiling_global.nit:485 */
       REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 485);
@@ -4348,19 +4385,19 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
       REGB2 = CALL_primitive_info___PrimitiveInfo___tagged(fra.me.REG[3])(fra.me.REG[3]);
       REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
       if (UNTAG_Bool(REGB2)) {
-        /* ./compiling//compiling_global.nit:486 */
+        /* compiling/compiling_global.nit:486 */
         REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
         if (UNTAG_Bool(REGB2)) {
           nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 486);
         }
         fra.me.REG[3] = CALL_primitive_info___PrimitiveInfo___cname(fra.me.REG[3])(fra.me.REG[3]);
-        /* ./compiling//compiling_global.nit:487 */
+        /* compiling/compiling_global.nit:487 */
         REGB2 = TAG_Int(3);
         fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_62) {
           fra.me.REG[4] = BOX_NativeString("struct TBOX_");
           REGB2 = TAG_Int(12);
-          fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
+          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
           once_value_62 = fra.me.REG[4];
           register_static_object(&once_value_62);
         } else fra.me.REG[4] = once_value_62;
@@ -4372,20 +4409,20 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         if (!once_value_63) {
           fra.me.REG[4] = BOX_NativeString("");
           REGB2 = TAG_Int(0);
-          fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
+          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
           once_value_63 = fra.me.REG[4];
           register_static_object(&once_value_63);
         } else fra.me.REG[4] = once_value_63;
         fra.me.REG[4] = fra.me.REG[4];
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
         fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
-        /* ./compiling//compiling_global.nit:488 */
+        /* compiling/compiling_global.nit:488 */
         REGB2 = TAG_Int(5);
         fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_64) {
           fra.me.REG[8] = BOX_NativeString("val_t BOX_");
           REGB2 = TAG_Int(10);
-          fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
+          fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
           once_value_64 = fra.me.REG[8];
           register_static_object(&once_value_64);
         } else fra.me.REG[8] = once_value_64;
@@ -4397,7 +4434,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         if (!once_value_65) {
           fra.me.REG[8] = BOX_NativeString("(");
           REGB2 = TAG_Int(1);
-          fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB2);
+          fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB2);
           once_value_65 = fra.me.REG[8];
           register_static_object(&once_value_65);
         } else fra.me.REG[8] = once_value_65;
@@ -4407,7 +4444,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         if (!once_value_66) {
           fra.me.REG[3] = BOX_NativeString(" val) {");
           REGB2 = TAG_Int(7);
-          fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
+          fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB2);
           once_value_66 = fra.me.REG[3];
           register_static_object(&once_value_66);
         } else fra.me.REG[3] = once_value_66;
@@ -4415,15 +4452,15 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
         fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:489 */
+        /* compiling/compiling_global.nit:489 */
         CALL_compiling___compiling_base___CompilerVisitor___indent(fra.me.REG[1])(fra.me.REG[1]);
-        /* ./compiling//compiling_global.nit:490 */
+        /* compiling/compiling_global.nit:490 */
         REGB2 = TAG_Int(7);
         fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_67) {
           fra.me.REG[3] = BOX_NativeString("");
           REGB2 = TAG_Int(0);
-          fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
+          fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB2);
           once_value_67 = fra.me.REG[3];
           register_static_object(&once_value_67);
         } else fra.me.REG[3] = once_value_67;
@@ -4433,7 +4470,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         if (!once_value_68) {
           fra.me.REG[3] = BOX_NativeString(" *box = (");
           REGB2 = TAG_Int(9);
-          fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
+          fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB2);
           once_value_68 = fra.me.REG[3];
           register_static_object(&once_value_68);
         } else fra.me.REG[3] = once_value_68;
@@ -4443,7 +4480,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         if (!once_value_69) {
           fra.me.REG[3] = BOX_NativeString("*)alloc(sizeof(");
           REGB2 = TAG_Int(15);
-          fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB2);
+          fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB2);
           once_value_69 = fra.me.REG[3];
           register_static_object(&once_value_69);
         } else fra.me.REG[3] = once_value_69;
@@ -4453,7 +4490,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         if (!once_value_70) {
           fra.me.REG[0] = BOX_NativeString("));");
           REGB2 = TAG_Int(3);
-          fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
+          fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB2);
           once_value_70 = fra.me.REG[0];
           register_static_object(&once_value_70);
         } else fra.me.REG[0] = once_value_70;
@@ -4461,13 +4498,13 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
         fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:491 */
+        /* compiling/compiling_global.nit:491 */
         REGB2 = TAG_Int(3);
         fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB2);
         if (!once_value_71) {
           fra.me.REG[0] = BOX_NativeString("box->vft = VFT_");
           REGB2 = TAG_Int(15);
-          fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB2);
+          fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB2);
           once_value_71 = fra.me.REG[0];
           register_static_object(&once_value_71);
         } else fra.me.REG[0] = once_value_71;
@@ -4478,7 +4515,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         if (!once_value_72) {
           fra.me.REG[2] = BOX_NativeString(";");
           REGB2 = TAG_Int(1);
-          fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB2);
+          fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB2);
           once_value_72 = fra.me.REG[2];
           register_static_object(&once_value_72);
         } else fra.me.REG[2] = once_value_72;
@@ -4486,53 +4523,53 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
         fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:492 */
+        /* compiling/compiling_global.nit:492 */
         if (!once_value_73) {
           fra.me.REG[4] = BOX_NativeString("box->val = val;");
           REGB2 = TAG_Int(15);
-          fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
+          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
           once_value_73 = fra.me.REG[4];
           register_static_object(&once_value_73);
         } else fra.me.REG[4] = once_value_73;
         fra.me.REG[4] = fra.me.REG[4];
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:493 */
+        /* compiling/compiling_global.nit:493 */
         if (!once_value_74) {
           fra.me.REG[4] = BOX_NativeString("box->object_id = object_id_counter;");
           REGB2 = TAG_Int(35);
-          fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
+          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
           once_value_74 = fra.me.REG[4];
           register_static_object(&once_value_74);
         } else fra.me.REG[4] = once_value_74;
         fra.me.REG[4] = fra.me.REG[4];
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:494 */
+        /* compiling/compiling_global.nit:494 */
         if (!once_value_75) {
           fra.me.REG[4] = BOX_NativeString("object_id_counter = object_id_counter + 1;");
           REGB2 = TAG_Int(42);
-          fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
+          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
           once_value_75 = fra.me.REG[4];
           register_static_object(&once_value_75);
         } else fra.me.REG[4] = once_value_75;
         fra.me.REG[4] = fra.me.REG[4];
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:495 */
+        /* compiling/compiling_global.nit:495 */
         if (!once_value_76) {
           fra.me.REG[4] = BOX_NativeString("return OBJ2VAL(box);");
           REGB2 = TAG_Int(20);
-          fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
+          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
           once_value_76 = fra.me.REG[4];
           register_static_object(&once_value_76);
         } else fra.me.REG[4] = once_value_76;
         fra.me.REG[4] = fra.me.REG[4];
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:496 */
+        /* compiling/compiling_global.nit:496 */
         CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-        /* ./compiling//compiling_global.nit:497 */
+        /* compiling/compiling_global.nit:497 */
         if (!once_value_77) {
           fra.me.REG[4] = BOX_NativeString("}");
           REGB2 = TAG_Int(1);
-          fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB2);
+          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB2);
           once_value_77 = fra.me.REG[4];
           register_static_object(&once_value_77);
         } else fra.me.REG[4] = once_value_77;
@@ -4574,28 +4611,28 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         fra.me.closure_funs = CREG;
         fra.me.REG[0] = p0;
         CREG[0] = clos_fun0;
-        /* ./compiling//compiling_global.nit:469 */
+        /* compiling/compiling_global.nit:469 */
         fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
-        /* ./compiling//compiling_global.nit:471 */
+        /* compiling/compiling_global.nit:471 */
         fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
         REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[1])(fra.me.REG[1], closctx->REG[2]);
         REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
         if (UNTAG_Bool(REGB0)) {
           goto label52;
         }
-        /* ./compiling//compiling_global.nit:472 */
+        /* compiling/compiling_global.nit:472 */
         REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
         if (UNTAG_Bool(REGB0)) {
         } else {
           nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_global, 472);
         }
-        /* ./compiling//compiling_global.nit:474 */
+        /* compiling/compiling_global.nit:474 */
         REGB0 = TAG_Int(5);
         fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_53) {
           fra.me.REG[2] = BOX_NativeString("NEW_");
           REGB0 = TAG_Int(4);
-          fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+          fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
           once_value_53 = fra.me.REG[2];
           register_static_object(&once_value_53);
         } else fra.me.REG[2] = once_value_53;
@@ -4606,7 +4643,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         if (!once_value_54) {
           fra.me.REG[2] = BOX_NativeString("_");
           REGB0 = TAG_Int(1);
-          fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+          fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
           once_value_54 = fra.me.REG[2];
           register_static_object(&once_value_54);
         } else fra.me.REG[2] = once_value_54;
@@ -4619,14 +4656,14 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         if (!once_value_55) {
           fra.me.REG[2] = BOX_NativeString("");
           REGB0 = TAG_Int(0);
-          fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+          fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
           once_value_55 = fra.me.REG[2];
           register_static_object(&once_value_55);
         } else fra.me.REG[2] = once_value_55;
         fra.me.REG[2] = fra.me.REG[2];
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
         fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
-        /* ./compiling//compiling_global.nit:475 */
+        /* compiling/compiling_global.nit:475 */
         fra.me.REG[2] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[2])(closctx->REG[2]);
         fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
         REGB0 = TAG_Int(5);
@@ -4634,7 +4671,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         if (!once_value_56) {
           fra.me.REG[4] = BOX_NativeString("new ");
           REGB0 = TAG_Int(4);
-          fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
           once_value_56 = fra.me.REG[4];
           register_static_object(&once_value_56);
         } else fra.me.REG[4] = once_value_56;
@@ -4645,7 +4682,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         if (!once_value_57) {
           fra.me.REG[4] = BOX_NativeString(" ");
           REGB0 = TAG_Int(1);
-          fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
           once_value_57 = fra.me.REG[4];
           register_static_object(&once_value_57);
         } else fra.me.REG[4] = once_value_57;
@@ -4656,7 +4693,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         if (!once_value_58) {
           fra.me.REG[4] = BOX_NativeString("");
           REGB0 = TAG_Int(0);
-          fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+          fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
           once_value_58 = fra.me.REG[4];
           register_static_object(&once_value_58);
         } else fra.me.REG[4] = once_value_58;
@@ -4668,15 +4705,15 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
           nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 475);
         }
         fra.me.REG[3] = CALL_compiling___compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[2])(fra.me.REG[2], closctx->REG[1], fra.me.REG[1], fra.me.REG[3], NIT_NULL, NIT_NULL);
-        /* ./compiling//compiling_global.nit:476 */
+        /* compiling/compiling_global.nit:476 */
         fra.me.REG[2] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(closctx->REG[1])(closctx->REG[1]);
-        /* ./compiling//compiling_global.nit:477 */
+        /* compiling/compiling_global.nit:477 */
         fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___writer(closctx->REG[1])(closctx->REG[1]);
-        fra.me.REG[4] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[4])(fra.me.REG[4]);
+        fra.me.REG[4] = CALL_compiling_writer___Writer___sub(fra.me.REG[4])(fra.me.REG[4]);
         CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(closctx->REG[1])(closctx->REG[1], fra.me.REG[4]);
-        /* ./compiling//compiling_global.nit:478 */
+        /* compiling/compiling_global.nit:478 */
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(closctx->REG[1])(closctx->REG[1], closctx->REG[4]);
-        /* ./compiling//compiling_global.nit:479 */
+        /* compiling/compiling_global.nit:479 */
         fra.me.REG[4] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[2])(closctx->REG[2]);
         fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[0]);
         REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
@@ -4689,13 +4726,13 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         } else {
           nit_abort("Cast failed", NULL, LOCATE_compiling___compiling_global, 479);
         }
-        /* ./compiling//compiling_global.nit:480 */
+        /* compiling/compiling_global.nit:480 */
         REGB0 = TAG_Int(3);
         fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
         if (!once_value_59) {
           fra.me.REG[0] = BOX_NativeString("return ");
           REGB0 = TAG_Int(7);
-          fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+          fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
           once_value_59 = fra.me.REG[0];
           register_static_object(&once_value_59);
         } else fra.me.REG[0] = once_value_59;
@@ -4705,7 +4742,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         if (!once_value_60) {
           fra.me.REG[3] = BOX_NativeString(";");
           REGB0 = TAG_Int(1);
-          fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+          fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
           once_value_60 = fra.me.REG[3];
           register_static_object(&once_value_60);
         } else fra.me.REG[3] = once_value_60;
@@ -4713,15 +4750,15 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]);
         fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
         CALL_compiling___compiling_base___CompilerVisitor___add_instr(closctx->REG[1])(closctx->REG[1], fra.me.REG[1]);
-        /* ./compiling//compiling_global.nit:481 */
+        /* compiling/compiling_global.nit:481 */
         CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(closctx->REG[1])(closctx->REG[1], fra.me.REG[2]);
-        /* ./compiling//compiling_global.nit:482 */
+        /* compiling/compiling_global.nit:482 */
         CALL_compiling___compiling_base___CompilerVisitor___unindent(closctx->REG[1])(closctx->REG[1]);
-        /* ./compiling//compiling_global.nit:483 */
+        /* compiling/compiling_global.nit:483 */
         if (!once_value_61) {
           fra.me.REG[2] = BOX_NativeString("}");
           REGB0 = TAG_Int(1);
-          fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+          fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
           once_value_61 = fra.me.REG[2];
           register_static_object(&once_value_61);
         } else fra.me.REG[2] = once_value_61;
@@ -4731,6 +4768,7 @@ void compiling___compiling_global___MMLocalClass___compile_tables_to_c(val_t p0,
         stack_frame_head = fra.me.prev;
         return;
       }
+static const char LOCATE_compiling___compiling_global___MMMethod___compile_property_to_c[] = "compiling_global::MMMethod::compile_property_to_c";
 void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
   val_t REGB0;
@@ -4769,15 +4807,15 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
   fra.me.REG[8] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./compiling//compiling_global.nit:505 */
+  /* compiling/compiling_global.nit:505 */
   fra.me.REG[2] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:506 */
+  /* compiling/compiling_global.nit:506 */
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
+      REGB1 = TAG_Bool(0);
       REGB0 = REGB1;
     } else {
       REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
@@ -4789,23 +4827,23 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
   } else {
     nit_abort("Assert failed", NULL, LOCATE_compiling___compiling_global, 506);
   }
-  /* ./compiling//compiling_global.nit:508 */
+  /* compiling/compiling_global.nit:508 */
   fra.me.REG[3] = NIT_NULL;
-  /* ./compiling//compiling_global.nit:509 */
+  /* compiling/compiling_global.nit:509 */
   fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[4])(fra.me.REG[4]);
   if (UNTAG_Bool(REGB0)) {
     if (!once_value_1) {
       fra.me.REG[4] = BOX_NativeString("int* init_table");
       REGB0 = TAG_Int(15);
-      fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
+      fra.me.REG[4] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[4])(fra.me.REG[4], REGB0);
       once_value_1 = fra.me.REG[4];
       register_static_object(&once_value_1);
     } else fra.me.REG[4] = once_value_1;
     fra.me.REG[4] = fra.me.REG[4];
     fra.me.REG[3] = fra.me.REG[4];
   }
-  /* ./compiling//compiling_global.nit:510 */
+  /* compiling/compiling_global.nit:510 */
   fra.me.REG[4] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
   fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
@@ -4813,31 +4851,31 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 510);
   }
   fra.me.REG[3] = CALL_compiling___compiling_icode___IRoutine___compile_signature_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[4], fra.me.REG[5], NIT_NULL, fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:511 */
+  /* compiling/compiling_global.nit:511 */
   fra.me.REG[5] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:512 */
+  /* compiling/compiling_global.nit:512 */
   fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[4] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[4])(fra.me.REG[4]);
+  fra.me.REG[4] = CALL_compiling_writer___Writer___sub(fra.me.REG[4])(fra.me.REG[4]);
   CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
-  /* ./compiling//compiling_global.nit:513 */
+  /* compiling/compiling_global.nit:513 */
   fra.me.REG[4] = CALL_compiling___compiling_base___CompilerVisitor___decl_writer(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:514 */
+  /* compiling/compiling_global.nit:514 */
   fra.me.REG[6] = CALL_compiling___compiling_base___CompilerVisitor___writer(fra.me.REG[1])(fra.me.REG[1]);
-  fra.me.REG[6] = CALL_compiling___compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
+  fra.me.REG[6] = CALL_compiling_writer___Writer___sub(fra.me.REG[6])(fra.me.REG[6]);
   CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6]);
-  /* ./compiling//compiling_global.nit:516 */
+  /* compiling/compiling_global.nit:516 */
   fra.me.REG[6] = NIT_NULL;
-  /* ./compiling//compiling_global.nit:517 */
+  /* compiling/compiling_global.nit:517 */
   fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra.me.REG[7])(fra.me.REG[7]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_global.nit:518 */
+    /* compiling/compiling_global.nit:518 */
     REGB0 = TAG_Int(3);
     fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_2) {
       fra.me.REG[8] = BOX_NativeString("itpos");
       REGB0 = TAG_Int(5);
-      fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
+      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
       once_value_2 = fra.me.REG[8];
       register_static_object(&once_value_2);
     } else fra.me.REG[8] = once_value_2;
@@ -4849,7 +4887,7 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     if (!once_value_3) {
       fra.me.REG[8] = BOX_NativeString("");
       REGB0 = TAG_Int(0);
-      fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
+      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
       once_value_3 = fra.me.REG[8];
       register_static_object(&once_value_3);
     } else fra.me.REG[8] = once_value_3;
@@ -4857,13 +4895,13 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
     fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
     fra.me.REG[6] = fra.me.REG[7];
-    /* ./compiling//compiling_global.nit:519 */
+    /* compiling/compiling_global.nit:519 */
     REGB0 = TAG_Int(7);
     fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_4) {
       fra.me.REG[8] = BOX_NativeString("int ");
       REGB0 = TAG_Int(4);
-      fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
+      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
       once_value_4 = fra.me.REG[8];
       register_static_object(&once_value_4);
     } else fra.me.REG[8] = once_value_4;
@@ -4873,7 +4911,7 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     if (!once_value_5) {
       fra.me.REG[8] = BOX_NativeString(" = VAL2OBJ(");
       REGB0 = TAG_Int(11);
-      fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
+      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
       once_value_5 = fra.me.REG[8];
       register_static_object(&once_value_5);
     } else fra.me.REG[8] = once_value_5;
@@ -4884,7 +4922,7 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     if (!once_value_6) {
       fra.me.REG[8] = BOX_NativeString(")->vft[");
       REGB0 = TAG_Int(7);
-      fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
+      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
       once_value_6 = fra.me.REG[8];
       register_static_object(&once_value_6);
     } else fra.me.REG[8] = once_value_6;
@@ -4897,7 +4935,7 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     if (!once_value_7) {
       fra.me.REG[8] = BOX_NativeString("].i;");
       REGB0 = TAG_Int(4);
-      fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
+      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
       once_value_7 = fra.me.REG[8];
       register_static_object(&once_value_7);
     } else fra.me.REG[8] = once_value_7;
@@ -4905,13 +4943,13 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[8]);
     fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
     CALL_compiling___compiling_base___CompilerVisitor___add_decl(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
-    /* ./compiling//compiling_global.nit:520 */
+    /* compiling/compiling_global.nit:520 */
     REGB0 = TAG_Int(3);
     fra.me.REG[7] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_8) {
       fra.me.REG[8] = BOX_NativeString("if (init_table[");
       REGB0 = TAG_Int(15);
-      fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
+      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
       once_value_8 = fra.me.REG[8];
       register_static_object(&once_value_8);
     } else fra.me.REG[8] = once_value_8;
@@ -4921,7 +4959,7 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     if (!once_value_9) {
       fra.me.REG[8] = BOX_NativeString("]) return;");
       REGB0 = TAG_Int(10);
-      fra.me.REG[8] = NEW_String_standard___string___String___with_native(fra.me.REG[8], REGB0);
+      fra.me.REG[8] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[8])(fra.me.REG[8], REGB0);
       once_value_9 = fra.me.REG[8];
       register_static_object(&once_value_9);
     } else fra.me.REG[8] = once_value_9;
@@ -4930,20 +4968,20 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     fra.me.REG[7] = CALL_standard___string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[7]);
   }
-  /* ./compiling//compiling_global.nit:523 */
+  /* compiling/compiling_global.nit:523 */
   fra.me.REG[0] = CALL_compiling___compiling_base___MMLocalProperty___cname(fra.me.REG[0])(fra.me.REG[0]);
   REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
     nit_abort("Reciever is null", NULL, LOCATE_compiling___compiling_global, 523);
   }
   fra.me.REG[3] = CALL_compiling___compiling_icode___IRoutine___compile_to_c(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
-  /* ./compiling//compiling_global.nit:525 */
+  /* compiling/compiling_global.nit:525 */
   REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
+      REGB1 = TAG_Bool(0);
       REGB0 = REGB1;
     } else {
       REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
@@ -4952,13 +4990,13 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
   }
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_global.nit:526 */
+    /* compiling/compiling_global.nit:526 */
     REGB0 = TAG_Int(3);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_10) {
       fra.me.REG[2] = BOX_NativeString("init_table[");
       REGB0 = TAG_Int(11);
-      fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
+      fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB0);
       once_value_10 = fra.me.REG[2];
       register_static_object(&once_value_10);
     } else fra.me.REG[2] = once_value_10;
@@ -4968,7 +5006,7 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     if (!once_value_11) {
       fra.me.REG[6] = BOX_NativeString("] = 1;");
       REGB0 = TAG_Int(6);
-      fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
+      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
       once_value_11 = fra.me.REG[6];
       register_static_object(&once_value_11);
     } else fra.me.REG[6] = once_value_11;
@@ -4977,13 +5015,13 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./compiling//compiling_global.nit:528 */
+  /* compiling/compiling_global.nit:528 */
   REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
   if (UNTAG_Bool(REGB0)) {
   } else {
     REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
+      REGB1 = TAG_Bool(0);
       REGB0 = REGB1;
     } else {
       REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
@@ -4991,24 +5029,24 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     }
   }
   if (UNTAG_Bool(REGB0)) {
-    /* ./compiling//compiling_global.nit:529 */
+    /* compiling/compiling_global.nit:529 */
     if (!once_value_12) {
       fra.me.REG[0] = BOX_NativeString("return;");
       REGB0 = TAG_Int(7);
-      fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+      fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
       once_value_12 = fra.me.REG[0];
       register_static_object(&once_value_12);
     } else fra.me.REG[0] = once_value_12;
     fra.me.REG[0] = fra.me.REG[0];
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   } else {
-    /* ./compiling//compiling_global.nit:531 */
+    /* compiling/compiling_global.nit:531 */
     REGB0 = TAG_Int(3);
     fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
     if (!once_value_13) {
       fra.me.REG[6] = BOX_NativeString("return ");
       REGB0 = TAG_Int(7);
-      fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0);
+      fra.me.REG[6] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[6])(fra.me.REG[6], REGB0);
       once_value_13 = fra.me.REG[6];
       register_static_object(&once_value_13);
     } else fra.me.REG[6] = once_value_13;
@@ -5018,7 +5056,7 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     if (!once_value_14) {
       fra.me.REG[3] = BOX_NativeString(";");
       REGB0 = TAG_Int(1);
-      fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
+      fra.me.REG[3] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[3])(fra.me.REG[3], REGB0);
       once_value_14 = fra.me.REG[3];
       register_static_object(&once_value_14);
     } else fra.me.REG[3] = once_value_14;
@@ -5027,21 +5065,21 @@ void compiling___compiling_global___MMMethod___compile_property_to_c(val_t p0, v
     fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
     CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   }
-  /* ./compiling//compiling_global.nit:533 */
+  /* compiling/compiling_global.nit:533 */
   CALL_compiling___compiling_base___CompilerVisitor___unindent(fra.me.REG[1])(fra.me.REG[1]);
-  /* ./compiling//compiling_global.nit:534 */
+  /* compiling/compiling_global.nit:534 */
   if (!once_value_15) {
     fra.me.REG[0] = BOX_NativeString("}");
     REGB0 = TAG_Int(1);
-    fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
+    fra.me.REG[0] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[0])(fra.me.REG[0], REGB0);
     once_value_15 = fra.me.REG[0];
     register_static_object(&once_value_15);
   } else fra.me.REG[0] = once_value_15;
   fra.me.REG[0] = fra.me.REG[0];
   CALL_compiling___compiling_base___CompilerVisitor___add_instr(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
-  /* ./compiling//compiling_global.nit:536 */
+  /* compiling/compiling_global.nit:536 */
   CALL_compiling___compiling_base___CompilerVisitor___writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
-  /* ./compiling//compiling_global.nit:537 */
+  /* compiling/compiling_global.nit:537 */
   CALL_compiling___compiling_base___CompilerVisitor___decl_writer__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]);
   stack_frame_head = fra.me.prev;
   return;