[#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

[#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> w=

[#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:27553] Re: better GC?

From: Rick DeNatale <rick.denatale@...>
Date: 2010-01-11 22:53:43 UTC
List: ruby-core #27553
On Mon, Jan 11, 2010 at 4:20 PM, Charles Oliver Nutter
<headius@headius.com> wrote:
> On Thu, Jan 7, 2010 at 4:09 PM, Kurt Stephens <ks@kurtstephens.com> wrote=
:
>> Maybe we need to start abstracting Ruby implementation internals from C =
in a
>> way that doesn't limit the GC implementation -- like JNI when Sun realiz=
ed
>> how poorly conservative collectors perform for long-running/large Java
>> processes. =A0All Java implementations support JNI and not all Java
>> implementations use the same GC technology.
>
> To be honest, I think this is the *only* path forward for MRI.
> Slavishly supporting the current extension API doesn't really help
> anyone that much (the good extensions everyone uses are being mainted
> and could be updated to a new API), and makes it almost impossible to
> optimize certain aspects of MRI.

I think that you are correct sir!

> Lots of people hate JNI, but it's a far less invasive way to write
> extensions...and a lot of the cumbersome parts are by design. You
> should not be able to get direct pointer access to object internals,
> nor should you ever expose the structure of an object's memory layout.
> Macros like RARRAY and RSTRING should be abolished in favor of
> API-driven access (or opt-in "give me a copy of this array and then
> put it back" functions). It should not be necessary to scavenge the C
> stack to find live references. All these things make it harder to
> improve MRI and almost impossible to implement the C API on other
> runtimes (or at least, impossible without incurring large performance
> penalties).
>
> We are interested in supporting a C API in JRuby, but we will not
> support any API that gives you direct access to pointers or object
> structures. We'll work with Rubinius and MRI folks to come up with
> replacement APIs, but any existing extensions that need unsafe access
> will not work. If it's worthwhile to have C extensions that work with
> many different runtimes/GCs/threading models, these API changes are
> not really negotiable.

This would be good.

I'm not sure whether the API ultimately needs to be binary compatible,
or that a macro-based API would be as good.

If I'm not mistaken the MRI extension API macro implementations
changed between 1.8 and 1.9, certainly some of the 'VM' data
structures did, meaning that extensions needed to be recompiled.

Back when we were flogging 'enterprise' versions of Smalltalk and Java
at IBM, maintaining binary compatibility of interfaces was important
because we didn't necessarily want to ship all the source, and folks
wanted to write (and ship) proprietary extensions.  Given the
open-source nature of Ruby and much of the world today, I'm not sure
that this is such a firm requirement.

--=20
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale

In This Thread