update c_src (now with ffi)
[nit.git] / c_src / standard___collection___sorter._sep.c
index e1c1ea5..a14e023 100644 (file)
@@ -1,20 +1,22 @@
 /* This C file is generated by NIT to compile module standard___collection___sorter. */
 #include "standard___collection___sorter._sep.h"
+static const char LOCATE_standard___collection___sorter___AbstractSorter___compare[] = "sorter::AbstractSorter::compare";
 val_t standard___collection___sorter___AbstractSorter___compare(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___collection___sorter;
-  fra.me.line = 22;
+  fra.me.line = 23;
   fra.me.meth = LOCATE_standard___collection___sorter___AbstractSorter___compare;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ../lib/standard/collection/sorter.nit:22 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___sorter, 22);
+  /* ../lib/standard/collection/sorter.nit:23 */
+  nit_abort("Deferred method called", NULL, LOCATE_standard___collection___sorter, 23);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_standard___collection___sorter___AbstractSorter___sort[] = "sorter::AbstractSorter::sort";
 void standard___collection___sorter___AbstractSorter___sort(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -23,7 +25,7 @@ void standard___collection___sorter___AbstractSorter___sort(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___collection___sorter;
-  fra.me.line = 29;
+  fra.me.line = 30;
   fra.me.meth = LOCATE_standard___collection___sorter___AbstractSorter___sort;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -32,7 +34,7 @@ void standard___collection___sorter___AbstractSorter___sort(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ../lib/standard/collection/sorter.nit:30 */
+  /* ../lib/standard/collection/sorter.nit:31 */
   REGB0 = TAG_Int(0);
   /* ../lib/standard/collection/array.nit:24 */
   REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
@@ -41,15 +43,16 @@ void standard___collection___sorter___AbstractSorter___sort(val_t p0, val_t p1){
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
-  /* ../lib/standard/collection/sorter.nit:30 */
+  /* ../lib/standard/collection/sorter.nit:31 */
   REGB2 = TAG_Int(1);
-  /* ../lib/standard/kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:240 */
   REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
-  /* ../lib/standard/collection/sorter.nit:30 */
+  /* ../lib/standard/collection/sorter.nit:31 */
   CALL_standard___collection___sorter___AbstractSorter___sub_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, REGB2);
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_standard___collection___sorter___AbstractSorter___sub_sort[] = "sorter::AbstractSorter::sub_sort";
 void standard___collection___sorter___AbstractSorter___sub_sort(val_t p0, val_t p1, val_t p2, val_t p3){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -59,7 +62,7 @@ void standard___collection___sorter___AbstractSorter___sub_sort(val_t p0, val_t
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___collection___sorter;
-  fra.me.line = 32;
+  fra.me.line = 33;
   fra.me.meth = LOCATE_standard___collection___sorter___AbstractSorter___sub_sort;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -75,30 +78,30 @@ void standard___collection___sorter___AbstractSorter___sub_sort(val_t p0, val_t
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ../lib/standard/kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ../lib/standard/collection/sorter.nit:35 */
+  /* ../lib/standard/collection/sorter.nit:36 */
   if (UNTAG_Bool(REGB2)) {
-    /* ../lib/standard/collection/sorter.nit:36 */
+    /* ../lib/standard/collection/sorter.nit:37 */
     goto label1;
   } else {
-    /* ../lib/standard/collection/sorter.nit:37 */
+    /* ../lib/standard/collection/sorter.nit:38 */
     REGB2 = TAG_Int(7);
-    /* ../lib/standard/kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:238 */
     REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
     REGB3 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ../lib/standard/kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB1));
-    /* ../lib/standard/collection/sorter.nit:37 */
+    /* ../lib/standard/collection/sorter.nit:38 */
     if (UNTAG_Bool(REGB2)) {
-      /* ../lib/standard/collection/sorter.nit:38 */
+      /* ../lib/standard/collection/sorter.nit:39 */
       CALL_standard___collection___sorter___AbstractSorter___quick_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, REGB1);
     } else {
-      /* ../lib/standard/collection/sorter.nit:40 */
+      /* ../lib/standard/collection/sorter.nit:41 */
       CALL_standard___collection___sorter___AbstractSorter___bubble_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, REGB1);
     }
   }
@@ -106,6 +109,7 @@ void standard___collection___sorter___AbstractSorter___sub_sort(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_standard___collection___sorter___AbstractSorter___quick_sort[] = "sorter::AbstractSorter::quick_sort";
 void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_t p1, val_t p2, val_t p3){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -118,7 +122,7 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___collection___sorter;
-  fra.me.line = 44;
+  fra.me.line = 45;
   fra.me.meth = LOCATE_standard___collection___sorter___AbstractSorter___quick_sort;
   fra.me.has_broke = 0;
   fra.me.REG_size = 5;
@@ -142,7 +146,7 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ../lib/standard/kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
   /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB3)) {
@@ -157,11 +161,11 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ../lib/standard/kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
   } else {
     /* ../lib/standard/collection/array.nit:280 */
-    REGB4 = TAG_Bool(false);
+    REGB4 = TAG_Bool(0);
     REGB3 = REGB4;
   }
   if (UNTAG_Bool(REGB3)) {
@@ -179,31 +183,31 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
   /* ../lib/standard/collection/array.nit:281 */
   goto label1;
   label1: while(0);
-  /* ../lib/standard/collection/sorter.nit:48 */
-  REGB2 = REGB0;
   /* ../lib/standard/collection/sorter.nit:49 */
-  REGB3 = REGB1;
+  REGB2 = REGB0;
   /* ../lib/standard/collection/sorter.nit:50 */
+  REGB3 = REGB1;
+  /* ../lib/standard/collection/sorter.nit:51 */
   while(1) {
     REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB4)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ../lib/standard/kernel.nit:234 */
+    /* ../lib/standard/kernel.nit:237 */
     REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
-    /* ../lib/standard/collection/sorter.nit:50 */
+    /* ../lib/standard/collection/sorter.nit:51 */
     if (UNTAG_Bool(REGB4)) {
-      /* ../lib/standard/collection/sorter.nit:51 */
+      /* ../lib/standard/collection/sorter.nit:52 */
       while(1) {
         REGB4 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB4)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ../lib/standard/kernel.nit:231 */
+        /* ../lib/standard/kernel.nit:234 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB2)<=UNTAG_Int(REGB1));
-        /* ../lib/standard/collection/sorter.nit:51 */
+        /* ../lib/standard/collection/sorter.nit:52 */
         if (UNTAG_Bool(REGB4)) {
           /* ../lib/standard/collection/array.nit:278 */
           fra.me.REG[3] = fra.me.REG[1];
@@ -215,7 +219,7 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ../lib/standard/kernel.nit:233 */
+          /* ../lib/standard/kernel.nit:236 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
           /* ../lib/standard/collection/array.nit:280 */
           if (UNTAG_Bool(REGB5)) {
@@ -230,11 +234,11 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ../lib/standard/kernel.nit:232 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
           } else {
             /* ../lib/standard/collection/array.nit:280 */
-            REGB6 = TAG_Bool(false);
+            REGB6 = TAG_Bool(0);
             REGB5 = REGB6;
           }
           if (UNTAG_Bool(REGB5)) {
@@ -252,7 +256,7 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
           /* ../lib/standard/collection/array.nit:281 */
           goto label2;
           label2: while(0);
-          /* ../lib/standard/collection/sorter.nit:51 */
+          /* ../lib/standard/collection/sorter.nit:52 */
           REGB4 = CALL_standard___collection___sorter___AbstractSorter___compare(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
           REGB5 = TAG_Int(0);
           REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
@@ -260,34 +264,34 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ../lib/standard/kernel.nit:231 */
+          /* ../lib/standard/kernel.nit:234 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB4)<=UNTAG_Int(REGB5));
         } else {
-          /* ../lib/standard/collection/sorter.nit:51 */
-          REGB4 = TAG_Bool(false);
+          /* ../lib/standard/collection/sorter.nit:52 */
+          REGB4 = TAG_Bool(0);
           REGB5 = REGB4;
         }
         if (UNTAG_Bool(REGB5)) {
           REGB5 = TAG_Int(1);
-          /* ../lib/standard/kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:238 */
           REGB5 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB5));
-          /* ../lib/standard/collection/sorter.nit:51 */
+          /* ../lib/standard/collection/sorter.nit:52 */
           REGB2 = REGB5;
         } else {
           goto label3;
         }
       }
       label3: while(0);
-      /* ../lib/standard/collection/sorter.nit:52 */
+      /* ../lib/standard/collection/sorter.nit:53 */
       while(1) {
         REGB5 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB5)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ../lib/standard/kernel.nit:234 */
+        /* ../lib/standard/kernel.nit:237 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
-        /* ../lib/standard/collection/sorter.nit:52 */
+        /* ../lib/standard/collection/sorter.nit:53 */
         if (UNTAG_Bool(REGB5)) {
           /* ../lib/standard/collection/array.nit:278 */
           fra.me.REG[3] = fra.me.REG[1];
@@ -299,7 +303,7 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ../lib/standard/kernel.nit:233 */
+          /* ../lib/standard/kernel.nit:236 */
           REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
           /* ../lib/standard/collection/array.nit:280 */
           if (UNTAG_Bool(REGB4)) {
@@ -314,11 +318,11 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ../lib/standard/kernel.nit:232 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
           } else {
             /* ../lib/standard/collection/array.nit:280 */
-            REGB6 = TAG_Bool(false);
+            REGB6 = TAG_Bool(0);
             REGB4 = REGB6;
           }
           if (UNTAG_Bool(REGB4)) {
@@ -336,7 +340,7 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
           /* ../lib/standard/collection/array.nit:281 */
           goto label4;
           label4: while(0);
-          /* ../lib/standard/collection/sorter.nit:52 */
+          /* ../lib/standard/collection/sorter.nit:53 */
           REGB5 = CALL_standard___collection___sorter___AbstractSorter___compare(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3], fra.me.REG[2]);
           REGB4 = TAG_Int(0);
           REGB6 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB5), VTID_standard___kernel___Comparable___OTHER(REGB5))) /*cast OTHER*/;
@@ -344,18 +348,18 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ../lib/standard/kernel.nit:233 */
+          /* ../lib/standard/kernel.nit:236 */
           REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
         } else {
-          /* ../lib/standard/collection/sorter.nit:52 */
-          REGB5 = TAG_Bool(false);
+          /* ../lib/standard/collection/sorter.nit:53 */
+          REGB5 = TAG_Bool(0);
           REGB4 = REGB5;
         }
         if (UNTAG_Bool(REGB4)) {
           REGB4 = TAG_Int(1);
-          /* ../lib/standard/kernel.nit:237 */
+          /* ../lib/standard/kernel.nit:240 */
           REGB4 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB4));
-          /* ../lib/standard/collection/sorter.nit:52 */
+          /* ../lib/standard/collection/sorter.nit:53 */
           REGB3 = REGB4;
         } else {
           goto label5;
@@ -367,9 +371,9 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ../lib/standard/kernel.nit:234 */
+      /* ../lib/standard/kernel.nit:237 */
       REGB4 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB2));
-      /* ../lib/standard/collection/sorter.nit:53 */
+      /* ../lib/standard/collection/sorter.nit:54 */
       if (UNTAG_Bool(REGB4)) {
         /* ../lib/standard/collection/array.nit:278 */
         fra.me.REG[3] = fra.me.REG[1];
@@ -381,7 +385,7 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ../lib/standard/kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:236 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
         /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB5)) {
@@ -396,11 +400,11 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ../lib/standard/kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
         } else {
           /* ../lib/standard/collection/array.nit:280 */
-          REGB6 = TAG_Bool(false);
+          REGB6 = TAG_Bool(0);
           REGB5 = REGB6;
         }
         if (UNTAG_Bool(REGB5)) {
@@ -428,7 +432,7 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ../lib/standard/kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:236 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
         /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB5)) {
@@ -443,11 +447,11 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ../lib/standard/kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
         } else {
           /* ../lib/standard/collection/array.nit:280 */
-          REGB6 = TAG_Bool(false);
+          REGB6 = TAG_Bool(0);
           REGB5 = REGB6;
         }
         if (UNTAG_Bool(REGB5)) {
@@ -465,20 +469,20 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
         /* ../lib/standard/collection/array.nit:281 */
         goto label7;
         label7: while(0);
-        /* ../lib/standard/collection/sorter.nit:55 */
-        CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB2, fra.me.REG[4]);
         /* ../lib/standard/collection/sorter.nit:56 */
+        CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB2, fra.me.REG[4]);
+        /* ../lib/standard/collection/sorter.nit:57 */
         CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB3, fra.me.REG[3]);
       }
     } else {
-      /* ../lib/standard/collection/sorter.nit:50 */
+      /* ../lib/standard/collection/sorter.nit:51 */
       goto label8;
     }
   }
   label8: while(0);
-  /* ../lib/standard/collection/sorter.nit:59 */
+  /* ../lib/standard/collection/sorter.nit:60 */
   REGB3 = TAG_Int(1);
-  /* ../lib/standard/kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:240 */
   REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
   /* ../lib/standard/collection/array.nit:278 */
   fra.me.REG[3] = fra.me.REG[1];
@@ -489,7 +493,7 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ../lib/standard/kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
   /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB4)) {
@@ -504,11 +508,11 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ../lib/standard/kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
   } else {
     /* ../lib/standard/collection/array.nit:280 */
-    REGB5 = TAG_Bool(false);
+    REGB5 = TAG_Bool(0);
     REGB4 = REGB5;
   }
   if (UNTAG_Bool(REGB4)) {
@@ -526,25 +530,26 @@ void standard___collection___sorter___AbstractSorter___quick_sort(val_t p0, val_
   /* ../lib/standard/collection/array.nit:281 */
   goto label9;
   label9: while(0);
-  /* ../lib/standard/collection/sorter.nit:59 */
-  CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[3]);
   /* ../lib/standard/collection/sorter.nit:60 */
+  CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[3]);
+  /* ../lib/standard/collection/sorter.nit:61 */
   REGB3 = TAG_Int(1);
-  /* ../lib/standard/kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:240 */
   REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
-  /* ../lib/standard/collection/sorter.nit:60 */
-  CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB3, fra.me.REG[2]);
   /* ../lib/standard/collection/sorter.nit:61 */
+  CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB3, fra.me.REG[2]);
+  /* ../lib/standard/collection/sorter.nit:62 */
   REGB3 = TAG_Int(2);
-  /* ../lib/standard/kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:240 */
   REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
-  /* ../lib/standard/collection/sorter.nit:61 */
-  CALL_standard___collection___sorter___AbstractSorter___sub_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, REGB3);
   /* ../lib/standard/collection/sorter.nit:62 */
+  CALL_standard___collection___sorter___AbstractSorter___sub_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB0, REGB3);
+  /* ../lib/standard/collection/sorter.nit:63 */
   CALL_standard___collection___sorter___AbstractSorter___sub_sort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], REGB2, REGB1);
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_standard___collection___sorter___AbstractSorter___bubble_sort[] = "sorter::AbstractSorter::bubble_sort";
 void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val_t p1, val_t p2, val_t p3){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -557,7 +562,7 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___collection___sorter;
-  fra.me.line = 65;
+  fra.me.line = 66;
   fra.me.meth = LOCATE_standard___collection___sorter___AbstractSorter___bubble_sort;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -570,18 +575,18 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
   fra.me.REG[1] = p1;
   REGB0 = p2;
   REGB1 = p3;
-  /* ../lib/standard/collection/sorter.nit:69 */
+  /* ../lib/standard/collection/sorter.nit:70 */
   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:235 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ../lib/standard/collection/sorter.nit:69 */
+    /* ../lib/standard/collection/sorter.nit:70 */
     if (UNTAG_Bool(REGB2)) {
-      /* ../lib/standard/collection/sorter.nit:70 */
+      /* ../lib/standard/collection/sorter.nit:71 */
       REGB2 = REGB0;
       /* ../lib/standard/collection/array.nit:278 */
       fra.me.REG[2] = fra.me.REG[1];
@@ -593,7 +598,7 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
       } else {
         nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
       }
-      /* ../lib/standard/kernel.nit:233 */
+      /* ../lib/standard/kernel.nit:236 */
       REGB4 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB4));
       /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB4)) {
@@ -608,11 +613,11 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ../lib/standard/kernel.nit:232 */
+        /* ../lib/standard/kernel.nit:235 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
       } else {
         /* ../lib/standard/collection/array.nit:280 */
-        REGB5 = TAG_Bool(false);
+        REGB5 = TAG_Bool(0);
         REGB4 = REGB5;
       }
       if (UNTAG_Bool(REGB4)) {
@@ -630,18 +635,18 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
       /* ../lib/standard/collection/array.nit:281 */
       goto label1;
       label1: while(0);
-      /* ../lib/standard/collection/sorter.nit:72 */
-      REGB3 = REGB0;
       /* ../lib/standard/collection/sorter.nit:73 */
+      REGB3 = REGB0;
+      /* ../lib/standard/collection/sorter.nit:74 */
       while(1) {
         REGB4 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
         if (UNTAG_Bool(REGB4)) {
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ../lib/standard/kernel.nit:231 */
+        /* ../lib/standard/kernel.nit:234 */
         REGB4 = TAG_Bool(UNTAG_Int(REGB3)<=UNTAG_Int(REGB1));
-        /* ../lib/standard/collection/sorter.nit:73 */
+        /* ../lib/standard/collection/sorter.nit:74 */
         if (UNTAG_Bool(REGB4)) {
           /* ../lib/standard/collection/array.nit:278 */
           fra.me.REG[3] = fra.me.REG[1];
@@ -653,7 +658,7 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ../lib/standard/kernel.nit:233 */
+          /* ../lib/standard/kernel.nit:236 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB4)>=UNTAG_Int(REGB5));
           /* ../lib/standard/collection/array.nit:280 */
           if (UNTAG_Bool(REGB5)) {
@@ -668,11 +673,11 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ../lib/standard/kernel.nit:232 */
+            /* ../lib/standard/kernel.nit:235 */
             REGB5 = TAG_Bool(UNTAG_Int(REGB4)<UNTAG_Int(REGB5));
           } else {
             /* ../lib/standard/collection/array.nit:280 */
-            REGB6 = TAG_Bool(false);
+            REGB6 = TAG_Bool(0);
             REGB5 = REGB6;
           }
           if (UNTAG_Bool(REGB5)) {
@@ -690,7 +695,7 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
           /* ../lib/standard/collection/array.nit:281 */
           goto label2;
           label2: while(0);
-          /* ../lib/standard/collection/sorter.nit:74 */
+          /* ../lib/standard/collection/sorter.nit:75 */
           REGB4 = CALL_standard___collection___sorter___AbstractSorter___compare(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]);
           REGB5 = TAG_Int(0);
           REGB6 = TAG_Bool(VAL_ISA(REGB5, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
@@ -698,11 +703,11 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ../lib/standard/kernel.nit:234 */
+          /* ../lib/standard/kernel.nit:237 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB4)>UNTAG_Int(REGB5));
-          /* ../lib/standard/collection/sorter.nit:74 */
+          /* ../lib/standard/collection/sorter.nit:75 */
           if (UNTAG_Bool(REGB5)) {
-            /* ../lib/standard/collection/sorter.nit:75 */
+            /* ../lib/standard/collection/sorter.nit:76 */
             REGB2 = REGB3;
             /* ../lib/standard/collection/array.nit:278 */
             fra.me.REG[3] = fra.me.REG[1];
@@ -714,7 +719,7 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
             } else {
               nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
             }
-            /* ../lib/standard/kernel.nit:233 */
+            /* ../lib/standard/kernel.nit:236 */
             REGB4 = TAG_Bool(UNTAG_Int(REGB5)>=UNTAG_Int(REGB4));
             /* ../lib/standard/collection/array.nit:280 */
             if (UNTAG_Bool(REGB4)) {
@@ -729,11 +734,11 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
               } else {
                nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
               }
-              /* ../lib/standard/kernel.nit:232 */
+              /* ../lib/standard/kernel.nit:235 */
               REGB4 = TAG_Bool(UNTAG_Int(REGB5)<UNTAG_Int(REGB4));
             } else {
               /* ../lib/standard/collection/array.nit:280 */
-              REGB6 = TAG_Bool(false);
+              REGB6 = TAG_Bool(0);
               REGB4 = REGB6;
             }
             if (UNTAG_Bool(REGB4)) {
@@ -751,28 +756,28 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
             /* ../lib/standard/collection/array.nit:281 */
             goto label3;
             label3: while(0);
-            /* ../lib/standard/collection/sorter.nit:76 */
+            /* ../lib/standard/collection/sorter.nit:77 */
             fra.me.REG[2] = fra.me.REG[3];
           }
-          /* ../lib/standard/collection/sorter.nit:78 */
+          /* ../lib/standard/collection/sorter.nit:79 */
           REGB5 = TAG_Int(1);
-          /* ../lib/standard/kernel.nit:235 */
+          /* ../lib/standard/kernel.nit:238 */
           REGB5 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB5));
-          /* ../lib/standard/collection/sorter.nit:78 */
+          /* ../lib/standard/collection/sorter.nit:79 */
           REGB3 = REGB5;
         } else {
-          /* ../lib/standard/collection/sorter.nit:73 */
+          /* ../lib/standard/collection/sorter.nit:74 */
           goto label4;
         }
       }
       label4: while(0);
-      /* ../lib/standard/collection/sorter.nit:80 */
+      /* ../lib/standard/collection/sorter.nit:81 */
       REGB3 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB0));
       if (UNTAG_Bool(REGB3)) {
       } else {
-        /* ../lib/standard/kernel.nit:227 */
+        /* ../lib/standard/kernel.nit:230 */
         REGB5 = TAG_Bool((REGB2)==(REGB0));
-        /* ../lib/standard/collection/sorter.nit:80 */
+        /* ../lib/standard/collection/sorter.nit:81 */
         REGB3 = REGB5;
       }
       REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
@@ -787,7 +792,7 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ../lib/standard/kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:236 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB5));
         /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB5)) {
@@ -802,11 +807,11 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ../lib/standard/kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB5 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB5));
         } else {
           /* ../lib/standard/collection/array.nit:280 */
-          REGB4 = TAG_Bool(false);
+          REGB4 = TAG_Bool(0);
           REGB5 = REGB4;
         }
         if (UNTAG_Bool(REGB5)) {
@@ -824,19 +829,19 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
         /* ../lib/standard/collection/array.nit:281 */
         goto label5;
         label5: while(0);
-        /* ../lib/standard/collection/sorter.nit:81 */
-        CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB2, fra.me.REG[3]);
         /* ../lib/standard/collection/sorter.nit:82 */
+        CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB2, fra.me.REG[3]);
+        /* ../lib/standard/collection/sorter.nit:83 */
         CALL_standard___collection___abstract_collection___Sequence_____braeq(fra.me.REG[1])(fra.me.REG[1], REGB0, fra.me.REG[2]);
       }
-      /* ../lib/standard/collection/sorter.nit:84 */
+      /* ../lib/standard/collection/sorter.nit:85 */
       REGB2 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:238 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ../lib/standard/collection/sorter.nit:84 */
+      /* ../lib/standard/collection/sorter.nit:85 */
       REGB0 = REGB2;
     } else {
-      /* ../lib/standard/collection/sorter.nit:69 */
+      /* ../lib/standard/collection/sorter.nit:70 */
       goto label6;
     }
   }
@@ -844,13 +849,14 @@ void standard___collection___sorter___AbstractSorter___bubble_sort(val_t p0, val
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_standard___collection___sorter___ComparableSorter___compare[] = "sorter::ComparableSorter::(sorter::AbstractSorter::compare)";
 val_t standard___collection___sorter___ComparableSorter___compare(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___collection___sorter;
-  fra.me.line = 93;
+  fra.me.line = 94;
   fra.me.meth = LOCATE_standard___collection___sorter___ComparableSorter___compare;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -861,13 +867,14 @@ val_t standard___collection___sorter___ComparableSorter___compare(val_t p0, val_
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   fra.me.REG[2] = p2;
-  /* ../lib/standard/collection/sorter.nit:94 */
+  /* ../lib/standard/collection/sorter.nit:95 */
   REGB0 = CALL_standard___kernel___Comparable_____leqg(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___collection___sorter___ComparableSorter___init[] = "sorter::ComparableSorter::init";
 void standard___collection___sorter___ComparableSorter___init(val_t p0, int* init_table){
   int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___collection___sorter___ComparableSorter].i;
   struct {struct stack_frame_t me;} fra;
@@ -875,7 +882,7 @@ void standard___collection___sorter___ComparableSorter___init(val_t p0, int* ini
   if (init_table[itpos0]) return;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___collection___sorter;
-  fra.me.line = 96;
+  fra.me.line = 97;
   fra.me.meth = LOCATE_standard___collection___sorter___ComparableSorter___init;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;