Ruby oddity (pthreads)

MANTANI Nobutaka nobutaka at freebsd.org
Wed Mar 22 15:23:24 UTC 2006


At Sun, 12 Mar 2006 12:13:13 -0600,
Jeremy Messenger wrote:
> 
> On Sun, 12 Mar 2006 11:19:23 -0600, Makoto Matsushita  
> <matusita at jp.FreeBSD.org> wrote:
> 
> >> I made threaded ruby the default, because the Gtk+/GNOME bindings for
> >> Ruby rely on it being threaded.  There are some rather nice apps using
> >> those libraries...
> 
> But, all they need are ${PTHREAD_LIBS} and it will working w/out enable  
> thread. The ruby-gtk2/ruby-gnome2 aren't alone, it also for ruby-opengl,  
> ruby-sdl, ruby-wx and etc.

Exactly. I have made a patch for lang/ruby18 to disable pthread by default
and link ${PTHREAD_LIBS} regardless of pthread support, and I confirmed that
migemo, ruby-gtk2 and ruby-gnome2 works without problem.

> > Reasonable, so we have to make lang/ruby18 ports to two ports -- one is  
> > for
> > pthread ruby and another is non-pthreaded ruby.  Both ports must be  
> > installed
> > to the same system without any conflicts.  Any volunteers, or we have to  
> > wait
> > until my superman, nork-san has a free time to do that? :-)
> 
> No thanks, we used to have ruby18 and ruby18_r, and it was messy and  
> headache. I am the one that suggested to remove and everything was solved  
> by using ${PTHREAD_LIBS} with disable pthread. I would like to see we go  
> back to same way what lofi and I did with ruby before.
> 
> http://lists.freebsd.org/pipermail/cvs-ports/2005-February/058420.html

I second this. Pthread support of ruby-1.8.4 is still incomplete. Pthread
functions are only used for implementing thread timer for ruby threads.
Therefore I don't see any benefit from enabling pthread support.
And I think that thread stack expantion hack like HUGE_STACK_SIZE option
in lang/python port is required if we use pthreaded ruby.

So I'm going to commit the patch mentioned above and remove lang/ruby18-nopthread port.
The patch is available from http://people.freebsd.org/~nobutaka/ruby-ports-20060321.diff.
Are there any objections?

> > We have another problems here; what is the default ruby, pthreaded or
> > non-phtreaded.  My vote goes to non-pthreaded, since "default to  
> > pthreaded"
> > may slow for users who doesn't require pthread.
> 
> http://lists.freebsd.org/pipermail/cvs-ports/2006-January/084479.html
> 
> Hopeful either Ruby 1.9 or Ruby 2 will solving all of issues with new  
> thread stuff.

I hope so. FYI, I hear that SASADA Koichi is trying to implement native threads
(pthread and win32 thread) support in his YARV (Yet Another Ruby VM) project.

YARV: Yet Another Ruby VM
http://www.atdot.net/yarv/


--
MANTANI Nobutaka
nobutaka at nobutaka.org, nobutaka at freebsd.org


More information about the freebsd-ports mailing list