csrc: regen for 32 bits platforms and Windows
[nit.git] / c_src / core__stream.sep.1.c
index a83798b..01f55c4 100644 (file)
@@ -1,5 +1,5 @@
 #include "core__stream.sep.0.h"
-/* method stream#Stream#last_error for (self: Stream): nullable IOError */
+/* method stream$Stream$last_error for (self: Stream): nullable IOError */
 val* core___core__Stream___last_error(val* self) {
 val* var /* : nullable IOError */;
 val* var1 /* : nullable IOError */;
@@ -8,30 +8,12 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method stream#Stream#last_error= for (self: Stream, nullable IOError) */
+/* method stream$Stream$last_error= for (self: Stream, nullable IOError) */
 void core___core__Stream___last_error_61d(val* self, val* p0) {
 self->attrs[COLOR_core__stream__Stream___last_error].val = p0; /* _last_error on <self:Stream> */
 RET_LABEL:;
 }
-/* method stream#Reader#read for (self: Reader, Int): String */
-val* core___core__Reader___read(val* self, long p0) {
-val* var /* : String */;
-long var_i /* var i: Int */;
-val* var1 /* : Bytes */;
-val* var2 /* : String */;
-var_i = p0;
-{
-var1 = core___core__BufferedReader___Reader__read_bytes(self, var_i);
-}
-{
-var2 = core___core__Bytes___core__abstract_text__Object__to_s(var1);
-}
-var = var2;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method stream#Reader#read_line for (self: Reader): String */
+/* method stream$Reader$read_line for (self: Reader): String */
 val* core___core__Reader___read_line(val* self) {
 val* var /* : String */;
 val* var1 /* : nullable IOError */;
@@ -43,19 +25,27 @@ short int var7 /* : Bool */;
 short int var8 /* : Bool */;
 static val* varonce;
 val* var9 /* : String */;
-char* var10 /* : NativeString */;
+char* var10 /* : CString */;
 val* var11 /* : String */;
-short int var12 /* : Bool */;
-static val* varonce13;
-val* var14 /* : String */;
-char* var15 /* : NativeString */;
-val* var16 /* : String */;
-val* var17 /* : FlatBuffer */;
+val* var12 /* : nullable Int */;
+val* var13 /* : nullable Int */;
+val* var14 /* : nullable Bool */;
+val* var15 /* : nullable Bool */;
+short int var16 /* : Bool */;
+static val* varonce17;
+val* var18 /* : String */;
+char* var19 /* : CString */;
+val* var20 /* : String */;
+val* var21 /* : nullable Int */;
+val* var22 /* : nullable Int */;
+val* var23 /* : nullable Bool */;
+val* var24 /* : nullable Bool */;
+val* var25 /* : FlatBuffer */;
 val* var_s /* var s: FlatBuffer */;
-val* var19 /* : String */;
-val* var20 /* : Text */;
+val* var27 /* : String */;
+val* var28 /* : Text */;
 {
-{ /* Inline stream#Stream#last_error (self) on <self:Reader> */
+{ /* Inline stream$Stream$last_error (self) on <self:Reader> */
 var3 = self->attrs[COLOR_core__stream__Stream___last_error].val; /* _last_error on <self:Reader> */
 var1 = var3;
 RET_LABEL2:(void)0;
@@ -67,7 +57,7 @@ var4 = 0; /* is null */
 var4 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var1,((val*)NULL)) on <var1:nullable IOError> */
+{ /* Inline kernel$Object$!= (var1,((val*)NULL)) on <var1:nullable IOError> */
 var_other = ((val*)NULL);
 {
 var7 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1, var_other); /* == on <var1:nullable IOError(IOError)>*/
@@ -84,7 +74,11 @@ if (likely(varonce!=NULL)) {
 var9 = varonce;
 } else {
 var10 = "";
-var11 = core__flat___NativeString___to_s_full(var10, 0l, 0l);
+var12 = (val*)(0l<<2|1);
+var13 = (val*)(0l<<2|1);
+var14 = (val*)((long)(0)<<2|3);
+var15 = (val*)((long)(0)<<2|3);
+var11 = core__flat___CString___to_s_unsafe(var10, var12, var13, var14, var15);
 var9 = var11;
 varonce = var9;
 }
@@ -93,46 +87,50 @@ goto RET_LABEL;
 } else {
 }
 {
-var12 = core___core__BufferedReader___Reader__eof(self);
+var16 = core___core__BufferedReader___Reader__eof(self);
 }
-if (var12){
-if (likely(varonce13!=NULL)) {
-var14 = varonce13;
+if (var16){
+if (likely(varonce17!=NULL)) {
+var18 = varonce17;
 } else {
-var15 = "";
-var16 = core__flat___NativeString___to_s_full(var15, 0l, 0l);
-var14 = var16;
-varonce13 = var14;
-}
-var = var14;
+var19 = "";
+var21 = (val*)(0l<<2|1);
+var22 = (val*)(0l<<2|1);
+var23 = (val*)((long)(0)<<2|3);
+var24 = (val*)((long)(0)<<2|3);
+var20 = core__flat___CString___to_s_unsafe(var19, var21, var22, var23, var24);
+var18 = var20;
+varonce17 = var18;
+}
+var = var18;
 goto RET_LABEL;
 } else {
 }
-var17 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
+var25 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
 {
-{ /* Inline flat#FlatBuffer#init (var17) on <var17:FlatBuffer> */
+{ /* Inline flat$FlatBuffer$init (var25) on <var25:FlatBuffer> */
 {
-((void(*)(val* self))(var17->class->vft[COLOR_core___core__FlatBuffer___core__kernel__Object__init]))(var17); /* init on <var17:FlatBuffer>*/
+((void(*)(val* self))(var25->class->vft[COLOR_core___core__FlatBuffer___core__kernel__Object__init]))(var25); /* init on <var25:FlatBuffer>*/
 }
-RET_LABEL18:(void)0;
+RET_LABEL26:(void)0;
 }
 }
-var_s = var17;
+var_s = var25;
 {
-core___core__BufferedReader___Reader__append_line_to(self, var_s); /* Direct call stream#BufferedReader#append_line_to on <self:Reader>*/
+core___core__BufferedReader___Reader__append_line_to(self, var_s); /* Direct call stream$BufferedReader$append_line_to on <self:Reader>*/
 }
 {
-var19 = core___core__FlatBuffer___core__abstract_text__Object__to_s(var_s);
+var27 = core___core__FlatBuffer___core__abstract_text__Object__to_s(var_s);
 }
 {
-var20 = core___core__Text___chomp(var19);
+var28 = core___core__Text___chomp(var27);
 }
-var = var20;
+var = var28;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method stream#Reader#read_all for (self: Reader): String */
+/* method stream$Reader$read_all for (self: Reader): String */
 val* core___core__Reader___read_all(val* self) {
 val* var /* : String */;
 val* var1 /* : Bytes */;
@@ -144,78 +142,94 @@ short int var5 /* : Bool */;
 short int var7 /* : Bool */;
 static val* varonce;
 val* var8 /* : String */;
-char* var9 /* : NativeString */;
+char* var9 /* : CString */;
 val* var10 /* : String */;
-static val* varonce11;
-val* var12 /* : String */;
-char* var13 /* : NativeString */;
-val* var14 /* : String */;
+val* var11 /* : nullable Int */;
+val* var12 /* : nullable Int */;
+val* var13 /* : nullable Bool */;
+val* var14 /* : nullable Bool */;
+static val* varonce15;
+val* var16 /* : String */;
+char* var17 /* : CString */;
+val* var18 /* : String */;
+val* var19 /* : nullable Int */;
+val* var20 /* : nullable Int */;
+val* var21 /* : nullable Bool */;
+val* var22 /* : nullable Bool */;
 val* var_rets /* var rets: String */;
 long var_pos /* var pos: Int */;
-char* var15 /* : NativeString */;
-char* var17 /* : NativeString */;
-val* var18 /* : FlatString */;
+char* var23 /* : CString */;
+char* var25 /* : CString */;
+val* var26 /* : FlatString */;
 val* var_str /* var str: FlatString */;
-long var19 /* : Int */;
-long var21 /* : Int */;
-char* var22 /* : NativeString */;
-char* var24 /* : NativeString */;
-char* var_sits /* var sits: NativeString */;
+long var27 /* : Int */;
+long var29 /* : Int */;
+char* var30 /* : CString */;
+char* var32 /* : CString */;
+char* var_sits /* var sits: CString */;
 long var_remsp /* var remsp: Int */;
-short int var25 /* : Bool */;
-short int var27 /* : Bool */;
+short int var33 /* : Bool */;
+short int var35 /* : Bool */;
 int cltype;
 int idtype;
 const char* var_class_name;
-short int var28 /* : Bool */;
+short int var36 /* : Bool */;
 long var_chunksz /* var chunksz: Int */;
-short int var29 /* : Bool */;
-short int var31 /* : Bool */;
-int cltype32;
-int idtype33;
-const char* var_class_name34;
-short int var35 /* : Bool */;
-val* var36 /* : FlatString */;
-val* var37 /* : String */;
-long var38 /* : Int */;
-short int var40 /* : Bool */;
-int cltype41;
-int idtype42;
-const char* var_class_name43;
-long var44 /* : Int */;
-long var45 /* : Int */;
-short int var47 /* : Bool */;
-int cltype48;
-int idtype49;
-const char* var_class_name50;
-long var51 /* : Int */;
-long var52 /* : Int */;
-long var_st /* var st: Int */;
-long var53 /* : Int */;
-short int var55 /* : Bool */;
-int cltype56;
-int idtype57;
-const char* var_class_name58;
-long var59 /* : Int */;
-long var_bytelen /* var bytelen: Int */;
-val* var60 /* : FlatString */;
-val* var61 /* : String */;
+short int var37 /* : Bool */;
+short int var39 /* : Bool */;
+int cltype40;
+int idtype41;
+const char* var_class_name42;
+short int var43 /* : Bool */;
+static val* varoncenew;
+static int varoncenew_guard;
+val* var44 /* : FlatString */;
+val* var45 /* : FlatString */;
+val* var46 /* : FlatString */;
+val* var47 /* : Text */;
+long var48 /* : Int */;
+short int var50 /* : Bool */;
+int cltype51;
+int idtype52;
+const char* var_class_name53;
+long var54 /* : Int */;
+long var55 /* : Int */;
+short int var57 /* : Bool */;
+int cltype58;
+int idtype59;
+const char* var_class_name60;
+long var61 /* : Int */;
 long var62 /* : Int */;
-short int var64 /* : Bool */;
-int cltype65;
-int idtype66;
-const char* var_class_name67;
-long var68 /* : Int */;
-short int var69 /* : Bool */;
-int cltype70;
-int idtype71;
-val* var72 /* : String */;
+long var_st /* var st: Int */;
+long var63 /* : Int */;
+short int var65 /* : Bool */;
+int cltype66;
+int idtype67;
+const char* var_class_name68;
+long var69 /* : Int */;
+long var_byte_length /* var byte_length: Int */;
+static val* varoncenew70;
+static int varoncenew70_guard;
+val* var71 /* : FlatString */;
+val* var72 /* : FlatString */;
+val* var73 /* : FlatString */;
+val* var74 /* : Text */;
+long var75 /* : Int */;
+short int var77 /* : Bool */;
+int cltype78;
+int idtype79;
+const char* var_class_name80;
+long var81 /* : Int */;
+short int var82 /* : Bool */;
+int cltype83;
+int idtype84;
+val* var85 /* : String */;
 {
 var1 = core___core__BufferedReader___Reader__read_all_bytes(self);
 }
 var_s = var1;
 {
-{ /* Inline bytes#Bytes#length (var_s) on <var_s:Bytes> */
+{ /* Inline bytes$Bytes$length (var_s) on <var_s:Bytes> */
 var4 = var_s->attrs[COLOR_core__bytes__Bytes___length].l; /* _length on <var_s:Bytes> */
 var2 = var4;
 RET_LABEL3:(void)0;
@@ -223,7 +237,7 @@ RET_LABEL3:(void)0;
 }
 var_slen = var2;
 {
-{ /* Inline kernel#Int#== (var_slen,0l) on <var_slen:Int> */
+{ /* Inline kernel$Int$== (var_slen,0l) on <var_slen:Int> */
 var7 = var_slen == 0l;
 var5 = var7;
 goto RET_LABEL6;
@@ -235,7 +249,11 @@ if (likely(varonce!=NULL)) {
 var8 = varonce;
 } else {
 var9 = "";
-var10 = core__flat___NativeString___to_s_full(var9, 0l, 0l);
+var11 = (val*)(0l<<2|1);
+var12 = (val*)(0l<<2|1);
+var13 = (val*)((long)(0)<<2|3);
+var14 = (val*)((long)(0)<<2|3);
+var10 = core__flat___CString___to_s_unsafe(var9, var11, var12, var13, var14);
 var8 = var10;
 varonce = var8;
 }
@@ -243,194 +261,212 @@ var = var8;
 goto RET_LABEL;
 } else {
 }
-if (likely(varonce11!=NULL)) {
-var12 = varonce11;
+if (likely(varonce15!=NULL)) {
+var16 = varonce15;
 } else {
-var13 = "";
-var14 = core__flat___NativeString___to_s_full(var13, 0l, 0l);
-var12 = var14;
-varonce11 = var12;
-}
-var_rets = var12;
+var17 = "";
+var19 = (val*)(0l<<2|1);
+var20 = (val*)(0l<<2|1);
+var21 = (val*)((long)(0)<<2|3);
+var22 = (val*)((long)(0)<<2|3);
+var18 = core__flat___CString___to_s_unsafe(var17, var19, var20, var21, var22);
+var16 = var18;
+varonce15 = var16;
+}
+var_rets = var16;
 var_pos = 0l;
 {
-{ /* Inline bytes#Bytes#items (var_s) on <var_s:Bytes> */
-var17 = var_s->attrs[COLOR_core__bytes__Bytes___items].str; /* _items on <var_s:Bytes> */
-var15 = var17;
-RET_LABEL16:(void)0;
+{ /* Inline bytes$Bytes$items (var_s) on <var_s:Bytes> */
+var25 = var_s->attrs[COLOR_core__bytes__Bytes___items].str; /* _items on <var_s:Bytes> */
+var23 = var25;
+RET_LABEL24:(void)0;
 }
 }
 {
-var18 = core__flat___NativeString___clean_utf8(var15, var_slen);
+var26 = core__flat___CString___clean_utf8(var23, var_slen);
 }
-var_str = var18;
+var_str = var26;
 {
-{ /* Inline abstract_text#FlatText#bytelen (var_str) on <var_str:FlatString> */
-var21 = var_str->attrs[COLOR_core__abstract_text__FlatText___bytelen].l; /* _bytelen on <var_str:FlatString> */
-var19 = var21;
-RET_LABEL20:(void)0;
+{ /* Inline abstract_text$FlatText$byte_length (var_str) on <var_str:FlatString> */
+var29 = var_str->attrs[COLOR_core__abstract_text__FlatText___byte_length].l; /* _byte_length on <var_str:FlatString> */
+var27 = var29;
+RET_LABEL28:(void)0;
 }
 }
-var_slen = var19;
+var_slen = var27;
 {
-{ /* Inline abstract_text#FlatText#items (var_str) on <var_str:FlatString> */
-var24 = var_str->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_str:FlatString> */
-var22 = var24;
-RET_LABEL23:(void)0;
+{ /* Inline abstract_text$FlatText$items (var_str) on <var_str:FlatString> */
+var32 = var_str->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <var_str:FlatString> */
+var30 = var32;
+RET_LABEL31:(void)0;
 }
 }
-var_sits = var22;
+var_sits = var30;
 var_remsp = var_slen;
 for(;;) {
 {
-{ /* Inline kernel#Int#< (var_pos,var_slen) on <var_pos:Int> */
+{ /* Inline kernel$Int$< (var_pos,var_slen) on <var_pos:Int> */
 /* Covariant cast for argument 0 (i) <var_slen:Int> isa OTHER */
 /* <var_slen:Int> isa OTHER */
-var27 = 1; /* easy <var_slen:Int> isa OTHER*/
-if (unlikely(!var27)) {
+var35 = 1; /* easy <var_slen:Int> isa OTHER*/
+if (unlikely(!var35)) {
 var_class_name = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
-var28 = var_pos < var_slen;
-var25 = var28;
-goto RET_LABEL26;
-RET_LABEL26:(void)0;
+var36 = var_pos < var_slen;
+var33 = var36;
+goto RET_LABEL34;
+RET_LABEL34:(void)0;
 }
 }
-if (var25){
+if (var33){
 var_chunksz = 129l;
 {
-{ /* Inline kernel#Int#> (var_chunksz,var_remsp) on <var_chunksz:Int> */
+{ /* Inline kernel$Int$> (var_chunksz,var_remsp) on <var_chunksz:Int> */
 /* Covariant cast for argument 0 (i) <var_remsp:Int> isa OTHER */
 /* <var_remsp:Int> isa OTHER */
-var31 = 1; /* easy <var_remsp:Int> isa OTHER*/
-if (unlikely(!var31)) {
-var_class_name34 = type_core__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
+var39 = 1; /* easy <var_remsp:Int> isa OTHER*/
+if (unlikely(!var39)) {
+var_class_name42 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
 fatal_exit(1);
 }
-var35 = var_chunksz > var_remsp;
-var29 = var35;
-goto RET_LABEL30;
-RET_LABEL30:(void)0;
+var43 = var_chunksz > var_remsp;
+var37 = var43;
+goto RET_LABEL38;
+RET_LABEL38:(void)0;
+}
 }
+if (var37){
+if (likely(varoncenew_guard)) {
+var44 = varoncenew;
+} else {
+var45 = NEW_core__FlatString(&type_core__FlatString);
+var44 = var45;
+varoncenew = var44;
+varoncenew_guard = 1;
 }
-if (var29){
-var36 = NEW_core__FlatString(&type_core__FlatString);
 {
-core___core__FlatString___with_infos(var36, var_sits, var_remsp, var_pos); /* Direct call flat#FlatString#with_infos on <var36:FlatString>*/
+var46 = core___core__FlatString___with_infos(var44, var_sits, var_remsp, var_pos);
 }
 {
-var37 = ((val*(*)(val* self, val* p0))(var_rets->class->vft[COLOR_core__abstract_text__String___43d]))(var_rets, var36); /* + on <var_rets:String>*/
+var47 = ((val*(*)(val* self, val* p0))(var_rets->class->vft[COLOR_core__abstract_text__Text___43d]))(var_rets, var46); /* + on <var_rets:String>*/
 }
-var_rets = var37;
+var_rets = var47;
 goto BREAK_label;
 } else {
 }
 {
-{ /* Inline kernel#Int#+ (var_pos,var_chunksz) on <var_pos:Int> */
+{ /* Inline kernel$Int$+ (var_pos,var_chunksz) on <var_pos:Int> */
 /* Covariant cast for argument 0 (i) <var_chunksz:Int> isa OTHER */
 /* <var_chunksz:Int> isa OTHER */
-var40 = 1; /* easy <var_chunksz:Int> isa OTHER*/
-if (unlikely(!var40)) {
-var_class_name43 = type_core__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+var50 = 1; /* easy <var_chunksz:Int> isa OTHER*/
+if (unlikely(!var50)) {
+var_class_name53 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
-var44 = var_pos + var_chunksz;
-var38 = var44;
-goto RET_LABEL39;
-RET_LABEL39:(void)0;
+var54 = var_pos + var_chunksz;
+var48 = var54;
+goto RET_LABEL49;
+RET_LABEL49:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#- (var38,1l) on <var38:Int> */
+{ /* Inline kernel$Int$- (var48,1l) on <var48:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
-var47 = 1; /* easy <1l:Int> isa OTHER*/
-if (unlikely(!var47)) {
-var_class_name50 = type_core__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name50);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+var57 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var57)) {
+var_class_name60 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name60);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
-var51 = var38 - 1l;
-var45 = var51;
-goto RET_LABEL46;
-RET_LABEL46:(void)0;
+var61 = var48 - 1l;
+var55 = var61;
+goto RET_LABEL56;
+RET_LABEL56:(void)0;
 }
 }
 {
-var52 = core___core__NativeString___find_beginning_of_char_at(var_sits, var45);
+var62 = core___core__CString___find_beginning_of_char_at(var_sits, var55);
 }
-var_st = var52;
+var_st = var62;
 {
-{ /* Inline kernel#Int#- (var_st,var_pos) on <var_st:Int> */
+{ /* Inline kernel$Int$- (var_st,var_pos) on <var_st:Int> */
 /* Covariant cast for argument 0 (i) <var_pos:Int> isa OTHER */
 /* <var_pos:Int> isa OTHER */
-var55 = 1; /* easy <var_pos:Int> isa OTHER*/
-if (unlikely(!var55)) {
-var_class_name58 = type_core__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name58);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+var65 = 1; /* easy <var_pos:Int> isa OTHER*/
+if (unlikely(!var65)) {
+var_class_name68 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
-var59 = var_st - var_pos;
-var53 = var59;
-goto RET_LABEL54;
-RET_LABEL54:(void)0;
+var69 = var_st - var_pos;
+var63 = var69;
+goto RET_LABEL64;
+RET_LABEL64:(void)0;
 }
 }
-var_bytelen = var53;
-var60 = NEW_core__FlatString(&type_core__FlatString);
+var_byte_length = var63;
+if (likely(varoncenew70_guard)) {
+var71 = varoncenew70;
+} else {
+var72 = NEW_core__FlatString(&type_core__FlatString);
+var71 = var72;
+varoncenew70 = var71;
+varoncenew70_guard = 1;
+}
 {
-core___core__FlatString___with_infos(var60, var_sits, var_bytelen, var_pos); /* Direct call flat#FlatString#with_infos on <var60:FlatString>*/
+var73 = core___core__FlatString___with_infos(var71, var_sits, var_byte_length, var_pos);
 }
 {
-var61 = ((val*(*)(val* self, val* p0))(var_rets->class->vft[COLOR_core__abstract_text__String___43d]))(var_rets, var60); /* + on <var_rets:String>*/
+var74 = ((val*(*)(val* self, val* p0))(var_rets->class->vft[COLOR_core__abstract_text__Text___43d]))(var_rets, var73); /* + on <var_rets:String>*/
 }
-var_rets = var61;
+var_rets = var74;
 var_pos = var_st;
 {
-{ /* Inline kernel#Int#- (var_remsp,var_bytelen) on <var_remsp:Int> */
-/* Covariant cast for argument 0 (i) <var_bytelen:Int> isa OTHER */
-/* <var_bytelen:Int> isa OTHER */
-var64 = 1; /* easy <var_bytelen:Int> isa OTHER*/
-if (unlikely(!var64)) {
-var_class_name67 = type_core__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name67);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+{ /* Inline kernel$Int$- (var_remsp,var_byte_length) on <var_remsp:Int> */
+/* Covariant cast for argument 0 (i) <var_byte_length:Int> isa OTHER */
+/* <var_byte_length:Int> isa OTHER */
+var77 = 1; /* easy <var_byte_length:Int> isa OTHER*/
+if (unlikely(!var77)) {
+var_class_name80 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name80);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
-var68 = var_remsp - var_bytelen;
-var62 = var68;
-goto RET_LABEL63;
-RET_LABEL63:(void)0;
+var81 = var_remsp - var_byte_length;
+var75 = var81;
+goto RET_LABEL76;
+RET_LABEL76:(void)0;
 }
 }
-var_remsp = var62;
+var_remsp = var75;
 } else {
 goto BREAK_label;
 }
 }
 BREAK_label: (void)0;
 /* <var_rets:String> isa Concat */
-cltype70 = type_core__ropes__Concat.color;
-idtype71 = type_core__ropes__Concat.id;
-if(cltype70 >= var_rets->type->table_size) {
-var69 = 0;
+cltype83 = type_core__ropes__Concat.color;
+idtype84 = type_core__ropes__Concat.id;
+if(cltype83 >= var_rets->type->table_size) {
+var82 = 0;
 } else {
-var69 = var_rets->type->type_table[cltype70] == idtype71;
+var82 = var_rets->type->type_table[cltype83] == idtype84;
 }
-if (var69){
+if (var82){
 {
-var72 = core__ropes___core__ropes__Concat___balance(var_rets);
+var85 = core__ropes___core__ropes__Concat___balance(var_rets);
 }
-var = var72;
+var = var85;
 goto RET_LABEL;
 } else {
 }
@@ -439,31 +475,44 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method stream#Bytes#write_to for (self: Bytes, Writer) */
+/* method stream$Writer$write_char for (self: Writer, Char) */
+void core___core__Writer___write_char(val* self, uint32_t p0) {
+uint32_t var_c /* var c: Char */;
+val* var /* : String */;
+var_c = p0;
+{
+var = core__abstract_text___Char___Object__to_s(var_c);
+}
+{
+core___core__FileWriter___core__stream__Writer__write(self, var); /* Direct call file$FileWriter$write on <self:Writer>*/
+}
+RET_LABEL:;
+}
+/* method stream$Bytes$write_to for (self: Bytes, Writer) */
 void core__stream___Bytes___Writable__write_to(val* self, val* p0) {
 val* var_s /* var s: Writer */;
 var_s = p0;
 {
-core___core__FileWriter___core__stream__Writer__write_bytes(var_s, self); /* Direct call file#FileWriter#write_bytes on <var_s:Writer>*/
+core___core__FileWriter___core__stream__Writer__write_bytes(var_s, self); /* Direct call file$FileWriter$write_bytes on <var_s:Writer>*/
 }
 RET_LABEL:;
 }
-/* method stream#Text#write_to for (self: Text, Writer) */
+/* method stream$Text$write_to for (self: Text, Writer) */
 void core__stream___Text___Writable__write_to(val* self, val* p0) {
 val* var_stream /* var stream: Writer */;
 var_stream = p0;
 {
-core___core__FileWriter___core__stream__Writer__write(var_stream, self); /* Direct call file#FileWriter#write on <var_stream:Writer>*/
+core___core__FileWriter___core__stream__Writer__write(var_stream, self); /* Direct call file$FileWriter$write on <var_stream:Writer>*/
 }
 RET_LABEL:;
 }
-/* method stream#BufferedReader#buffer_reset for (self: BufferedReader) */
+/* method stream$BufferedReader$buffer_reset for (self: BufferedReader) */
 void core___core__BufferedReader___buffer_reset(val* self) {
 self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l = 0l; /* _buffer_length on <self:BufferedReader> */
 self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l = 0l; /* _buffer_pos on <self:BufferedReader> */
 RET_LABEL:;
 }
-/* method stream#BufferedReader#read_bytes for (self: BufferedReader, Int): Bytes */
+/* method stream$BufferedReader$read_bytes for (self: BufferedReader, Int): Bytes */
 val* core___core__BufferedReader___Reader__read_bytes(val* self, long p0) {
 val* var /* : Bytes */;
 long var_i /* var i: Int */;
@@ -480,7 +529,7 @@ val* var_buf /* var buf: Bytes */;
 long var11 /* : Int */;
 var_i = p0;
 {
-{ /* Inline stream#Stream#last_error (self) on <self:BufferedReader> */
+{ /* Inline stream$Stream$last_error (self) on <self:BufferedReader> */
 var3 = self->attrs[COLOR_core__stream__Stream___last_error].val; /* _last_error on <self:BufferedReader> */
 var1 = var3;
 RET_LABEL2:(void)0;
@@ -492,7 +541,7 @@ var4 = 0; /* is null */
 var4 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var1,((val*)NULL)) on <var1:nullable IOError> */
+{ /* Inline kernel$Object$!= (var1,((val*)NULL)) on <var1:nullable IOError> */
 var_other = ((val*)NULL);
 {
 var7 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1, var_other); /* == on <var1:nullable IOError(IOError)>*/
@@ -507,7 +556,7 @@ var4 = var5;
 if (var4){
 var9 = NEW_core__Bytes(&type_core__Bytes);
 {
-core___core__Bytes___empty(var9); /* Direct call bytes#Bytes#empty on <var9:Bytes>*/
+core___core__Bytes___empty(var9); /* Direct call bytes$Bytes$empty on <var9:Bytes>*/
 }
 var = var9;
 goto RET_LABEL;
@@ -515,7 +564,7 @@ goto RET_LABEL;
 }
 var10 = NEW_core__Bytes(&type_core__Bytes);
 {
-core___core__Bytes___with_capacity(var10, var_i); /* Direct call bytes#Bytes#with_capacity on <var10:Bytes>*/
+core___core__Bytes___with_capacity(var10, var_i); /* Direct call bytes$Bytes$with_capacity on <var10:Bytes>*/
 }
 var_buf = var10;
 {
@@ -526,7 +575,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method stream#BufferedReader#read_intern for (self: BufferedReader, Int, Bytes): Int */
+/* method stream$BufferedReader$read_intern for (self: BufferedReader, Int, Bytes): Int */
 long core___core__BufferedReader___read_intern(val* self, long p0, val* p1) {
 long var /* : Int */;
 long var_i /* var i: Int */;
@@ -556,7 +605,7 @@ int cltype19;
 int idtype20;
 const char* var_class_name21;
 long var22 /* : Int */;
-char* var23 /* : NativeString */;
+char* var23 /* : CString */;
 long var24 /* : Int */;
 long var25 /* : Int */;
 long var26 /* : Int */;
@@ -566,7 +615,7 @@ int idtype30;
 const char* var_class_name31;
 long var32 /* : Int */;
 long var_readln /* var readln: Int */;
-char* var33 /* : NativeString */;
+char* var33 /* : CString */;
 long var34 /* : Int */;
 short int var36 /* : Bool */;
 int cltype37;
@@ -595,14 +644,14 @@ var2 = self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l; /* _buffe
 var_p = var2;
 var3 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
 {
-{ /* Inline kernel#Int#- (var3,var_p) on <var3:Int> */
+{ /* Inline kernel$Int$- (var3,var_p) on <var3:Int> */
 /* Covariant cast for argument 0 (i) <var_p:Int> isa OTHER */
 /* <var_p:Int> isa OTHER */
 var6 = 1; /* easy <var_p:Int> isa OTHER*/
 if (unlikely(!var6)) {
 var_class_name = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var7 = var3 - var_p;
@@ -613,14 +662,14 @@ RET_LABEL5:(void)0;
 }
 var_bufsp = var4;
 {
-{ /* Inline kernel#Int#>= (var_bufsp,var_i) on <var_bufsp:Int> */
+{ /* Inline kernel$Int$>= (var_bufsp,var_i) on <var_bufsp:Int> */
 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
 /* <var_i:Int> isa OTHER */
 var10 = 1; /* easy <var_i:Int> isa OTHER*/
 if (unlikely(!var10)) {
 var_class_name13 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
 fatal_exit(1);
 }
 var14 = var_bufsp >= var_i;
@@ -633,14 +682,14 @@ if (var8){
 var_ = self;
 var15 = var_->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <var_:BufferedReader> */
 {
-{ /* Inline kernel#Int#+ (var15,var_i) on <var15:Int> */
+{ /* Inline kernel$Int$+ (var15,var_i) on <var15:Int> */
 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
 /* <var_i:Int> isa OTHER */
 var18 = 1; /* easy <var_i:Int> isa OTHER*/
 if (unlikely(!var18)) {
 var_class_name21 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var22 = var15 + var_i;
@@ -652,7 +701,7 @@ RET_LABEL17:(void)0;
 var_->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l = var16; /* _buffer_pos on <var_:BufferedReader> */
 var23 = self->attrs[COLOR_core__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
 {
-core___core__Bytes___append_ns_from(var_buf, var23, var_i, var_p); /* Direct call bytes#Bytes#append_ns_from on <var_buf:Bytes>*/
+core___core__Bytes___append_ns_from(var_buf, var23, var_i, var_p); /* Direct call bytes$Bytes$append_ns_from on <var_buf:Bytes>*/
 }
 var = var_i;
 goto RET_LABEL;
@@ -662,14 +711,14 @@ var24 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _b
 self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l = var24; /* _buffer_pos on <self:BufferedReader> */
 var25 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
 {
-{ /* Inline kernel#Int#- (var25,var_p) on <var25:Int> */
+{ /* Inline kernel$Int$- (var25,var_p) on <var25:Int> */
 /* Covariant cast for argument 0 (i) <var_p:Int> isa OTHER */
 /* <var_p:Int> isa OTHER */
 var28 = 1; /* easy <var_p:Int> isa OTHER*/
 if (unlikely(!var28)) {
 var_class_name31 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var32 = var25 - var_p;
@@ -681,17 +730,17 @@ RET_LABEL27:(void)0;
 var_readln = var26;
 var33 = self->attrs[COLOR_core__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
 {
-core___core__Bytes___append_ns_from(var_buf, var33, var_readln, var_p); /* Direct call bytes#Bytes#append_ns_from on <var_buf:Bytes>*/
+core___core__Bytes___append_ns_from(var_buf, var33, var_readln, var_p); /* Direct call bytes$Bytes$append_ns_from on <var_buf:Bytes>*/
 }
 {
-{ /* Inline kernel#Int#- (var_i,var_readln) on <var_i:Int> */
+{ /* Inline kernel$Int$- (var_i,var_readln) on <var_i:Int> */
 /* Covariant cast for argument 0 (i) <var_readln:Int> isa OTHER */
 /* <var_readln:Int> isa OTHER */
 var36 = 1; /* easy <var_readln:Int> isa OTHER*/
 if (unlikely(!var36)) {
 var_class_name39 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var40 = var_i - var_readln;
@@ -705,14 +754,14 @@ var41 = core___core__BufferedReader___read_intern(self, var34, var_buf);
 }
 var_rd = var41;
 {
-{ /* Inline kernel#Int#+ (var_rd,var_readln) on <var_rd:Int> */
+{ /* Inline kernel$Int$+ (var_rd,var_readln) on <var_rd:Int> */
 /* Covariant cast for argument 0 (i) <var_readln:Int> isa OTHER */
 /* <var_readln:Int> isa OTHER */
 var44 = 1; /* easy <var_readln:Int> isa OTHER*/
 if (unlikely(!var44)) {
 var_class_name47 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var48 = var_rd + var_readln;
@@ -726,7 +775,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method stream#BufferedReader#read_all_bytes for (self: BufferedReader): Bytes */
+/* method stream$BufferedReader$read_all_bytes for (self: BufferedReader): Bytes */
 val* core___core__BufferedReader___Reader__read_all_bytes(val* self) {
 val* var /* : Bytes */;
 val* var1 /* : nullable IOError */;
@@ -739,8 +788,8 @@ short int var8 /* : Bool */;
 val* var9 /* : Bytes */;
 val* var10 /* : Bytes */;
 val* var_s /* var s: Bytes */;
-char* var11 /* : NativeString */;
-char* var_b /* var b: NativeString */;
+char* var11 /* : CString */;
+char* var_b /* var b: CString */;
 short int var12 /* : Bool */;
 short int var13 /* : Bool */;
 long var14 /* : Int */;
@@ -755,7 +804,7 @@ const char* var_class_name;
 long var19 /* : Int */;
 long var_rd_sz /* var rd_sz: Int */;
 {
-{ /* Inline stream#Stream#last_error (self) on <self:BufferedReader> */
+{ /* Inline stream$Stream$last_error (self) on <self:BufferedReader> */
 var3 = self->attrs[COLOR_core__stream__Stream___last_error].val; /* _last_error on <self:BufferedReader> */
 var1 = var3;
 RET_LABEL2:(void)0;
@@ -767,7 +816,7 @@ var4 = 0; /* is null */
 var4 = 1; /* arg is null and recv is not */
 }
 if (0) {
-{ /* Inline kernel#Object#!= (var1,((val*)NULL)) on <var1:nullable IOError> */
+{ /* Inline kernel$Object$!= (var1,((val*)NULL)) on <var1:nullable IOError> */
 var_other = ((val*)NULL);
 {
 var7 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1, var_other); /* == on <var1:nullable IOError(IOError)>*/
@@ -782,7 +831,7 @@ var4 = var5;
 if (var4){
 var9 = NEW_core__Bytes(&type_core__Bytes);
 {
-core___core__Bytes___empty(var9); /* Direct call bytes#Bytes#empty on <var9:Bytes>*/
+core___core__Bytes___empty(var9); /* Direct call bytes$Bytes$empty on <var9:Bytes>*/
 }
 var = var9;
 goto RET_LABEL;
@@ -790,7 +839,7 @@ goto RET_LABEL;
 }
 var10 = NEW_core__Bytes(&type_core__Bytes);
 {
-core___core__Bytes___with_capacity(var10, 10l); /* Direct call bytes#Bytes#with_capacity on <var10:Bytes>*/
+core___core__Bytes___with_capacity(var10, 10l); /* Direct call bytes$Bytes$with_capacity on <var10:Bytes>*/
 }
 var_s = var10;
 var11 = self->attrs[COLOR_core__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
@@ -806,14 +855,14 @@ var_j = var14;
 var15 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
 var_k = var15;
 {
-{ /* Inline kernel#Int#- (var_k,var_j) on <var_k:Int> */
+{ /* Inline kernel$Int$- (var_k,var_j) on <var_k:Int> */
 /* Covariant cast for argument 0 (i) <var_j:Int> isa OTHER */
 /* <var_j:Int> isa OTHER */
 var18 = 1; /* easy <var_j:Int> isa OTHER*/
 if (unlikely(!var18)) {
 var_class_name = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var19 = var_k - var_j;
@@ -824,11 +873,11 @@ RET_LABEL17:(void)0;
 }
 var_rd_sz = var16;
 {
-core___core__Bytes___append_ns_from(var_s, var_b, var_rd_sz, var_j); /* Direct call bytes#Bytes#append_ns_from on <var_s:Bytes>*/
+core___core__Bytes___append_ns_from(var_s, var_b, var_rd_sz, var_j); /* Direct call bytes$Bytes$append_ns_from on <var_s:Bytes>*/
 }
 self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l = var_k; /* _buffer_pos on <self:BufferedReader> */
 {
-core___core__FileReader___core__stream__BufferedReader__fill_buffer(self); /* Direct call file#FileReader#fill_buffer on <self:BufferedReader>*/
+core___core__FileReader___core__stream__BufferedReader__fill_buffer(self); /* Direct call file$FileReader$fill_buffer on <self:BufferedReader>*/
 }
 } else {
 goto BREAK_label;
@@ -840,7 +889,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method stream#BufferedReader#append_line_to for (self: BufferedReader, Buffer) */
+/* method stream$BufferedReader$append_line_to for (self: BufferedReader, Buffer) */
 void core___core__BufferedReader___Reader__append_line_to(val* self, val* p0) {
 val* var_s /* var s: Buffer */;
 val* var /* : Bytes */;
@@ -856,7 +905,7 @@ int idtype;
 const char* var_class_name;
 short int var7 /* : Bool */;
 short int var_ /* var : Bool */;
-char* var8 /* : NativeString */;
+char* var8 /* : CString */;
 unsigned char var9 /* : Byte */;
 unsigned char var11 /* : Byte */;
 short int var12 /* : Bool */;
@@ -875,7 +924,7 @@ int cltype27;
 int idtype28;
 const char* var_class_name29;
 short int var30 /* : Bool */;
-char* var31 /* : NativeString */;
+char* var31 /* : CString */;
 unsigned char var32 /* : Byte */;
 unsigned char var34 /* : Byte */;
 short int var35 /* : Bool */;
@@ -904,7 +953,7 @@ int cltype59;
 int idtype60;
 const char* var_class_name61;
 short int var62 /* : Bool */;
-char* var63 /* : NativeString */;
+char* var63 /* : CString */;
 unsigned char var64 /* : Byte */;
 unsigned char var66 /* : Byte */;
 long var67 /* : Int */;
@@ -924,7 +973,7 @@ val* var84 /* : String */;
 var_s = p0;
 var = NEW_core__Bytes(&type_core__Bytes);
 {
-core___core__Bytes___with_capacity(var, 10l); /* Direct call bytes#Bytes#with_capacity on <var:Bytes>*/
+core___core__Bytes___with_capacity(var, 10l); /* Direct call bytes$Bytes$with_capacity on <var:Bytes>*/
 }
 var_lb = var;
 for(;;) {
@@ -933,14 +982,14 @@ var_i = var1;
 for(;;) {
 var3 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
 {
-{ /* Inline kernel#Int#< (var_i,var3) on <var_i:Int> */
+{ /* Inline kernel$Int$< (var_i,var3) on <var_i:Int> */
 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
 /* <var3:Int> isa OTHER */
 var6 = 1; /* easy <var3:Int> isa OTHER*/
 if (unlikely(!var6)) {
 var_class_name = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var7 = var_i < var3;
@@ -953,7 +1002,7 @@ var_ = var4;
 if (var4){
 var8 = self->attrs[COLOR_core__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
 {
-{ /* Inline native#NativeString#[] (var8,var_i) on <var8:NativeString> */
+{ /* Inline native$CString$[] (var8,var_i) on <var8:CString> */
 var11 = (unsigned char)((int)var8[var_i]);
 var9 = var11;
 goto RET_LABEL10;
@@ -961,7 +1010,7 @@ RET_LABEL10:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#!= (var9,((unsigned char)0x0a)) on <var9:Byte> */
+{ /* Inline kernel$Byte$!= (var9,((unsigned char)0x0a)) on <var9:Byte> */
 var14 = var9 == ((unsigned char)0x0a);
 var15 = !var14;
 var12 = var15;
@@ -975,14 +1024,14 @@ var2 = var_;
 }
 if (var2){
 {
-{ /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
+{ /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var18 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var18)) {
 var_class_name21 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var22 = var_i + 1l;
@@ -999,14 +1048,14 @@ goto BREAK_label;
 BREAK_label: (void)0;
 var23 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
 {
-{ /* Inline kernel#Int#< (var_i,var23) on <var_i:Int> */
+{ /* Inline kernel$Int$< (var_i,var23) on <var_i:Int> */
 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
 /* <var23:Int> isa OTHER */
 var26 = 1; /* easy <var23:Int> isa OTHER*/
 if (unlikely(!var26)) {
 var_class_name29 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var30 = var_i < var23;
@@ -1018,7 +1067,7 @@ RET_LABEL25:(void)0;
 if (var24){
 var31 = self->attrs[COLOR_core__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
 {
-{ /* Inline native#NativeString#[] (var31,var_i) on <var31:NativeString> */
+{ /* Inline native$CString$[] (var31,var_i) on <var31:CString> */
 var34 = (unsigned char)((int)var31[var_i]);
 var32 = var34;
 goto RET_LABEL33;
@@ -1026,7 +1075,7 @@ RET_LABEL33:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#== (var32,((unsigned char)0x0a)) on <var32:Byte> */
+{ /* Inline kernel$Byte$== (var32,((unsigned char)0x0a)) on <var32:Byte> */
 var37 = var32 == ((unsigned char)0x0a);
 var35 = var37;
 goto RET_LABEL36;
@@ -1034,19 +1083,22 @@ RET_LABEL36:(void)0;
 }
 }
 if (unlikely(!var35)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_core__stream, 583);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__stream, 586);
 fatal_exit(1);
 }
 {
-{ /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
+{ /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var40 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var40)) {
 var_class_name43 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var44 = var_i + 1l;
@@ -1064,14 +1116,14 @@ var_eol = var46;
 }
 var47 = self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
 {
-{ /* Inline kernel#Int#> (var_i,var47) on <var_i:Int> */
+{ /* Inline kernel$Int$> (var_i,var47) on <var_i:Int> */
 /* Covariant cast for argument 0 (i) <var47:Int> isa OTHER */
 /* <var47:Int> isa OTHER */
 var50 = 1; /* easy <var47:Int> isa OTHER*/
 if (unlikely(!var50)) {
 var_class_name53 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
 fatal_exit(1);
 }
 var54 = var_i > var47;
@@ -1085,14 +1137,14 @@ var55 = self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l; /* _buff
 var_j = var55;
 for(;;) {
 {
-{ /* Inline kernel#Int#< (var_j,var_i) on <var_j:Int> */
+{ /* Inline kernel$Int$< (var_j,var_i) on <var_j:Int> */
 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
 /* <var_i:Int> isa OTHER */
 var58 = 1; /* easy <var_i:Int> isa OTHER*/
 if (unlikely(!var58)) {
 var_class_name61 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name61);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var62 = var_j < var_i;
@@ -1104,7 +1156,7 @@ RET_LABEL57:(void)0;
 if (var56){
 var63 = self->attrs[COLOR_core__stream__BufferedReader___buffer].str; /* _buffer on <self:BufferedReader> */
 {
-{ /* Inline native#NativeString#[] (var63,var_j) on <var63:NativeString> */
+{ /* Inline native$CString$[] (var63,var_j) on <var63:CString> */
 var66 = (unsigned char)((int)var63[var_j]);
 var64 = var66;
 goto RET_LABEL65;
@@ -1112,17 +1164,17 @@ RET_LABEL65:(void)0;
 }
 }
 {
-core___core__Bytes___core__abstract_collection__SimpleCollection__add(var_lb, var64); /* Direct call bytes#Bytes#add on <var_lb:Bytes>*/
+core___core__Bytes___core__abstract_collection__SimpleCollection__add(var_lb, var64); /* Direct call bytes$Bytes$add on <var_lb:Bytes>*/
 }
 {
-{ /* Inline kernel#Int#+ (var_j,1l) on <var_j:Int> */
+{ /* Inline kernel$Int$+ (var_j,1l) on <var_j:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var69 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var69)) {
 var_class_name72 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name72);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var73 = var_j + 1l;
@@ -1140,15 +1192,18 @@ BREAK_label74: (void)0;
 self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l = var_i; /* _buffer_pos on <self:BufferedReader> */
 } else {
 {
-{ /* Inline file#FileReader#end_reached (self) on <self:BufferedReader> */
+{ /* Inline file$FileReader$end_reached (self) on <self:BufferedReader> */
 var77 = self->attrs[COLOR_core__file__FileReader___end_reached].s; /* _end_reached on <self:BufferedReader> */
 var75 = var77;
 RET_LABEL76:(void)0;
 }
 }
 if (unlikely(!var75)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_core__stream, 600);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__stream, 603);
 fatal_exit(1);
 }
 {
@@ -1170,7 +1225,7 @@ var80 = core___core__Bytes___core__abstract_text__Object__to_s(var_lb);
 goto RET_LABEL;
 } else {
 {
-{ /* Inline file#FileReader#end_reached (self) on <self:BufferedReader> */
+{ /* Inline file$FileReader$end_reached (self) on <self:BufferedReader> */
 var83 = self->attrs[COLOR_core__file__FileReader___end_reached].s; /* _end_reached on <self:BufferedReader> */
 var81 = var83;
 RET_LABEL82:(void)0;
@@ -1187,13 +1242,13 @@ goto RET_LABEL;
 } else {
 }
 {
-core___core__FileReader___core__stream__BufferedReader__fill_buffer(self); /* Direct call file#FileReader#fill_buffer on <self:BufferedReader>*/
+core___core__FileReader___core__stream__BufferedReader__fill_buffer(self); /* Direct call file$FileReader$fill_buffer on <self:BufferedReader>*/
 }
 }
 }
 RET_LABEL:;
 }
-/* method stream#BufferedReader#eof for (self: BufferedReader): Bool */
+/* method stream$BufferedReader$eof for (self: BufferedReader): Bool */
 short int core___core__BufferedReader___Reader__eof(val* self) {
 short int var /* : Bool */;
 long var1 /* : Int */;
@@ -1221,14 +1276,14 @@ short int var22 /* : Bool */;
 var1 = self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
 var2 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
 {
-{ /* Inline kernel#Int#< (var1,var2) on <var1:Int> */
+{ /* Inline kernel$Int$< (var1,var2) on <var1:Int> */
 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
 /* <var2:Int> isa OTHER */
 var5 = 1; /* easy <var2:Int> isa OTHER*/
 if (unlikely(!var5)) {
 var_class_name = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var6 = var1 < var2;
@@ -1243,7 +1298,7 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline file#FileReader#end_reached (self) on <self:BufferedReader> */
+{ /* Inline file$FileReader$end_reached (self) on <self:BufferedReader> */
 var9 = self->attrs[COLOR_core__file__FileReader___end_reached].s; /* _end_reached on <self:BufferedReader> */
 var7 = var9;
 RET_LABEL8:(void)0;
@@ -1255,19 +1310,19 @@ goto RET_LABEL;
 } else {
 }
 {
-core___core__FileReader___core__stream__BufferedReader__fill_buffer(self); /* Direct call file#FileReader#fill_buffer on <self:BufferedReader>*/
+core___core__FileReader___core__stream__BufferedReader__fill_buffer(self); /* Direct call file$FileReader$fill_buffer on <self:BufferedReader>*/
 }
 var11 = self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l; /* _buffer_pos on <self:BufferedReader> */
 var12 = self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l; /* _buffer_length on <self:BufferedReader> */
 {
-{ /* Inline kernel#Int#>= (var11,var12) on <var11:Int> */
+{ /* Inline kernel$Int$>= (var11,var12) on <var11:Int> */
 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
 /* <var12:Int> isa OTHER */
 var15 = 1; /* easy <var12:Int> isa OTHER*/
 if (unlikely(!var15)) {
 var_class_name18 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
 fatal_exit(1);
 }
 var19 = var11 >= var12;
@@ -1279,7 +1334,7 @@ RET_LABEL14:(void)0;
 var_ = var13;
 if (var13){
 {
-{ /* Inline file#FileReader#end_reached (self) on <self:BufferedReader> */
+{ /* Inline file$FileReader$end_reached (self) on <self:BufferedReader> */
 var22 = self->attrs[COLOR_core__file__FileReader___end_reached].s; /* _end_reached on <self:BufferedReader> */
 var20 = var22;
 RET_LABEL21:(void)0;
@@ -1294,23 +1349,33 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method stream#BufferedReader#prepare_buffer for (self: BufferedReader, Int) */
+/* method stream$BufferedReader$prepare_buffer for (self: BufferedReader, Int) */
 void core___core__BufferedReader___prepare_buffer(val* self, long p0) {
 long var_capacity /* var capacity: Int */;
-char* var /* : NativeString */;
-char* var1 /* : NativeString */;
-char* var3 /* : NativeString */;
+static char* varoncenew;
+static int varoncenew_guard;
+char* var /* : CString */;
+char* var1 /* : CString */;
+char* var2 /* : CString */;
+char* var4 /* : CString */;
 var_capacity = p0;
-var = NULL/*special!*/;
+if (likely(varoncenew_guard)) {
+var = varoncenew;
+} else {
+var1 = NULL/*special!*/;
+var = var1;
+varoncenew = var;
+varoncenew_guard = 1;
+}
 {
-{ /* Inline native#NativeString#new (var,var_capacity) on <var:NativeString> */
-var3 = (char*)nit_alloc(var_capacity);
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
+{ /* Inline native$CString$new (var,var_capacity) on <var:CString> */
+var4 = (char*)nit_alloc(var_capacity);
+var2 = var4;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
 }
 }
-self->attrs[COLOR_core__stream__BufferedReader___buffer].str = var1; /* _buffer on <self:BufferedReader> */
+self->attrs[COLOR_core__stream__BufferedReader___buffer].str = var2; /* _buffer on <self:BufferedReader> */
 self->attrs[COLOR_core__stream__BufferedReader___buffer_pos].l = 0l; /* _buffer_pos on <self:BufferedReader> */
 self->attrs[COLOR_core__stream__BufferedReader___buffer_length].l = 0l; /* _buffer_length on <self:BufferedReader> */
 self->attrs[COLOR_core__stream__BufferedReader___buffer_capacity].l = var_capacity; /* _buffer_capacity on <self:BufferedReader> */