--0016e6476ad2d061be046c7f6bed
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Hi ruby-core and CC'ed friends -

As many of you know, Aman Gupta and I have been busy hacking on Ruby
1.8.{6,7} internals making some cool improvements with the threading
implementation.

We have some questions regarding next steps for some our work and what we
can do to help the Ruby community.

Currently, we have a threading implementation that moves the thread stacks
off of the process stack, reducing context switch cost significantly. More
technical information about this, as well as links to patches that apply
against Ruby 1.8.6 and 1.8.7 are available on my blog at:
http://timetobleed.com/fixing-threads-in-ruby-18-a-2-10x-performance-boost/

There are a few important things to note about the code provided there:

1.) The patches only build on the x86 and x86_64 platforms, other platforms
will likely fail to compile.
2.) The patches have only been tested on OSX and Linux on x86 and x86_64 -
other OSs will need to be tested.
3.) Currently, continuations are broken with our patches.

If Aman and I do the following items:

1.) Add #ifdefs to allow non x86 architectures to compile and use the old
thread code paths
2.) Test on a few more architectures (we would need help from the community
for this)
3.) Fix continuations

Will our code be considered for merging to future Ruby 1.8.{6,7} releases?

We ask this question because Aman and I hack on the Ruby interpreter for
*fun* - and completing the list of tasks above is not as fun as working on a
new GC implementation  We don't mind doing the work if we know before we
do it that we'll have the support of the community and that there is a
*reasonable* chance our code will get merged back in.

We look forward to working with the Ruby community moving forward -
Joe Damato and Aman Gupta

--0016e6476ad2d061be046c7f6bed
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi ruby-core and CC&#39;ed friends -<br><br>As many of you know, Aman Guptand I have been busy hacking on Ruby 1.8.{6,7} internals making some cool improvements with the threading implementation.<br><br>We have some questions regarding next steps for some our work and what we can do to help the Ruby community.<br>
<br>Currently, we have a threading implementation that moves the thread stacks off of the process stack, reducing context switch cost significantly. More technical information about this, as well as links to patches that apply against Ruby 1.8.6 and 1.8.7 are available on my blog at: http://timetobleed.com/fixing-threads-in-ruby-18-a-2-10x-performance-boost/<br>
<br>There are a few important things to note about the code provided there:<br><br>1.) The patches only build on the x86 and x86_64 platforms, other platforms will likely fail to compile.<br>2.) The patches have only been tested on OSX and Linux on x86 and x86_64 - other OSs will need to be tested.<br>
3.) Currently, continuations are broken with our patches.<br><br>If Aman and I do the following items:<br><br>1.) Add #ifdefs to allow non x86 architectures to compile and use the old thread code paths<br>2.) Test on a few more architectures (we would need help from the community for this) <br>
3.) Fix continuations<br><br>Will our code be considered for merging to future Ruby 1.8.{6,7} releases?<br><br>We ask this question because Aman and Iack on the Ruby interpreter for *fun* - and completing the list of tasks above is not as fun as working on a new GC implementation =]. We don&#39;t mind doing the work if we know before we do it that we&#39;ll have the support of the community and that there is a *reasonable* chance our code will get merged back in.<br>
<br>We look forward to working with the Ruby community moving forward -<br>Joe Damato and Aman Gupta<br>

--0016e6476ad2d061be046c7f6bed--