[#27380] [Bug #2553] Fix pthreads slowness by eliminating unnecessary sigprocmask calls — Dan Peterson <redmine@...>

Bug #2553: Fix pthreads slowness by eliminating unnecessary sigprocmask calls

21 messages 2010/01/03

[#27437] [Feature #2561] 1.8.7 Patch reduces time cost of Rational operations by 50%. — Kurt Stephens <redmine@...>

Feature #2561: 1.8.7 Patch reduces time cost of Rational operations by 50%.

9 messages 2010/01/06

[#27447] [Bug #2564] [patch] re-initialize timer_thread_{lock,cond} after fork — Aliaksey Kandratsenka <redmine@...>

Bug #2564: [patch] re-initialize timer_thread_{lock,cond} after fork

18 messages 2010/01/06

[#27545] [Feature #2594] 1.8.7 Patch: Reduce time spent in gc.c is_pointer_to_heap(). — Kurt Stephens <redmine@...>

Feature #2594: 1.8.7 Patch: Reduce time spent in gc.c is_pointer_to_heap().

8 messages 2010/01/11

[#27635] [Bug #2619] Proposed method: Process.fork_supported? — Hongli Lai <redmine@...>

Bug #2619: Proposed method: Process.fork_supported?

45 messages 2010/01/20
[#27643] [Feature #2619] Proposed method: Process.fork_supported? — Luis Lavena <redmine@...> 2010/01/21

Issue #2619 has been updated by Luis Lavena.

[#27678] Re: [Feature #2619] Proposed method: Process.fork_supported? — Yukihiro Matsumoto <matz@...> 2010/01/22

Hi,

[#27684] Re: [Feature #2619] Proposed method: Process.fork_supported? — Charles Oliver Nutter <headius@...> 2010/01/22

On Thu, Jan 21, 2010 at 11:27 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

[#27708] Re: [Feature #2619] Proposed method: Process.fork_supported? — Yukihiro Matsumoto <matz@...> 2010/01/22

Hi,

[#27646] Re: [Bug #2619] Proposed method: Process.fork_supported? — Tanaka Akira <akr@...> 2010/01/21

2010/1/21 Hongli Lai <redmine@ruby-lang.org>:

[#27652] Re: [Bug #2619] Proposed method: Process.fork_supported? — Hongli Lai <hongli@...99.net> 2010/01/21

On 1/21/10 5:20 AM, Tanaka Akira wrote:

[#27653] Re: [Bug #2619] Proposed method: Process.fork_supported? — Tanaka Akira <akr@...> 2010/01/21

2010/1/21 Hongli Lai <hongli@plan99.net>:

[#27662] Re: [Bug #2619] Proposed method: Process.fork_supported? — Vladimir Sizikov <vsizikov@...> 2010/01/21

On Thu, Jan 21, 2010 at 10:53 AM, Tanaka Akira <akr@fsij.org> wrote:

[#27698] [Bug #2629] ConditionVariable#wait(mutex, timeout) should return whether the condition was signalled, not the waited time — Hongli Lai <redmine@...>

Bug #2629: ConditionVariable#wait(mutex, timeout) should return whether the condition was signalled, not the waited time

8 messages 2010/01/22

[#27722] [Feature #2635] Unbundle rdoc — Yui NARUSE <redmine@...>

Feature #2635: Unbundle rdoc

14 messages 2010/01/23

[#27757] [Bug #2638] ruby-1.9.1-p37[68] build on aix5.3 with gcc-4.2 failed to run for me because it ignores where libgcc is located. — Joel Soete <redmine@...>

Bug #2638: ruby-1.9.1-p37[68] build on aix5.3 with gcc-4.2 failed to run for me because it ignores where libgcc is located.

10 messages 2010/01/24

[#27778] [Bug #2641] Seg fault running miniruby during ruby build on Haiku — Alexander von Gluck <redmine@...>

Bug #2641: Seg fault running miniruby during ruby build on Haiku

10 messages 2010/01/25

[#27791] [Bug #2644] memory over-allocation with regexp — Greg Hazel <redmine@...>

Bug #2644: memory over-allocation with regexp

12 messages 2010/01/25

[#27794] [Bug #2647] Lack of testing for String#split — Hugh Sasse <redmine@...>

Bug #2647: Lack of testing for String#split

14 messages 2010/01/25

[#27912] [Bug #2669] mkmf find_executable doesn't find .bat files — Roger Pack <redmine@...>

Bug #2669: mkmf find_executable doesn't find .bat files

11 messages 2010/01/27

[#27930] [Bug:trunk] some behavior changes of lib/csv.rb between 1.8 and 1.9 — Yusuke ENDOH <mame@...>

Hi jeg2, or anyone who knows the implementation of FasterCSV,

15 messages 2010/01/28
[#27931] Re: [Bug:trunk] some behavior changes of lib/csv.rb between 1.8 and 1.9 — James Edward Gray II <james@...> 2010/01/28

On Jan 28, 2010, at 10:51 AM, Yusuke ENDOH wrote:

[ruby-core:27741] Re: [Feature #2619] Proposed method: Process.fork_supported?

From: Charles Oliver Nutter <headius@...>
Date: 2010-01-23 20:56:03 UTC
List: ruby-core #27741
On Sat, Jan 23, 2010 at 1:50 PM, Caleb Clausen <vikkous@gmail.com> wrote:
> I don't know much about jruby, but I can't see why you say this is so
> difficult. It seems to me that fork_supported? (or whatever it should
> be called) could be implemented like this:

Here's fork_supported? on JRuby:

def Process.fork_supported?; false; end

There's no way to fork a JVM properly; too many signal handlers and
threads that just don't propagate properly. In fact, I'd *prefer*
fork_supported? over the respond_to? behavior change.

> Does that not work right in jruby? In the general case, there are many
> such system methods that need to be checked; you wouldn't want to
> repeat the above for each one. But it can be generalized and dry'd up
> a little:
>
> module Platform
>  SYSCALLNAME2TEST={
>    :fork => "!!fork{}",
>    :ppid => "res=Process.ppid; res and res !=0",
>    #etc
>  }
>
>  eval SYSCALLNAME2TEST.map{|name,test|
>     "
>     def #{name}_supported?
>       return @@#{name}_supported unless @@#{name}_supported==nil
>      @@#{name}_supported= (#{test})
>      return @@#{name}_supported
>    rescue Exception
>      return @@#{name}_supported=false
>    end
>    "
>  }.join("\n")
> end

Except that calling many methods will have side effects we don't want
to happen, or may have overcomplicated tests, or may not be testable
at all and you don't know until you call them with valid inputs if
they'll work. The general case is basically the halting problem...you
can't determine from inspection whether calling a given
method/function will behave well enough to claim it is "implemented".

> Essentially, you're doing the same kind of tests that configure does,
> but at runtime instead of compile time. Maybe you have to do a
> different special test for each system call, but that's one line, or
> at most a few, for each one. So in all we're talking about, what,
> several hundred lines of (ruby) code? I don't see how any of this is
> difficult. Tedious, perhaps, but not that difficult. I wouldn't even
> characterize it as "a very large amount of work".

Great, write it for all the system calls that 1.9 reports respond_to?
as false for :) And make sure it works correctly on all the platforms
where people use JRuby. You do have AIX, zLinux, and OpenVMS systems
available, right?

- Charlie

In This Thread