secret of light-weight user thread

2011-09-06 Thread 山本和彦
Hello, Recently I exchanged information about user threads with Ruby community in Japan. The user threads of Ruby 1.8 are heavy weight and Ruby 1.9 switched to kernel threads. The reason why user threads of Ruby 1.8 are heavy weight is *portability*. Since Ruby community does not want to prepare

Re: secret of light-weight user thread

2011-09-06 Thread Simon Marlow
On 06/09/2011 09:47, Kazu Yamamoto (山本和彦) wrote: Recently I exchanged information about user threads with Ruby community in Japan. The user threads of Ruby 1.8 are heavy weight and Ruby 1.9 switched to kernel threads. The reason why user threads of Ruby 1.8 are heavy weight is *portability*.

Inliner non-termination

2011-09-06 Thread Ron Alford
From the known bugs (http://www.haskell.org/ghc/docs/latest/html/users_guide/bugs.html#bugs-ghc): GHC's inliner can be persuaded into non-termination using the standard way to encode recursion via a data type... We have never found another class of programs, other than this contrived one, that

Re: Inliner non-termination

2011-09-06 Thread Felipe Almeida Lessa
On Tue, Sep 6, 2011 at 3:33 PM, Ron Alford ronw...@volus.net wrote: It took me about 4-6 hours to track down this bug in my own code (#5448) since it required repeatedly bisecting a larger program until I had a small testcase.  In the test program, I can get around it with {-# NOINLINE funcEq

Re: Inliner non-termination

2011-09-06 Thread Ron Alford
On Tue, Sep 6, 2011 at 7:50 PM, Felipe Almeida Lessa felipe.le...@gmail.com wrote: This doesn't solve GHC's bug, but can you do something like  myFuncEq = funcEq  {-# NOINLINE myFuncEq #-} and just use myFuncEq everywhere?  This should make the change local to your module. Unfortunately