Well this surprised me a bit, this is reading pchannels:

    val m1 = read(inp);
    val m2 = read(inp);
    val m3 = read(inp);
    eprintln$ "Mainline Read1="+ m1.str;
    eprintln$ "Mainline Read2="+ m2.str;
    eprintln$ "Mainline Read3="+ m3.str;

Mainline Read1=36
Mainline Read2=16
Mainline Read3=26

These numbers should be in order! Like this: (note: val changed to var):


    var m1 = read(inp);
    var m2 = read(inp);
    var m3 = read(inp);
    eprintln$ "Mainline Read1="+ m1.str;
    eprintln$ "Mainline Read2="+ m2.str;
    eprintln$ "Mainline Read3="+ m3.str;

Mainline Read1=16
Mainline Read2=26
Mainline Read3=36

To see why I looked at the C++:
//PROCEDURE <16106:> _init_::_lam_12704: Resume method
::flx::rtl::con_t *_lam_12704::resume(){
      {
      _a6716t_61945 _tmp62270 = (_a6716t_61945)("mainline reading results from 
pchannels");
      ::flx::rtl::ioutil::write((&::std::cerr),_tmp62270);
      }
      {
      _a6716t_61945 _tmp62271 = (_a6716t_61945)("\n");
      ::flx::rtl::ioutil::write((&::std::cerr),_tmp62271);
      }
      {
      _poly_4854t_61937 _tmp62272 = 
(_poly_4854t_61937)((ptr_init_->_i16103_v16103_inp));
      int** _tmp62273 = (int**)&_i16109_v16109_p;
      
    {
    FLX_SAVE_REGS;
    PTF gcp->collector->get_thread_control()->suspend();
    fprintf(stderr,"READ:DQ\n");
    *_tmp62273 = (int*)(_tmp62272->dequeue());
    fprintf(stderr,"DONE READ:DQ\n");
    PTF gcp->collector->get_thread_control()->resume();
    }
  
      }
      _i16107_v16107_m2 = *_i16109_v16109_p ;
      {
      _poly_4854t_61937 _tmp62274 = 
(_poly_4854t_61937)((ptr_init_->_i16103_v16103_inp));
      int** _tmp62275 = (int**)&_i16110_v16110_p;
      
    {
    FLX_SAVE_REGS;
    PTF gcp->collector->get_thread_control()->suspend();
    fprintf(stderr,"READ:DQ\n");
    *_tmp62275 = (int*)(_tmp62274->dequeue());
    fprintf(stderr,"DONE READ:DQ\n");
    PTF gcp->collector->get_thread_control()->resume();
    }
  
      }
      _i16108_v16108_m3 = *_i16110_v16110_p ;
      {
      _poly_4854t_61937 _tmp62276 = 
(_poly_4854t_61937)((ptr_init_->_i16103_v16103_inp));
      int** _tmp62277 = (int**)&p;
      
    {
    FLX_SAVE_REGS;
    PTF gcp->collector->get_thread_control()->suspend();
    fprintf(stderr,"READ:DQ\n");
    *_tmp62277 = (int*)(_tmp62276->dequeue());
    fprintf(stderr,"DONE READ:DQ\n");
    PTF gcp->collector->get_thread_control()->resume();
    }
  
      }
      {
      _a6716t_61945 _tmp62278 = (_a6716t_61945)("Mainline Read1=") + 
(::flx::rtl::strutil::str<int>((*p ))) ;
      ::flx::rtl::ioutil::write((&::std::cerr),_tmp62278);
      }
      {
      _a6716t_61945 _tmp62279 = (_a6716t_61945)("\n");
      ::flx::rtl::ioutil::write((&::std::cerr),_tmp62279);
      }
      {
      _a6716t_61945 _tmp62280 = (_a6716t_61945)("Mainline Read2=") + 
(::flx::rtl::strutil::str<int>(_i16107_v16107_m2)) ;
      ::flx::rtl::ioutil::write((&::std::cerr),_tmp62280);
      }
      {
      _a6716t_61945 _tmp62281 = (_a6716t_61945)("\n");
      ::flx::rtl::ioutil::write((&::std::cerr),_tmp62281);
      }
      {
      _a6716t_61945 _tmp62282 = (_a6716t_61945)("Mainline Read3=") + 
(::flx::rtl::strutil::str<int>(_i16108_v16108_m3)) ;
      ::flx::rtl::ioutil::write((&::std::cerr),_tmp62282);
      }
      {
      _a6716t_61945 _tmp62283 = (_a6716t_61945)("\n");
      ::flx::rtl::ioutil::write((&::std::cerr),_tmp62283);
      }
    FLX_RETURN
}

which looks pretty weird! 

--
john skaller
skal...@users.sourceforge.net





------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to