update NOTICE and LICENSE
[nit.git] / c_src / stream._sep.c
index 736751c..5a960e9 100644 (file)
 /* This C file is generated by NIT to compile module stream. */
 #include "stream._sep.h"
-void stream___IOS___close(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 20, LOCATE_stream___IOS___close};
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  fprintf(stderr, "Deferred method %s called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_stream, 20);
-  nit_exit(1);
-  tracehead = trace.prev;
+void stream___IOS___close(val_t p0){
+  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_stream;
+  fra.me.line = 20;
+  fra.me.meth = LOCATE_stream___IOS___close;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  /* ./../lib/standard//stream.nit:20 */
+  nit_abort("Deferred method called", NULL, LOCATE_stream, 20);
+  stack_frame_head = fra.me.prev;
   return;
 }
-void stream___IOS___init(val_t  self, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 0, LOCATE_stream___IOS___init};
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  tracehead = trace.prev;
+void stream___IOS___init(val_t p0, int* init_table){
+  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_IOS].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t tmp;
+  if (init_table[itpos0]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 0;
+  fra.me.meth = LOCATE_stream___IOS___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos0] = 1;
   return;
 }
-val_t stream___IStream___read_char(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 27, LOCATE_stream___IStream___read_char};
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  fprintf(stderr, "Deferred method %s called");
-  fprintf(stderr, " (%s:%d)\n", LOCATE_stream, 27);
-  nit_exit(1);
-  tracehead = trace.prev;
+val_t stream___IStream___read_char(val_t p0){
+  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_stream;
+  fra.me.line = 27;
+  fra.me.meth = LOCATE_stream___IStream___read_char;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  /* ./../lib/standard//stream.nit:27 */
+  nit_abort("Deferred method called", NULL, LOCATE_stream, 27);
+  stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
-val_t stream___IStream___read(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 30, LOCATE_stream___IStream___read};
-  val_t variable0;
-  val_t variable1;
-  val_t variable2;
-    val_t variable3;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable0 =  param0;
-  variable2 = NEW_String_string___String___with_capacity( variable0 /*i*/); /*new String*/
-  variable1 = variable2;
-  while (true) { /*while*/
-    variable2 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>UNTAG_Int( TAG_Int(0)));
-    variable3 = variable2;
-    if (UNTAG_Bool(variable3)) { /* and */
-      variable3 = ((stream___IStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*IStream::eof*/;
-      variable3 =  TAG_Bool(!UNTAG_Bool(variable3));
+val_t stream___IStream___read(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 30;
+  fra.me.meth = LOCATE_stream___IStream___read;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = p1;
+  /* ./../lib/standard//stream.nit:33 */
+  fra.me.REG[1] = NEW_Buffer_string___Buffer___with_capacity(REGB0);
+  /* ./../lib/standard//stream.nit:34 */
+  while(1) {
+    REGB1 = TAG_Int(0);
+    /* ./../lib/standard//kernel.nit:214 */
+    REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
+    /* ./../lib/standard//stream.nit:34 */
+    if (UNTAG_Bool(REGB1)) {
+      REGB1 = CALL_stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
+      REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
+    } else {
+      REGB2 = TAG_Bool(false);
+      REGB1 = REGB2;
     }
-    variable2 = variable3;
-    if (!UNTAG_Bool(variable2)) break; /* while*/
-    variable3 = ((stream___IStream___read_char_t)CALL( self,COLOR_stream___IStream___read_char))( self) /*IStream::read_char*/;
-    variable2 = variable3;
-    variable3 = TAG_Bool(UNTAG_Int( variable2 /*c*/)>=UNTAG_Int( TAG_Int(0)));
-    if (UNTAG_Bool(variable3)) { /*if*/
-      variable3 = TAG_Char(UNTAG_Int( variable2 /*c*/));
-      ((string___String___add_t)CALL( variable1 /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*s*/, variable3) /*String::add*/;
-      variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*i*/;
+    if (UNTAG_Bool(REGB1)) {
+      /* ./../lib/standard//stream.nit:35 */
+      REGB1 = CALL_stream___IStream___read_char(fra.me.REG[0])(fra.me.REG[0]);
+      /* ./../lib/standard//stream.nit:36 */
+      REGB2 = TAG_Int(0);
+      /* ./../lib/standard//kernel.nit:213 */
+      REGB2 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
+      /* ./../lib/standard//stream.nit:36 */
+      if (UNTAG_Bool(REGB2)) {
+        /* ./../lib/standard//kernel.nit:277 */
+        REGB1 = TAG_Char(UNTAG_Int(REGB1));
+        /* ./../lib/standard//stream.nit:37 */
+        CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], REGB1);
+        /* ./../lib/standard//stream.nit:38 */
+        REGB1 = TAG_Int(1);
+        /* ./../lib/standard//kernel.nit:217 */
+        REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
+        /* ./../lib/standard//stream.nit:38 */
+        REGB0 = REGB1;
+      }
+    } else {
+      /* ./../lib/standard//stream.nit:34 */
+      goto label1;
     }
-    continue_1: while(0);
-  }
-  break_1: while(0);
-  variable1 =  variable1 /*s*/;
-  goto return_label0;
-  return_label0: while(false);
-  tracehead = trace.prev;
-  return variable1;
+  }
+  label1: while(0);
+  /* ./../lib/standard//stream.nit:41 */
+  fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  goto label2;
+  label2: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-val_t stream___IStream___read_line(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 44, LOCATE_stream___IStream___read_line};
-  val_t variable0;
-  val_t variable1;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable0 = ((stream___IStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*IStream::eof*/;
-  if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0)))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_stream___IStream___read_line, LOCATE_stream, 47); nit_exit(1);}
-  variable1 = NEW_String_string___String___init(); /*new String*/
-  variable0 = variable1;
-  ((stream___IStream___append_line_to_t)CALL( self,COLOR_stream___IStream___append_line_to))( self,  variable0 /*s*/) /*IStream::append_line_to*/;
-  variable0 =  variable0 /*s*/;
-  goto return_label2;
-  return_label2: while(false);
-  tracehead = trace.prev;
-  return variable0;
+val_t stream___IStream___read_line(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 44;
+  fra.me.meth = LOCATE_stream___IStream___read_line;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ./../lib/standard//stream.nit:47 */
+  REGB0 = CALL_stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_stream, 47);
+  }
+  /* ./../lib/standard//stream.nit:48 */
+  fra.me.REG[1] = NEW_Buffer_string___Buffer___init();
+  /* ./../lib/standard//stream.nit:49 */
+  CALL_stream___IStream___append_line_to(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
+  /* ./../lib/standard//stream.nit:50 */
+  fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-val_t stream___IStream___read_all(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 53, LOCATE_stream___IStream___read_all};
-  val_t variable0;
-  val_t variable1;
-    val_t variable2;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable1 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-  variable0 = variable1;
-  while (true) { /*while*/
-    variable1 = ((stream___IStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*IStream::eof*/;
-    if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) break; /* while*/
-    variable2 = ((stream___IStream___read_char_t)CALL( self,COLOR_stream___IStream___read_char))( self) /*IStream::read_char*/;
-    variable1 = variable2;
-    variable2 = TAG_Bool(UNTAG_Int( variable1 /*c*/)>=UNTAG_Int( TAG_Int(0)));
-    if (UNTAG_Bool(variable2)) { /*if*/
-      variable2 = TAG_Char(UNTAG_Int( variable1 /*c*/));
-      ((string___String___add_t)CALL( variable0 /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*s*/, variable2) /*String::add*/;
+val_t stream___IStream___read_all(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 53;
+  fra.me.meth = LOCATE_stream___IStream___read_all;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ./../lib/standard//stream.nit:56 */
+  fra.me.REG[1] = NEW_Buffer_string___Buffer___init();
+  /* ./../lib/standard//stream.nit:57 */
+  while(1) {
+    REGB0 = CALL_stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* ./../lib/standard//stream.nit:58 */
+      REGB0 = CALL_stream___IStream___read_char(fra.me.REG[0])(fra.me.REG[0]);
+      /* ./../lib/standard//stream.nit:59 */
+      REGB1 = TAG_Int(0);
+      /* ./../lib/standard//kernel.nit:213 */
+      REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
+      /* ./../lib/standard//stream.nit:59 */
+      if (UNTAG_Bool(REGB1)) {
+        /* ./../lib/standard//kernel.nit:277 */
+        REGB0 = TAG_Char(UNTAG_Int(REGB0));
+        /* ./../lib/standard//stream.nit:59 */
+        CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], REGB0);
+      }
+    } else {
+      /* ./../lib/standard//stream.nit:57 */
+      goto label1;
     }
-    continue_4: while(0);
-  }
-  break_4: while(0);
-  variable0 =  variable0 /*s*/;
-  goto return_label3;
-  return_label3: while(false);
-  tracehead = trace.prev;
-  return variable0;
+  }
+  label1: while(0);
+  /* ./../lib/standard//stream.nit:61 */
+  fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  goto label2;
+  label2: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-void stream___IStream___append_line_to(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 64, LOCATE_stream___IStream___append_line_to};
-  val_t variable0;
-    val_t variable1;
-    val_t variable2;
-      val_t variable3;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable0 =  param0;
-  while (true) { /*while*/
-    if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
-    variable2 = ((stream___IStream___read_char_t)CALL( self,COLOR_stream___IStream___read_char))( self) /*IStream::read_char*/;
-    variable1 = variable2;
-    variable2 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    variable2 = TAG_Bool(( variable1 /*x*/)==(variable2));
-    if (UNTAG_Bool(variable2)) { /*if*/
-      variable2 = ((stream___IStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*IStream::eof*/;
-      if (UNTAG_Bool(variable2)) { /*if*/
-        goto return_label5;
+void stream___IStream___append_line_to(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 64;
+  fra.me.meth = LOCATE_stream___IStream___append_line_to;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* ./../lib/standard//stream.nit:67 */
+  while(1) {
+    /* ./../lib/standard//stream.nit:68 */
+    REGB0 = CALL_stream___IStream___read_char(fra.me.REG[0])(fra.me.REG[0]);
+    /* ./../lib/standard//stream.nit:69 */
+    REGB1 = TAG_Int(1);
+    /* ./../lib/standard//kernel.nit:216 */
+    REGB1 = TAG_Int(-UNTAG_Int(REGB1));
+    /* ./../lib/standard//stream.nit:69 */
+    REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
+    if (UNTAG_Bool(REGB2)) {
+    } else {
+      /* ./../lib/standard//kernel.nit:207 */
+      REGB1 = TAG_Bool((REGB0)==(REGB1));
+      /* ./../lib/standard//stream.nit:69 */
+      REGB2 = REGB1;
+    }
+    if (UNTAG_Bool(REGB2)) {
+      /* ./../lib/standard//stream.nit:70 */
+      REGB2 = CALL_stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
+      if (UNTAG_Bool(REGB2)) {
+        goto label1;
+      }
+    } else {
+      /* ./../lib/standard//kernel.nit:277 */
+      REGB0 = TAG_Char(UNTAG_Int(REGB0));
+      /* ./../lib/standard//stream.nit:73 */
+      CALL_abstract_collection___Sequence___push(fra.me.REG[1])(fra.me.REG[1], REGB0);
+      /* ./../lib/standard//stream.nit:74 */
+      REGB2 = TAG_Char('\n');
+      REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
+      if (UNTAG_Bool(REGB1)) {
+      } else {
+        /* ./../lib/standard//kernel.nit:347 */
+        REGB2 = TAG_Bool((REGB0)==(REGB2));
+        /* ./../lib/standard//stream.nit:74 */
+        REGB1 = REGB2;
       }
-    } else { /*if*/
-      variable3 = TAG_Char(UNTAG_Int( variable1 /*x*/));
-      variable2 = variable3;
-      ((array___AbstractArray___push_t)CALL( variable0 /*s*/,COLOR_abstract_collection___IndexedCollection___push))( variable0 /*s*/,  variable2 /*c*/) /*AbstractArray::push*/;
-      variable3 = TAG_Bool(( variable2 /*c*/)==( TAG_Char('\n')));
-      if (UNTAG_Bool(variable3)) { /*if*/
-        goto return_label5;
+      if (UNTAG_Bool(REGB1)) {
+        goto label1;
       }
     }
-    continue_6: while(0);
   }
-  break_6: while(0);
-  return_label5: while(false);
-  tracehead = trace.prev;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
   return;
 }
-val_t stream___IStream___eof(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 79, LOCATE_stream___IStream___eof};
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  fprintf(stderr, "Deferred method %s called");
-  fprintf(stderr, " in %s (%s:%d)\n", LOCATE_stream___IStream___append_line_to, LOCATE_stream, 79);
-  nit_exit(1);
-  tracehead = trace.prev;
+val_t stream___IStream___eof(val_t p0){
+  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_stream;
+  fra.me.line = 79;
+  fra.me.meth = LOCATE_stream___IStream___eof;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  /* ./../lib/standard//stream.nit:79 */
+  nit_abort("Deferred method called", NULL, LOCATE_stream, 79);
+  stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
-void stream___OStream___write(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 86, LOCATE_stream___OStream___write};
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  fprintf(stderr, "Deferred method %s called");
-  fprintf(stderr, " in %s (%s:%d)\n", LOCATE_stream___IStream___append_line_to, LOCATE_stream, 86);
-  nit_exit(1);
-  tracehead = trace.prev;
+void stream___OStream___write(val_t p0, val_t p1){
+  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_stream;
+  fra.me.line = 86;
+  fra.me.meth = LOCATE_stream___OStream___write;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  /* ./../lib/standard//stream.nit:86 */
+  nit_abort("Deferred method called", NULL, LOCATE_stream, 86);
+  stack_frame_head = fra.me.prev;
   return;
 }
-val_t stream___OStream___is_writable(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 89, LOCATE_stream___OStream___is_writable};
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  fprintf(stderr, "Deferred method %s called");
-  fprintf(stderr, " in %s (%s:%d)\n", LOCATE_stream___IStream___append_line_to, LOCATE_stream, 89);
-  nit_exit(1);
-  tracehead = trace.prev;
+val_t stream___OStream___is_writable(val_t p0){
+  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_stream;
+  fra.me.line = 89;
+  fra.me.meth = LOCATE_stream___OStream___is_writable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  /* ./../lib/standard//stream.nit:89 */
+  nit_abort("Deferred method called", NULL, LOCATE_stream, 89);
+  stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
-val_t stream___BufferedIStream___read_char(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 96, LOCATE_stream___BufferedIStream___read_char};
-  val_t variable0;
-  val_t variable1;
-  val_t variable2;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable0 = ((stream___BufferedIStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*BufferedIStream::eof*/;
-  if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0)))) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_stream___BufferedIStream___read_char, LOCATE_stream, 98); nit_exit(1);}
-  variable0 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
-  variable1 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
-  variable1 = ((array___AbstractArray___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*AbstractArray::length*/;
-  variable0 = TAG_Bool(UNTAG_Int(variable0)>=UNTAG_Int(variable1));
-  if (UNTAG_Bool(variable0)) { /*if*/
-    ((stream___BufferedIStream___fill_buffer_t)CALL( self,COLOR_stream___BufferedIStream___fill_buffer))( self) /*BufferedIStream::fill_buffer*/;
-  }
-  variable0 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
-  variable1 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
-  variable1 = ((array___AbstractArray___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*AbstractArray::length*/;
-  variable0 = TAG_Bool(UNTAG_Int(variable0)>=UNTAG_Int(variable1));
-  if (UNTAG_Bool(variable0)) { /*if*/
-    variable0 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-    goto return_label7;
-  }
-  variable1 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
-  variable2 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
-  variable1 = ((string___String_____bra_t)CALL(variable1,COLOR_abstract_collection___Map_____bra))(variable1, variable2) /*String::[]*/;
-  variable0 = variable1;
-  ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/ = TAG_Int(UNTAG_Int(ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/)+UNTAG_Int( TAG_Int(1)));
-  variable1 = TAG_Int((unsigned char)UNTAG_Char( variable0 /*c*/));
-  variable0 = variable1;
-  goto return_label7;
-  return_label7: while(false);
-  tracehead = trace.prev;
-  return variable0;
+val_t stream___BufferedIStream___read_char(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t REGB3;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 96;
+  fra.me.meth = LOCATE_stream___BufferedIStream___read_char;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ./../lib/standard//stream.nit:98 */
+  REGB0 = CALL_stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
+  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Assert failed", NULL, LOCATE_stream, 98);
+  }
+  /* ./../lib/standard//stream.nit:99 */
+  REGB0 = TAG_Bool(ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_stream, 99);
+  }
+  REGB0 = ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
+  fra.me.REG[1] = ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]);
+  REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+    nit_abort("Reciever is null", NULL, LOCATE_stream, 99);
+  }
+  /* ./../lib/standard//collection//array.nit:23 */
+  REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+  }
+  REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
+  /* ./../lib/standard//kernel.nit:213 */
+  REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
+  /* ./../lib/standard//stream.nit:99 */
+  if (UNTAG_Bool(REGB1)) {
+    /* ./../lib/standard//stream.nit:100 */
+    CALL_stream___BufferedIStream___fill_buffer(fra.me.REG[0])(fra.me.REG[0]);
+  }
+  /* ./../lib/standard//stream.nit:102 */
+  REGB1 = TAG_Bool(ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_stream, 102);
+  }
+  REGB1 = ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
+  fra.me.REG[1] = ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]);
+  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+    nit_abort("Reciever is null", NULL, LOCATE_stream, 102);
+  }
+  /* ./../lib/standard//collection//array.nit:23 */
+  REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+  }
+  REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
+  /* ./../lib/standard//kernel.nit:213 */
+  REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
+  /* ./../lib/standard//stream.nit:102 */
+  if (UNTAG_Bool(REGB0)) {
+    /* ./../lib/standard//stream.nit:103 */
+    REGB0 = TAG_Int(1);
+    /* ./../lib/standard//kernel.nit:216 */
+    REGB0 = TAG_Int(-UNTAG_Int(REGB0));
+    /* ./../lib/standard//stream.nit:103 */
+    goto label1;
+  }
+  /* ./../lib/standard//stream.nit:105 */
+  fra.me.REG[1] = ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]);
+  REGB1 = TAG_Bool(ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_stream, 105);
+  }
+  REGB1 = ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
+  REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB2)) {
+    nit_abort("Reciever is null", NULL, LOCATE_stream, 105);
+  }
+  REGB1 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], REGB1);
+  /* ./../lib/standard//stream.nit:106 */
+  REGB2 = ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
+  REGB3 = TAG_Int(1);
+  /* ./../lib/standard//kernel.nit:215 */
+  REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
+  /* ./../lib/standard//stream.nit:106 */
+  ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB3;
+  /* ./../lib/standard//kernel.nit:382 */
+  REGB1 = TAG_Int((unsigned char)UNTAG_Char(REGB1));
+  /* ./../lib/standard//stream.nit:107 */
+  REGB0 = REGB1;
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return REGB0;
 }
-val_t stream___BufferedIStream___read(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 110, LOCATE_stream___BufferedIStream___read};
-  val_t variable0;
-  val_t variable1;
-  val_t variable2;
-  val_t variable3;
-  val_t variable4;
-      val_t variable5;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable0 =  param0;
-  variable2 = NEW_String_string___String___with_capacity( variable0 /*i*/); /*new String*/
-  variable1 = variable2;
-  variable3 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
-  variable2 = variable3;
-  variable4 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
-  variable4 = ((array___AbstractArray___length_t)CALL(variable4,COLOR_abstract_collection___Collection___length))(variable4) /*AbstractArray::length*/;
-  variable3 = variable4;
-  while (true) { /*while*/
-    variable4 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>UNTAG_Int( TAG_Int(0)));
-    if (!UNTAG_Bool(variable4)) break; /* while*/
-    variable4 = TAG_Bool(UNTAG_Int( variable2 /*j*/)>=UNTAG_Int( variable3 /*k*/));
-    if (UNTAG_Bool(variable4)) { /*if*/
-      ((stream___BufferedIStream___fill_buffer_t)CALL( self,COLOR_stream___BufferedIStream___fill_buffer))( self) /*BufferedIStream::fill_buffer*/;
-      variable4 = ((stream___BufferedIStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*BufferedIStream::eof*/;
-      if (UNTAG_Bool(variable4)) { /*if*/
-        variable1 =  variable1 /*s*/;
-        goto return_label8;
+val_t stream___BufferedIStream___read(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t REGB3;
+  val_t REGB4;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 110;
+  fra.me.meth = LOCATE_stream___BufferedIStream___read;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 4;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[3] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = p1;
+  /* ./../lib/standard//stream.nit:112 */
+  fra.me.REG[1] = NEW_Buffer_string___Buffer___with_capacity(REGB0);
+  /* ./../lib/standard//stream.nit:113 */
+  REGB1 = TAG_Bool(ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_stream, 113);
+  }
+  REGB1 = ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
+  /* ./../lib/standard//stream.nit:114 */
+  fra.me.REG[2] = ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]);
+  REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+  if (UNTAG_Bool(REGB2)) {
+    nit_abort("Reciever is null", NULL, LOCATE_stream, 114);
+  }
+  /* ./../lib/standard//collection//array.nit:23 */
+  REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
+  if (UNTAG_Bool(REGB2)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+  }
+  REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
+  /* ./../lib/standard//stream.nit:115 */
+  while(1) {
+    REGB3 = TAG_Int(0);
+    /* ./../lib/standard//kernel.nit:214 */
+    REGB3 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB3));
+    /* ./../lib/standard//stream.nit:115 */
+    if (UNTAG_Bool(REGB3)) {
+      /* ./../lib/standard//kernel.nit:213 */
+      REGB3 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB2));
+      /* ./../lib/standard//stream.nit:116 */
+      if (UNTAG_Bool(REGB3)) {
+        /* ./../lib/standard//stream.nit:117 */
+        CALL_stream___BufferedIStream___fill_buffer(fra.me.REG[0])(fra.me.REG[0]);
+        /* ./../lib/standard//stream.nit:118 */
+        REGB3 = CALL_stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
+        if (UNTAG_Bool(REGB3)) {
+          fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+          goto label1;
+        }
+        /* ./../lib/standard//stream.nit:119 */
+        REGB3 = TAG_Bool(ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
+        if (UNTAG_Bool(REGB3)) {
+        } else {
+          nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_stream, 119);
+        }
+        REGB3 = ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
+        REGB1 = REGB3;
+        /* ./../lib/standard//stream.nit:120 */
+        fra.me.REG[3] = ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]);
+        REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+        if (UNTAG_Bool(REGB3)) {
+          nit_abort("Reciever is null", NULL, LOCATE_stream, 120);
+        }
+        /* ./../lib/standard//collection//array.nit:23 */
+        REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
+        if (UNTAG_Bool(REGB3)) {
+        } else {
+          nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+        }
+        REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
+        /* ./../lib/standard//stream.nit:120 */
+        REGB2 = REGB3;
       }
-      variable4 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
-      variable2 = variable4 /*j=*/;
-      variable4 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
-      variable4 = ((array___AbstractArray___length_t)CALL(variable4,COLOR_abstract_collection___Collection___length))(variable4) /*AbstractArray::length*/;
-      variable3 = variable4 /*k=*/;
-    }
-    while (true) { /*while*/
-      variable4 = TAG_Bool(UNTAG_Int( variable2 /*j*/)<UNTAG_Int( variable3 /*k*/));
-      variable5 = variable4;
-      if (UNTAG_Bool(variable5)) { /* and */
-        variable5 = TAG_Bool(UNTAG_Int( variable0 /*i*/)>UNTAG_Int( TAG_Int(0)));
+      /* ./../lib/standard//stream.nit:122 */
+      while(1) {
+        /* ./../lib/standard//kernel.nit:212 */
+        REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
+        /* ./../lib/standard//stream.nit:122 */
+        if (UNTAG_Bool(REGB3)) {
+          REGB3 = TAG_Int(0);
+          /* ./../lib/standard//kernel.nit:214 */
+          REGB3 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB3));
+        } else {
+          /* ./../lib/standard//stream.nit:122 */
+          REGB4 = TAG_Bool(false);
+          REGB3 = REGB4;
+        }
+        if (UNTAG_Bool(REGB3)) {
+          /* ./../lib/standard//stream.nit:123 */
+          fra.me.REG[3] = ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]);
+          REGB3 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
+          if (UNTAG_Bool(REGB3)) {
+            nit_abort("Reciever is null", NULL, LOCATE_stream, 123);
+          }
+          REGB3 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[3])(fra.me.REG[3], REGB1);
+          CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], REGB3);
+          /* ./../lib/standard//stream.nit:124 */
+          REGB3 = TAG_Int(1);
+          /* ./../lib/standard//kernel.nit:215 */
+          REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
+          /* ./../lib/standard//stream.nit:124 */
+          REGB1 = REGB3;
+          /* ./../lib/standard//stream.nit:125 */
+          REGB3 = TAG_Int(1);
+          /* ./../lib/standard//kernel.nit:217 */
+          REGB3 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB3));
+          /* ./../lib/standard//stream.nit:125 */
+          REGB0 = REGB3;
+        } else {
+          /* ./../lib/standard//stream.nit:122 */
+          goto label2;
+        }
       }
-      variable4 = variable5;
-      if (!UNTAG_Bool(variable4)) break; /* while*/
-      variable4 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
-      variable4 = ((string___String_____bra_t)CALL(variable4,COLOR_abstract_collection___Map_____bra))(variable4,  variable2 /*j*/) /*String::[]*/;
-      ((string___String___add_t)CALL( variable1 /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable1 /*s*/, variable4) /*String::add*/;
-      variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*j*/;
-      variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1))) /*i*/;
-      continue_10: while(0);
+      label2: while(0);
+    } else {
+      /* ./../lib/standard//stream.nit:115 */
+      goto label3;
     }
-    break_10: while(0);
-    continue_9: while(0);
-  }
-  break_9: while(0);
-  ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/ =  variable2 /*j*/;
-  variable1 =  variable1 /*s*/;
-  goto return_label8;
-  return_label8: while(false);
-  tracehead = trace.prev;
-  return variable1;
+  }
+  label3: while(0);
+  /* ./../lib/standard//stream.nit:128 */
+  ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB1;
+  /* ./../lib/standard//stream.nit:129 */
+  fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  fra.me.REG[2] = fra.me.REG[1];
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[2];
 }
-val_t stream___BufferedIStream___read_all(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 132, LOCATE_stream___BufferedIStream___read_all};
-  val_t variable0;
-  val_t variable1;
-    val_t variable2;
-    val_t variable3;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable1 = NEW_String_string___String___with_native(BOX_NativeString(""), TAG_Int(0)); /*new String*/
-  variable0 = variable1;
-  while (true) { /*while*/
-    variable1 = ((stream___BufferedIStream___eof_t)CALL( self,COLOR_stream___IStream___eof))( self) /*BufferedIStream::eof*/;
-    if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1)))) break; /* while*/
-    variable2 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
-    variable1 = variable2;
-    variable3 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
-    variable3 = ((array___AbstractArray___length_t)CALL(variable3,COLOR_abstract_collection___Collection___length))(variable3) /*AbstractArray::length*/;
-    variable2 = variable3;
-    while (true) { /*while*/
-      variable3 = TAG_Bool(UNTAG_Int( variable1 /*j*/)<UNTAG_Int( variable2 /*k*/));
-      if (!UNTAG_Bool(variable3)) break; /* while*/
-      variable3 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
-      variable3 = ((string___String_____bra_t)CALL(variable3,COLOR_abstract_collection___Map_____bra))(variable3,  variable1 /*j*/) /*String::[]*/;
-      ((string___String___add_t)CALL( variable0 /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*s*/, variable3) /*String::add*/;
-      variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*j*/;
-      continue_13: while(0);
+val_t stream___BufferedIStream___read_all(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 132;
+  fra.me.meth = LOCATE_stream___BufferedIStream___read_all;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ./../lib/standard//stream.nit:134 */
+  fra.me.REG[1] = NEW_Buffer_string___Buffer___init();
+  /* ./../lib/standard//stream.nit:135 */
+  while(1) {
+    REGB0 = CALL_stream___IStream___eof(fra.me.REG[0])(fra.me.REG[0]);
+    REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
+    if (UNTAG_Bool(REGB0)) {
+      /* ./../lib/standard//stream.nit:136 */
+      REGB0 = TAG_Bool(ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
+      if (UNTAG_Bool(REGB0)) {
+      } else {
+        nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_stream, 136);
+      }
+      REGB0 = ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
+      /* ./../lib/standard//stream.nit:137 */
+      fra.me.REG[2] = ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]);
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        nit_abort("Reciever is null", NULL, LOCATE_stream, 137);
+      }
+      /* ./../lib/standard//collection//array.nit:23 */
+      REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+      } else {
+        nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+      }
+      REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
+      /* ./../lib/standard//stream.nit:138 */
+      while(1) {
+        /* ./../lib/standard//kernel.nit:212 */
+        REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
+        /* ./../lib/standard//stream.nit:138 */
+        if (UNTAG_Bool(REGB2)) {
+          /* ./../lib/standard//stream.nit:139 */
+          fra.me.REG[2] = ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]);
+          REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+          if (UNTAG_Bool(REGB2)) {
+            nit_abort("Reciever is null", NULL, LOCATE_stream, 139);
+          }
+          REGB2 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB0);
+          CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], REGB2);
+          /* ./../lib/standard//stream.nit:140 */
+          REGB2 = TAG_Int(1);
+          /* ./../lib/standard//kernel.nit:215 */
+          REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
+          /* ./../lib/standard//stream.nit:140 */
+          REGB0 = REGB2;
+        } else {
+          /* ./../lib/standard//stream.nit:138 */
+          goto label1;
+        }
+      }
+      label1: while(0);
+      /* ./../lib/standard//stream.nit:142 */
+      ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
+      /* ./../lib/standard//stream.nit:143 */
+      CALL_stream___BufferedIStream___fill_buffer(fra.me.REG[0])(fra.me.REG[0]);
+    } else {
+      /* ./../lib/standard//stream.nit:135 */
+      goto label2;
     }
-    break_13: while(0);
-    ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/ =  variable1 /*j*/;
-    ((stream___BufferedIStream___fill_buffer_t)CALL( self,COLOR_stream___BufferedIStream___fill_buffer))( self) /*BufferedIStream::fill_buffer*/;
-    continue_12: while(0);
-  }
-  break_12: while(0);
-  variable0 =  variable0 /*s*/;
-  goto return_label11;
-  return_label11: while(false);
-  tracehead = trace.prev;
-  return variable0;
+  }
+  label2: while(0);
+  /* ./../lib/standard//stream.nit:145 */
+  fra.me.REG[1] = CALL_string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
+  goto label3;
+  label3: while(0);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[1];
 }
-void stream___BufferedIStream___append_line_to(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 148, LOCATE_stream___BufferedIStream___append_line_to};
-  val_t variable0;
-    val_t variable1;
-    val_t variable2;
-      val_t variable3;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable0 =  param0;
-  while (true) { /*while*/
-    if (!UNTAG_Bool( TAG_Bool(true))) break; /* while*/
-    variable2 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
-    variable1 = variable2;
-    while (true) { /*while*/
-      variable2 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
-      variable2 = ((array___AbstractArray___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*AbstractArray::length*/;
-      variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int(variable2));
-      variable3 = variable2;
-      if (UNTAG_Bool(variable3)) { /* and */
-        variable3 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
-        variable3 = ((string___String_____bra_t)CALL(variable3,COLOR_abstract_collection___Map_____bra))(variable3,  variable1 /*i*/) /*String::[]*/;
-        variable3 = TAG_Bool((variable3)!=( TAG_Char('\n')));
+void stream___BufferedIStream___append_line_to(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t REGB3;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 148;
+  fra.me.meth = LOCATE_stream___BufferedIStream___append_line_to;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* ./../lib/standard//stream.nit:150 */
+  while(1) {
+    /* ./../lib/standard//stream.nit:152 */
+    REGB0 = TAG_Bool(ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
+    if (UNTAG_Bool(REGB0)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_stream, 152);
+    }
+    REGB0 = ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
+    /* ./../lib/standard//stream.nit:153 */
+    while(1) {
+      fra.me.REG[2] = ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]);
+      REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+        nit_abort("Reciever is null", NULL, LOCATE_stream, 153);
+      }
+      /* ./../lib/standard//collection//array.nit:23 */
+      REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
+      if (UNTAG_Bool(REGB1)) {
+      } else {
+        nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
       }
-      variable2 = variable3;
-      if (!UNTAG_Bool(variable2)) break; /* while*/
-      variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*i*/;
-      continue_16: while(0);
+      REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
+      /* ./../lib/standard//kernel.nit:212 */
+      REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
+      /* ./../lib/standard//stream.nit:153 */
+      if (UNTAG_Bool(REGB1)) {
+        fra.me.REG[2] = ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]);
+        REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+        if (UNTAG_Bool(REGB1)) {
+          nit_abort("Reciever is null", NULL, LOCATE_stream, 153);
+        }
+        REGB1 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB0);
+        REGB2 = TAG_Char('\n');
+        REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
+        if (UNTAG_Bool(REGB3)) {
+        } else {
+          /* ./../lib/standard//kernel.nit:347 */
+          REGB2 = TAG_Bool((REGB1)==(REGB2));
+          /* ./../lib/standard//stream.nit:153 */
+          REGB3 = REGB2;
+        }
+        REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
+      } else {
+        REGB2 = TAG_Bool(false);
+        REGB3 = REGB2;
+      }
+      if (UNTAG_Bool(REGB3)) {
+        REGB3 = TAG_Int(1);
+        /* ./../lib/standard//kernel.nit:215 */
+        REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
+        /* ./../lib/standard//stream.nit:153 */
+        REGB0 = REGB3;
+      } else {
+        goto label1;
+      }
+    }
+    label1: while(0);
+    /* ./../lib/standard//stream.nit:156 */
+    REGB3 = TAG_Bool(ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
+    if (UNTAG_Bool(REGB3)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_stream, 156);
     }
-    break_16: while(0);
-    variable2 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
-    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)>UNTAG_Int(variable2));
-    if (UNTAG_Bool(variable2)) { /*if*/
-      variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*AbstractArray::length*/;
-      variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( variable1 /*i*/));
-      variable3 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
-      variable2 = TAG_Int(UNTAG_Int(variable2)-UNTAG_Int(variable3));
-      ((string___String___enlarge_t)CALL( variable0 /*s*/,COLOR_array___AbstractArray___enlarge))( variable0 /*s*/, variable2) /*String::enlarge*/;
-      variable3 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
-      variable2 = variable3;
-      while (true) { /*while*/
-        variable3 = TAG_Bool(UNTAG_Int( variable2 /*j*/)<UNTAG_Int( variable1 /*i*/));
-        if (!UNTAG_Bool(variable3)) break; /* while*/
-        variable3 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
-        variable3 = ((string___String_____bra_t)CALL(variable3,COLOR_abstract_collection___Map_____bra))(variable3,  variable2 /*j*/) /*String::[]*/;
-        ((string___String___add_t)CALL( variable0 /*s*/,COLOR_abstract_collection___SimpleCollection___add))( variable0 /*s*/, variable3) /*String::add*/;
-        variable2 = TAG_Int(UNTAG_Int(variable2)+UNTAG_Int( TAG_Int(1))) /*j*/;
-        continue_17: while(0);
+    REGB3 = ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
+    /* ./../lib/standard//kernel.nit:214 */
+    REGB3 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB3));
+    /* ./../lib/standard//stream.nit:156 */
+    if (UNTAG_Bool(REGB3)) {
+      /* ./../lib/standard//collection//array.nit:23 */
+      REGB3 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
+      if (UNTAG_Bool(REGB3)) {
+      } else {
+        nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
       }
-      break_17: while(0);
+      REGB3 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
+      /* ./../lib/standard//kernel.nit:215 */
+      REGB3 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB0));
+      /* ./../lib/standard//stream.nit:158 */
+      REGB2 = TAG_Bool(ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
+      if (UNTAG_Bool(REGB2)) {
+      } else {
+        nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_stream, 158);
+      }
+      REGB2 = ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
+      /* ./../lib/standard//kernel.nit:217 */
+      REGB2 = TAG_Int(UNTAG_Int(REGB3)-UNTAG_Int(REGB2));
+      /* ./../lib/standard//stream.nit:158 */
+      CALL_array___AbstractArray___enlarge(fra.me.REG[1])(fra.me.REG[1], REGB2);
+      /* ./../lib/standard//stream.nit:161 */
+      REGB2 = TAG_Bool(ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
+      if (UNTAG_Bool(REGB2)) {
+      } else {
+        nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_stream, 161);
+      }
+      REGB2 = ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
+      /* ./../lib/standard//stream.nit:162 */
+      while(1) {
+        /* ./../lib/standard//kernel.nit:212 */
+        REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
+        /* ./../lib/standard//stream.nit:162 */
+        if (UNTAG_Bool(REGB3)) {
+          /* ./../lib/standard//stream.nit:163 */
+          fra.me.REG[2] = ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]);
+          REGB3 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+          if (UNTAG_Bool(REGB3)) {
+            nit_abort("Reciever is null", NULL, LOCATE_stream, 163);
+          }
+          REGB3 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[2])(fra.me.REG[2], REGB2);
+          CALL_abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], REGB3);
+          /* ./../lib/standard//stream.nit:164 */
+          REGB3 = TAG_Int(1);
+          /* ./../lib/standard//kernel.nit:215 */
+          REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
+          /* ./../lib/standard//stream.nit:164 */
+          REGB2 = REGB3;
+        } else {
+          /* ./../lib/standard//stream.nit:162 */
+          goto label2;
+        }
+      }
+      label2: while(0);
     }
-    variable2 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
-    variable2 = ((array___AbstractArray___length_t)CALL(variable2,COLOR_abstract_collection___Collection___length))(variable2) /*AbstractArray::length*/;
-    variable2 = TAG_Bool(UNTAG_Int( variable1 /*i*/)<UNTAG_Int(variable2));
-    if (UNTAG_Bool(variable2)) { /*if*/
-      variable2 = TAG_Int(UNTAG_Int( variable1 /*i*/)+UNTAG_Int( TAG_Int(1)));
-      ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/ = variable2;
-      goto return_label14;
-    } else { /*if*/
-      ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/ =  variable1 /*i*/;
-      variable2 = ((stream___BufferedIStream___end_reached_t)CALL( self,COLOR_stream___BufferedIStream___end_reached))( self) /*BufferedIStream::end_reached*/;
-      if (UNTAG_Bool(variable2)) { /*if*/
-        goto return_label14;
-      } else { /*if*/
-        ((stream___BufferedIStream___fill_buffer_t)CALL( self,COLOR_stream___BufferedIStream___fill_buffer))( self) /*BufferedIStream::fill_buffer*/;
+    /* ./../lib/standard//stream.nit:168 */
+    fra.me.REG[2] = ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]);
+    REGB2 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
+    if (UNTAG_Bool(REGB2)) {
+      nit_abort("Reciever is null", NULL, LOCATE_stream, 168);
+    }
+    /* ./../lib/standard//collection//array.nit:23 */
+    REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
+    if (UNTAG_Bool(REGB2)) {
+    } else {
+      nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+    }
+    REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
+    /* ./../lib/standard//kernel.nit:212 */
+    REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
+    /* ./../lib/standard//stream.nit:168 */
+    if (UNTAG_Bool(REGB2)) {
+      /* ./../lib/standard//stream.nit:170 */
+      REGB2 = TAG_Int(1);
+      /* ./../lib/standard//kernel.nit:215 */
+      REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
+      /* ./../lib/standard//stream.nit:170 */
+      ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB2;
+      /* ./../lib/standard//stream.nit:171 */
+      goto label3;
+    } else {
+      /* ./../lib/standard//stream.nit:174 */
+      ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
+      /* ./../lib/standard//stream.nit:175 */
+      REGB0 = CALL_stream___BufferedIStream___end_reached(fra.me.REG[0])(fra.me.REG[0]);
+      if (UNTAG_Bool(REGB0)) {
+        /* ./../lib/standard//stream.nit:176 */
+        goto label3;
+      } else {
+        /* ./../lib/standard//stream.nit:178 */
+        CALL_stream___BufferedIStream___fill_buffer(fra.me.REG[0])(fra.me.REG[0]);
       }
     }
-    continue_15: while(0);
   }
-  break_15: while(0);
-  return_label14: while(false);
-  tracehead = trace.prev;
+  label3: while(0);
+  stack_frame_head = fra.me.prev;
   return;
 }
-val_t stream___BufferedIStream___eof(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 184, LOCATE_stream___BufferedIStream___eof};
-  val_t variable0;
-  val_t variable1;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable0 = ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/;
-  variable1 = ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/;
-  variable1 = ((array___AbstractArray___length_t)CALL(variable1,COLOR_abstract_collection___Collection___length))(variable1) /*AbstractArray::length*/;
-  variable0 = TAG_Bool(UNTAG_Int(variable0)>=UNTAG_Int(variable1));
-  variable1 = variable0;
-  if (UNTAG_Bool(variable1)) { /* and */
-    variable1 = ((stream___BufferedIStream___end_reached_t)CALL( self,COLOR_stream___BufferedIStream___end_reached))( self) /*BufferedIStream::end_reached*/;
-  }
-  variable0 = variable1;
-  goto return_label18;
-  return_label18: while(false);
-  tracehead = trace.prev;
-  return variable0;
+val_t stream___BufferedIStream___eof(val_t p0){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 184;
+  fra.me.meth = LOCATE_stream___BufferedIStream___eof;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ./../lib/standard//stream.nit:184 */
+  REGB0 = TAG_Bool(ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_buffer_pos", LOCATE_stream, 184);
+  }
+  REGB0 = ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]);
+  fra.me.REG[1] = ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]);
+  REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+    nit_abort("Reciever is null", NULL, LOCATE_stream, 184);
+  }
+  /* ./../lib/standard//collection//array.nit:23 */
+  REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+  }
+  REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
+  /* ./../lib/standard//kernel.nit:213 */
+  REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
+  /* ./../lib/standard//stream.nit:184 */
+  if (UNTAG_Bool(REGB1)) {
+    REGB1 = CALL_stream___BufferedIStream___end_reached(fra.me.REG[0])(fra.me.REG[0]);
+  } else {
+    REGB0 = TAG_Bool(false);
+    REGB1 = REGB0;
+  }
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return REGB1;
 }
-void stream___BufferedIStream___fill_buffer(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 192, LOCATE_stream___BufferedIStream___fill_buffer};
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  fprintf(stderr, "Deferred method %s called");
-  fprintf(stderr, " in %s (%s:%d)\n", LOCATE_stream___BufferedIStream___eof, LOCATE_stream, 192);
-  nit_exit(1);
-  tracehead = trace.prev;
+void stream___BufferedIStream___fill_buffer(val_t p0){
+  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_stream;
+  fra.me.line = 192;
+  fra.me.meth = LOCATE_stream___BufferedIStream___fill_buffer;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  /* ./../lib/standard//stream.nit:192 */
+  nit_abort("Deferred method called", NULL, LOCATE_stream, 192);
+  stack_frame_head = fra.me.prev;
   return;
 }
-val_t stream___BufferedIStream___end_reached(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 195, LOCATE_stream___BufferedIStream___end_reached};
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  fprintf(stderr, "Deferred method %s called");
-  fprintf(stderr, " in %s (%s:%d)\n", LOCATE_stream___BufferedIStream___eof, LOCATE_stream, 195);
-  nit_exit(1);
-  tracehead = trace.prev;
+val_t stream___BufferedIStream___end_reached(val_t p0){
+  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_stream;
+  fra.me.line = 195;
+  fra.me.meth = LOCATE_stream___BufferedIStream___end_reached;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  /* ./../lib/standard//stream.nit:195 */
+  nit_abort("Deferred method called", NULL, LOCATE_stream, 195);
+  stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
-void stream___BufferedIStream___prepare_buffer(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 198, LOCATE_stream___BufferedIStream___prepare_buffer};
-  val_t variable0;
-  val_t variable1;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable0 =  param0;
-  variable1 = NEW_String_string___String___with_capacity( variable0 /*capacity*/); /*new String*/
-  ATTR_stream___BufferedIStream____buffer( self) /*BufferedIStream::_buffer*/ = variable1;
-  ATTR_stream___BufferedIStream____buffer_pos( self) /*BufferedIStream::_buffer_pos*/ =  TAG_Int(0);
-  tracehead = trace.prev;
+void stream___BufferedIStream___prepare_buffer(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 198;
+  fra.me.meth = LOCATE_stream___BufferedIStream___prepare_buffer;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = p1;
+  /* ./../lib/standard//stream.nit:201 */
+  fra.me.REG[1] = NEW_Buffer_string___Buffer___with_capacity(REGB0);
+  ATTR_stream___BufferedIStream____buffer(fra.me.REG[0]) = fra.me.REG[1];
+  /* ./../lib/standard//stream.nit:202 */
+  REGB0 = TAG_Int(0);
+  ATTR_stream___BufferedIStream____buffer_pos(fra.me.REG[0]) = REGB0;
+  stack_frame_head = fra.me.prev;
   return;
 }
-void stream___FDStream___close(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 218, LOCATE_stream___FDStream___close};
-  val_t variable0;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable0 = ATTR_stream___FDStream____fd( self) /*FDStream::_fd*/;
-  ((stream___FDStream___native_close_t)CALL( self,COLOR_stream___FDStream___native_close))( self, variable0) /*FDStream::native_close*/;
-  tracehead = trace.prev;
+void stream___FDStream___close(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 218;
+  fra.me.meth = LOCATE_stream___FDStream___close;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ./../lib/standard//stream.nit:218 */
+  REGB0 = TAG_Bool(ATTR_stream___FDStream____fd(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_fd", LOCATE_stream, 218);
+  }
+  REGB0 = ATTR_stream___FDStream____fd(fra.me.REG[0]);
+  CALL_stream___FDStream___native_close(fra.me.REG[0])(fra.me.REG[0], REGB0);
+  stack_frame_head = fra.me.prev;
   return;
 }
-val_t stream___FDStream___native_close(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 220, LOCATE_stream___FDStream___native_close};
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  tracehead = trace.prev;
-  return TAG_Int(stream_FDStream_FDStream_native_close_1( self, UNTAG_Int( param0)));
+val_t stream___FDStream___native_close(val_t p0, val_t p1){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 220;
+  fra.me.meth = LOCATE_stream___FDStream___native_close;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = p1;
+  /* ./../lib/standard//stream.nit:220 */
+  REGB0 = TAG_Int(stream_FDStream_FDStream_native_close_1(fra.me.REG[0], UNTAG_Int(REGB0)));
+  stack_frame_head = fra.me.prev;
+  return REGB0;
 }
-val_t stream___FDStream___native_read_char(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 221, LOCATE_stream___FDStream___native_read_char};
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  tracehead = trace.prev;
-  return TAG_Int(stream_FDStream_FDStream_native_read_char_1( self, UNTAG_Int( param0)));
+val_t stream___FDStream___native_read_char(val_t p0, val_t p1){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 221;
+  fra.me.meth = LOCATE_stream___FDStream___native_read_char;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = p1;
+  /* ./../lib/standard//stream.nit:221 */
+  REGB0 = TAG_Int(stream_FDStream_FDStream_native_read_char_1(fra.me.REG[0], UNTAG_Int(REGB0)));
+  stack_frame_head = fra.me.prev;
+  return REGB0;
 }
-val_t stream___FDStream___native_read(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, NULL, 222, LOCATE_stream___FDStream___native_read};
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  tracehead = trace.prev;
-  return TAG_Int(stream_FDStream_FDStream_native_read_3( self, UNTAG_Int( param0), UNBOX_NativeString( param1), UNTAG_Int( param2)));
+val_t stream___FDStream___native_read(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;
+  val_t REGB1;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 222;
+  fra.me.meth = LOCATE_stream___FDStream___native_read;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = p1;
+  fra.me.REG[1] = p2;
+  REGB1 = p3;
+  /* ./../lib/standard//stream.nit:222 */
+  REGB1 = TAG_Int(stream_FDStream_FDStream_native_read_3(fra.me.REG[0], UNTAG_Int(REGB0), UNBOX_NativeString(fra.me.REG[1]), UNTAG_Int(REGB1)));
+  stack_frame_head = fra.me.prev;
+  return REGB1;
 }
-val_t stream___FDStream___native_write(val_t  self, val_t  param0, val_t  param1, val_t  param2) {
-  struct trace_t trace = {NULL, NULL, 223, LOCATE_stream___FDStream___native_write};
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  tracehead = trace.prev;
-  return TAG_Int(stream_FDStream_FDStream_native_write_3( self, UNTAG_Int( param0), UNBOX_NativeString( param1), UNTAG_Int( param2)));
+val_t stream___FDStream___native_write(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;
+  val_t REGB1;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 223;
+  fra.me.meth = LOCATE_stream___FDStream___native_write;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = p1;
+  fra.me.REG[1] = p2;
+  REGB1 = p3;
+  /* ./../lib/standard//stream.nit:223 */
+  REGB1 = TAG_Int(stream_FDStream_FDStream_native_write_3(fra.me.REG[0], UNTAG_Int(REGB0), UNBOX_NativeString(fra.me.REG[1]), UNTAG_Int(REGB1)));
+  stack_frame_head = fra.me.prev;
+  return REGB1;
 }
-void stream___FDStream___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 225, LOCATE_stream___FDStream___init};
-  val_t variable0;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable0 =  param0;
-  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDStream].i]) return;
-  ATTR_stream___FDStream____fd( self) /*FDStream::_fd*/ =  variable0 /*fd*/;
-  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDStream].i] = 1;
-  tracehead = trace.prev;
+void stream___FDStream___init(val_t p0, val_t p1, int* init_table){
+  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_FDStream].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t tmp;
+  if (init_table[itpos1]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 225;
+  fra.me.meth = LOCATE_stream___FDStream___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = p1;
+  /* ./../lib/standard//stream.nit:225 */
+  fra.me.REG[1] = fra.me.REG[0];
+  CALL_stream___IOS___init(fra.me.REG[0])(fra.me.REG[0], init_table);
+  ATTR_stream___FDStream____fd(fra.me.REG[1]) = REGB0;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos1] = 1;
   return;
 }
-val_t stream___FDIStream___eof(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 231, LOCATE_stream___FDIStream___eof};
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  tracehead = trace.prev;
-  return ATTR_stream___FDIStream____eof( self) /*FDIStream::_eof*/;
+val_t stream___FDIStream___eof(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 231;
+  fra.me.meth = LOCATE_stream___FDIStream___eof;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ./../lib/standard//stream.nit:231 */
+  REGB0 = TAG_Bool(ATTR_stream___FDIStream____eof(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_eof", LOCATE_stream, 231);
+  }
+  REGB0 = ATTR_stream___FDIStream____eof(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return REGB0;
 }
-val_t stream___FDIStream___read_char(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 233, LOCATE_stream___FDIStream___read_char};
-  val_t variable0;
-  val_t variable1;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable1 = ATTR_stream___FDStream____fd( self) /*FDStream::_fd*/;
-  variable1 = ((stream___FDStream___native_read_char_t)CALL( self,COLOR_stream___FDStream___native_read_char))( self, variable1) /*FDStream::native_read_char*/;
-  variable0 = variable1;
-  variable1 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
-  variable1 = TAG_Bool(( variable0 /*nb*/)==(variable1));
-  if (UNTAG_Bool(variable1)) { /*if*/
-    ATTR_stream___FDIStream____eof( self) /*FDIStream::_eof*/ =  TAG_Bool(true);
-  }
-  variable0 =  variable0 /*nb*/;
-  goto return_label22;
-  return_label22: while(false);
-  tracehead = trace.prev;
-  return variable0;
+val_t stream___FDIStream___read_char(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 233;
+  fra.me.meth = LOCATE_stream___FDIStream___read_char;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ./../lib/standard//stream.nit:235 */
+  REGB0 = TAG_Bool(ATTR_stream___FDStream____fd(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_fd", LOCATE_stream, 235);
+  }
+  REGB0 = ATTR_stream___FDStream____fd(fra.me.REG[0]);
+  REGB0 = CALL_stream___FDStream___native_read_char(fra.me.REG[0])(fra.me.REG[0], REGB0);
+  /* ./../lib/standard//stream.nit:236 */
+  REGB1 = TAG_Int(1);
+  /* ./../lib/standard//kernel.nit:216 */
+  REGB1 = TAG_Int(-UNTAG_Int(REGB1));
+  /* ./../lib/standard//stream.nit:236 */
+  REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
+  if (UNTAG_Bool(REGB2)) {
+  } else {
+    /* ./../lib/standard//kernel.nit:207 */
+    REGB1 = TAG_Bool((REGB0)==(REGB1));
+    /* ./../lib/standard//stream.nit:236 */
+    REGB2 = REGB1;
+  }
+  if (UNTAG_Bool(REGB2)) {
+    REGB2 = TAG_Bool(true);
+    ATTR_stream___FDIStream____eof(fra.me.REG[0]) = REGB2;
+  }
+  /* ./../lib/standard//stream.nit:237 */
+  goto label1;
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return REGB0;
 }
-void stream___FDIStream___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 240, LOCATE_stream___FDIStream___init};
-  val_t variable0;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable0 =  param0;
-  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDIStream].i]) return;
-  ((stream___FDStream___init_t)CALL( self,COLOR_stream___FDStream___init))( self,  param0, init_table /*YYY*/) /*FDStream::init*/;
-  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDIStream].i] = 1;
-  tracehead = trace.prev;
+void stream___FDIStream___init(val_t p0, val_t p1, int* init_table){
+  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_FDIStream].i;
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  if (init_table[itpos2]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 240;
+  fra.me.meth = LOCATE_stream___FDIStream___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = p1;
+  /* ./../lib/standard//stream.nit:240 */
+  CALL_stream___FDStream___init(fra.me.REG[0])(fra.me.REG[0], REGB0, init_table);
+  stack_frame_head = fra.me.prev;
+  init_table[itpos2] = 1;
   return;
 }
-val_t stream___FDOStream___is_writable(val_t  self) {
-  struct trace_t trace = {NULL, NULL, 246, LOCATE_stream___FDOStream___is_writable};
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  tracehead = trace.prev;
-  return ATTR_stream___FDOStream____is_writable( self) /*FDOStream::_is_writable*/;
+val_t stream___FDOStream___is_writable(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 246;
+  fra.me.meth = LOCATE_stream___FDOStream___is_writable;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 1;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  /* ./../lib/standard//stream.nit:246 */
+  REGB0 = TAG_Bool(ATTR_stream___FDOStream____is_writable(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_is_writable", LOCATE_stream, 246);
+  }
+  REGB0 = ATTR_stream___FDOStream____is_writable(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return REGB0;
 }
-void stream___FDOStream___write(val_t  self, val_t  param0) {
-  struct trace_t trace = {NULL, NULL, 248, LOCATE_stream___FDOStream___write};
-  val_t variable0;
-  val_t variable1;
-  val_t variable2;
-  val_t variable3;
-  val_t variable4;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable0 =  param0;
-  variable2 = ATTR_stream___FDStream____fd( self) /*FDStream::_fd*/;
-  variable3 = ((string___String___to_cstring_t)CALL( variable0 /*s*/,COLOR_string___String___to_cstring))( variable0 /*s*/) /*String::to_cstring*/;
-  variable4 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*AbstractArray::length*/;
-  variable2 = ((stream___FDStream___native_write_t)CALL( self,COLOR_stream___FDStream___native_write))( self, variable2, variable3, variable4) /*FDStream::native_write*/;
-  variable1 = variable2;
-  variable2 = ((array___AbstractArray___length_t)CALL( variable0 /*s*/,COLOR_abstract_collection___Collection___length))( variable0 /*s*/) /*AbstractArray::length*/;
-  variable2 = TAG_Bool(UNTAG_Int( variable1 /*nb*/)<UNTAG_Int(variable2));
-  if (UNTAG_Bool(variable2)) { /*if*/
-    ATTR_stream___FDOStream____is_writable( self) /*FDOStream::_is_writable*/ =  TAG_Bool(false);
-  }
-  tracehead = trace.prev;
+void stream___FDOStream___write(val_t p0, val_t p1){
+  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 248;
+  fra.me.meth = LOCATE_stream___FDOStream___write;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 3;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[2] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  fra.me.REG[1] = p1;
+  /* ./../lib/standard//stream.nit:250 */
+  REGB0 = TAG_Bool(ATTR_stream___FDStream____fd(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_fd", LOCATE_stream, 250);
+  }
+  REGB0 = ATTR_stream___FDStream____fd(fra.me.REG[0]);
+  fra.me.REG[2] = CALL_string___String___to_cstring(fra.me.REG[1])(fra.me.REG[1]);
+  /* ./../lib/standard//collection//array.nit:23 */
+  REGB1 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
+  if (UNTAG_Bool(REGB1)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+  }
+  REGB1 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
+  /* ./../lib/standard//stream.nit:250 */
+  REGB1 = CALL_stream___FDStream___native_write(fra.me.REG[0])(fra.me.REG[0], REGB0, fra.me.REG[2], REGB1);
+  /* ./../lib/standard//collection//array.nit:23 */
+  REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
+  }
+  REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
+  /* ./../lib/standard//kernel.nit:212 */
+  REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
+  /* ./../lib/standard//stream.nit:251 */
+  if (UNTAG_Bool(REGB0)) {
+    REGB0 = TAG_Bool(false);
+    ATTR_stream___FDOStream____is_writable(fra.me.REG[0]) = REGB0;
+  }
+  stack_frame_head = fra.me.prev;
   return;
 }
-void stream___FDOStream___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 254, LOCATE_stream___FDOStream___init};
-  val_t variable0;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable0 =  param0;
-  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDOStream].i]) return;
-  ((stream___FDStream___init_t)CALL( self,COLOR_stream___FDStream___init))( self,  param0, init_table /*YYY*/) /*FDStream::init*/;
-  ATTR_stream___FDOStream____is_writable( self) /*FDOStream::_is_writable*/ =  TAG_Bool(true);
-  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDOStream].i] = 1;
-  tracehead = trace.prev;
+void stream___FDOStream___init(val_t p0, val_t p1, int* init_table){
+  int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_FDOStream].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t tmp;
+  if (init_table[itpos3]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 254;
+  fra.me.meth = LOCATE_stream___FDOStream___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = p1;
+  /* ./../lib/standard//stream.nit:254 */
+  fra.me.REG[1] = fra.me.REG[0];
+  CALL_stream___FDStream___init(fra.me.REG[0])(fra.me.REG[0], REGB0, init_table);
+  /* ./../lib/standard//stream.nit:256 */
+  REGB0 = TAG_Bool(true);
+  ATTR_stream___FDOStream____is_writable(fra.me.REG[1]) = REGB0;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos3] = 1;
   return;
 }
-void stream___FDIOStream___init(val_t  self, val_t  param0, int* init_table) {
-  struct trace_t trace = {NULL, NULL, 264, LOCATE_stream___FDIOStream___init};
-  val_t variable0;
-  trace.prev = tracehead; tracehead = &trace;
-  trace.file = LOCATE_stream;
-  variable0 =  param0;
-  if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDIOStream].i]) return;
-  ((stream___FDIStream___init_t)CALL( self,COLOR_stream___FDIStream___init))( self,  param0, init_table /*YYY*/) /*FDIStream::init*/;
-  ((stream___FDOStream___init_t)CALL( self,COLOR_stream___FDOStream___init))( self,  param0, init_table /*YYY*/) /*FDOStream::init*/;
-  ATTR_stream___FDStream____fd( self) /*FDStream::_fd*/ =  variable0 /*fd*/;
-  ATTR_stream___FDOStream____is_writable( self) /*FDOStream::_is_writable*/ =  TAG_Bool(true);
-  init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_FDIOStream].i] = 1;
-  tracehead = trace.prev;
+void stream___FDIOStream___init(val_t p0, val_t p1, int* init_table){
+  int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_FDIOStream].i;
+  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t tmp;
+  if (init_table[itpos4]) return;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_stream;
+  fra.me.line = 264;
+  fra.me.meth = LOCATE_stream___FDIOStream___init;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 2;
+  fra.me.REG[0] = NIT_NULL;
+  fra.me.REG[1] = NIT_NULL;
+  fra.me.REG[0] = p0;
+  REGB0 = p1;
+  /* ./../lib/standard//stream.nit:264 */
+  fra.me.REG[1] = fra.me.REG[0];
+  REGB1 = REGB0;
+  CALL_stream___FDIStream___init(fra.me.REG[0])(fra.me.REG[0], REGB0, init_table);
+  CALL_stream___FDOStream___init(fra.me.REG[0])(fra.me.REG[0], REGB0, init_table);
+  /* ./../lib/standard//stream.nit:266 */
+  ATTR_stream___FDStream____fd(fra.me.REG[1]) = REGB1;
+  /* ./../lib/standard//stream.nit:267 */
+  REGB1 = TAG_Bool(true);
+  ATTR_stream___FDOStream____is_writable(fra.me.REG[1]) = REGB1;
+  stack_frame_head = fra.me.prev;
+  init_table[itpos4] = 1;
   return;
 }