[#1215] Tk widget demo; English Tk docs?; Java 1.2 Swing — "Conrad Schneiker" <schneiker@...>
Hi,
[#1218] Trivial FAQ bug — Dave Thomas <Dave@...>
[#1229] A vote for old behavior — Dave Thomas <Dave@...>
[#1232] Any FAQ requests, updates, ... — Dave Thomas <Dave@...>
[#1233] Singleton classes — Dave Thomas <Dave@...>
[#1263] Draft of the updated Ruby FAQ — Dave Thomas <Dave@...>
[#1307] Ruby/GTK 0.23 released — Hiroshi IGARASHI <igarashi@...>
Hi all,
From: Hiroshi IGARASHI <igarashi@ueda.info.waseda.ac.jp>
From: "Conrad Schneiker" <schneiker@jump.net>
On Fri, Feb 18, 2000 at 09:37:27PM -0500, Yasushi Shoji wrote:
[#1322] FAQ: Ruby acronyms — "Conrad Schneiker" <schneiker@...>
In the spirit of TABWTDI (there are better ways to do it), I'd like to
[#1341] Vim syntax file — Mirko Nasato <mirko.nasato@...>
Hi,
On Mon, Feb 14, 2000 at 05:44:39PM +0100, Mirko Nasato wrote:
[#1354] Say hi (bis) — Pixel <pixel_@...>
hi all,
[#1355] nice sample for functional stuff — Pixel <pixel_@...>
what about having map in standard (and map_index too)?
[#1373] Ruby Language Reference Manual--Glossary — "Conrad Schneiker" <schneiker@...>
I was going to print the Ruby Language Reference Manual when I noticed that
[#1376] Re: Scripting versus programming — Andrew Hunt <andy@...>
Conrad writes:
[#1379] Re: Yield — Andrew Hunt <andy@...>
>From: "Conrad Schneiker" <schneiker@jump.net>
[#1384] Re: Say Hi — mengx@...
My suggestion was to try to find a more comfortable method name (to me, and
[#1392] Re: Some Questions - Parameterised Types / Invariants — Andrew Hunt <andy@...>
>1. Parameterised Types / Template Classes
[#1398] Bignum aset — Andrew Hunt <Andy@...>
[#1488] Discussion happens on news.groups — Clemens Hintze <c.hintze@...>
Hi,
[#1508] Ruby/GTK and the mainloop — Ian Main <imain@...>
Hello Ian,
On Wed, Feb 23, 2000 at 02:56:10AM -0500, Yasushi Shoji wrote:
[#1516] Ruby: PLEASE use comp.lang.misc for all Ruby programming/technical questions/discussions!!!! — "Conrad Schneiker" <schneiker@...>
((FYI: This was sent to the Ruby mail list.))
From: "Conrad Schneiker" <schneiker@jump.net>
[#1528] ruby <=> python — Quinn Dunkan <quinn@...>
Hello! I'm new to ruby-talk, and mostly new to ruby. I'm making a document
[#1551] Ruby thread scheduling buglet — Ian Main <imain@...>
[#1569] Re: Ruby: constructors, new and initialise — Yukihiro Matsumoto <matz@...>
The following message is a courtesy copy of an article
[#1591] Certain char's not recognized by "." in regex? — Wes Nakamura <wknaka@...>
[#1592] Race condition in Singleton — Dave Thomas <Dave@...>
[ruby-talk:01508] Ruby/GTK and the mainloop
Hello Ruby folk! :)
I'm new to this list so I'm just going to take a second to introduce
myself.. My name is Ian Main, and I live in Canada! :)
I mostly have an interest in Ruby because I am working on something called
Entity, the homepage of which is at:
http://entity.evilplan.org
Essentially it's an engine that allows you to create XML objects, and use
those to build applications in XML.
Anyway, I really find Ruby very interesting.. and one feature (besides the
cool OO'ness of it), that would be extremely cool for me was the built in
threading. I took a look at the source code, and I really like the way it
will block and reschedule on IO etc. I think this would integrate
beautifully into Entity. (and I can't beleive no other languages do this..
I was actually toying with the idea of implementing something similar myself).
However, having looked at the GTK bindings, I saw something which I thought
could use improvement - namely:
...
gtk_idle_add((GtkFunction)idle, 0);
...
from rbgtk.c., idle() of course being defined as:
static gint
idle()
{
struct timeval wait;
wait.tv_sec = 0;
wait.tv_usec = 1000; /* 100ms */
CHECK_INTS;
if (!rb_thread_critical) rb_thread_wait_for(wait);
return Qtrue;
}
Now, this doesn't cause too huge of problems, but I did notice the
sluggish redraw gtk had when run from ruby (because it only gets control
to redraw every 100ms). It also makes the applications consume a small
amount of CPU when idle.
If I were to embed ruby into entity, it would also cause IO handlers to be
called with a 100ms delay. I realize this could be made into a smaller
amount (and indeed this is what I did with the Ruby/GTK to make it "feel"
faster), but this causes more idle CPU usage.. not a big deal on my machine,
but the actual amount will vary depending on the platform.
In Entity we've extrapolated all the mainloop functions, and have a
registration function which can be used to insert your own functions for the
mainloop (eg, select()), adding IO watchers (to the select () call)) etc. We
then provide a default set of handlers (for which we just use the glib
functions), if no alternative is provided. This allows you to use other
toolkits which assume control of the mainloop, such as Qt etc.
So the point of all this, is that I'm wondering if you would be interested
in implementing a similar thing in Ruby ? I would be willing to help in any
way possible, including an attempt at supplying patches if this is what it
will take.
I'm really keen on getting Ruby support into Entity, but I think this is
something I'd like to have resolved before doing so.
Thanks,
Ian