Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Mar 2006 00:22:50 +0900
From:      MANTANI Nobutaka <nobutaka@freebsd.org>
To:        "Jeremy Messenger" <mezz7@cox.net>
Cc:        Makoto Matsushita <matusita@jp.freebsd.org>, ports@freebsd.org, pav@freebsd.org
Subject:   Re: Ruby oddity (pthreads)
Message-ID:  <86fylaijw5.wl%nobutaka@nobutaka.org>
In-Reply-To: <op.s6bbkbng9aq2h7@mezz.mezzweb.com>
References:  <20060313.004512.55510725.rushani@FreeBSD.org> <441452E7.3010809@jp.FreeBSD.org> <1142182986.64145.8.camel@ikaros.oook.cz> <4414581B.1070800@jp.FreeBSD.org> <op.s6bbkbng9aq2h7@mezz.mezzweb.com>

next in thread | previous in thread | raw e-mail | index | archive | help
At Sun, 12 Mar 2006 12:13:13 -0600,
Jeremy Messenger wrote:
> 
> On Sun, 12 Mar 2006 11:19:23 -0600, Makoto Matsushita  
> <matusita@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@nobutaka.org, nobutaka@freebsd.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86fylaijw5.wl%nobutaka>