[#27380] [Bug #2553] Fix pthreads slowness by eliminating unnecessary sigprocmask calls — Dan Peterson <redmine@...>
Bug #2553: Fix pthreads slowness by eliminating unnecessary sigprocmask calls
Issue #2553 has been updated by Andre Nathan.
2010/7/10 Andre Nathan <redmine@ruby-lang.org>:
[#27388] [Bug #2554] Net::FTP should not use MSG_OOB — Hongli Lai <redmine@...>
Bug #2554: Net::FTP should not use MSG_OOB
[#27393] Re: compressed pointers? — Roger Pack <rogerdpack2@...>
Martin wrote:
[#27420] closing of the stderr pipe not detected - issue in 1.9.1? — Robert Klemme <shortcutter@...>
Hi,
2010/1/5 Robert Klemme <shortcutter@googlemail.com>:
2010/1/5 Tanaka Akira <akr@fsij.org>:
[#27425] [Bug #2559] IO#write raises Errno::EINVAL instead of expected Errno::EPIPE — Hongli Lai <redmine@...>
Bug #2559: IO#write raises Errno::EINVAL instead of expected Errno::EPIPE
[#27429] [Bug #2560] IO.read not always closes the file — Vladimir Sizikov <redmine@...>
Bug #2560: IO.read not always closes the file
[#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%.
[#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
[#27448] [Feature:trunk] adding hooks for better tracing — Yugui <yugui@...>
Hi,
[#27456] Re: better GC? — Roger Pack <rogerdpack2@...>
> Yes, but unfortunately it's not small at all. GC has a lot of
[#27504] C can't instantiate over existing classes? — Roger Pack <rogerdpack2@...>
Is this expected? [1.9.1]
[#27522] require behavior in 1.9 with respect to loading files with different extensions — Dirkjan Bussink <d.bussink@...>
Hi,
Hi,
[#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().
Issue #2594 has been updated by Kurt Stephens.
[#27551] [Bug #2595] Add crc32_combine and adler32_combine to zlib API — Aaron Patterson <redmine@...>
Bug #2595: Add crc32_combine and adler32_combine to zlib API
Hi Aaron,
On Tue, Jan 19, 2010 at 10:22:25AM +0900, NAKAMURA, Hiroshi wrote:
[#27625] [Bug #2616] unable to trap in doze — Roger Pack <redmine@...>
Bug #2616: unable to trap in doze
[#27635] [Bug #2619] Proposed method: Process.fork_supported? — Hongli Lai <redmine@...>
Bug #2619: Proposed method: Process.fork_supported?
Issue #2619 has been updated by Luis Lavena.
Hi,
On Thu, Jan 21, 2010 at 11:27 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
Hi,
On Fri, Jan 22, 2010 at 1:25 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
On Fri, Jan 22, 2010 at 9:06 PM, Charles Oliver Nutter
2010/1/21 Hongli Lai <redmine@ruby-lang.org>:
On 1/21/10 5:20 AM, Tanaka Akira wrote:
2010/1/21 Hongli Lai <hongli@plan99.net>:
On Thu, Jan 21, 2010 at 10:53 AM, Tanaka Akira <akr@fsij.org> wrote:
2010/1/22 Vladimir Sizikov <vsizikov@gmail.com>:
On Thu, Jan 21, 2010 at 9:43 PM, Tanaka Akira <akr@fsij.org> wrote:
2010/1/22 Charles Oliver Nutter <headius@headius.com>:
Hi,
On Thu, Jan 21, 2010 at 12:49 PM, Vladimir Sizikov <vsizikov@gmail.com> wrote:
On 1/21/10 8:09 PM, Charles Oliver Nutter wrote:
>> I propose a method Process.fork_supported? which returns whether fork is supported on the current platform. See attached patch.
On 1/25/10 3:46 PM, Roger Pack wrote:
[#27656] A patch to rdoc — Tetsu Soh <tetsu.soh.dev@...>
Hello everyone,
[#27670] able to re-require $0 — Roger Pack <rogerdpack2@...>
Currently with 1.9.x you cannot "re-require" a file, even if you pass
Hi,
Hi,
Hi,
[#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
[#27701] [Feature #2631] Allow IO#reopen to take a block — Daniel Berger <redmine@...>
Feature #2631: Allow IO#reopen to take a block
[#27722] [Feature #2635] Unbundle rdoc — Yui NARUSE <redmine@...>
Feature #2635: Unbundle rdoc
Hi,
Issue #2635 has been updated by Yui NARUSE.
[#27748] [Bug #2636] Incorrect UTF-16 string length — Vincent Isambart <redmine@...>
Bug #2636: Incorrect UTF-16 string length
2010/1/24 Vincent Isambart <redmine@ruby-lang.org>:
What needs to be fixed here is the data, nothing else:
[#27753] [Bug #2637] unable to select for < 0.1s in windows — Roger Pack <redmine@...>
Bug #2637: unable to select for < 0.1s in windows
[#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.
[#27790] [Feature #2643] test/unit redefinition check of test_* method — Yusuke Endoh <redmine@...>
Feature #2643: test/unit redefinition check of test_* method
[#27791] [Bug #2644] memory over-allocation with regexp — Greg Hazel <redmine@...>
Bug #2644: memory over-allocation with regexp
Issue #2644 has been updated by Greg Hazel.
[#27794] [Bug #2647] Lack of testing for String#split — Hugh Sasse <redmine@...>
Bug #2647: Lack of testing for String#split
[#27828] [Bug #2656] Inconsistent docs for Zlib. — Hugh Sasse <redmine@...>
Bug #2656: Inconsistent docs for Zlib. [ruby-core:27692]
[#27902] Ruby 1.8.7, rb_define_method and ArgumentError: wrong number of arguments (0 for 1) — Gerardo Santana Gez Garrido <gerardo.santana@...>
I have the following method defined in a C extension:
On 1/27/10 8:55 AM, "Gerardo Santana Gez Garrido"
On Wed, Jan 27, 2010 at 11:18 AM, Eero Saynatkari
[#27912] [Bug #2669] mkmf find_executable doesn't find .bat files — Roger Pack <redmine@...>
Bug #2669: mkmf find_executable doesn't find .bat files
Issue #2669 has been updated by Luis Lavena.
[#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,
On Jan 28, 2010, at 10:51 AM, Yusuke ENDOH wrote:
Hi jeg2,
On Jan 28, 2010, at 11:13 AM, James Edward Gray II wrote:
Hi,
On Jan 31, 2010, at 4:40 AM, Yusuke ENDOH wrote:
[#27961] RCR: allow {select, collect, map} to accept symbol argument — Roger Pack <rogerdpack2@...>
Background.
This reply registers the suggestion by Roger to the redmine.
[ruby-core:27761] Re: [Feature #2619] Proposed method: Process.fork_supported?
2010/1/23 Charles Oliver Nutter <headius@headius.com>:
> I'm also curious how this affects Windows behavior, since currently
> MRI stubs out many methods to return nil on Windows (like all of 'etc'
> library, for example). Should they raise NotImplementedError? Should
> they return false for respond_to?.
It may be good chance to change etc library.
Index: etc.c
===================================================================
--- etc.c (revision 26395)
+++ etc.c (working copy)
@@ -106,6 +106,7 @@ setup_passwd(struct passwd *pwd)
}
#endif
+#if defined(HAVE_GETPWENT)
/* Returns the /etc/passwd information for the user with specified integer
* user id (uid).
*
@@ -118,7 +119,6 @@ setup_passwd(struct passwd *pwd)
static VALUE
etc_getpwuid(int argc, VALUE *argv, VALUE obj)
{
-#if defined(HAVE_GETPWENT)
VALUE id;
rb_uid_t uid;
struct passwd *pwd;
@@ -133,11 +133,12 @@ etc_getpwuid(int argc, VALUE *argv, VALU
pwd = getpwuid(uid);
if (pwd == 0) rb_raise(rb_eArgError, "can't find user for %d", (int)uid);
return setup_passwd(pwd);
+}
#else
- return Qnil;
+#define etc_getpwuid rb_f_notimplement
#endif
-}
+#ifdef HAVE_GETPWENT
/* Returns the /etc/passwd information for the user with specified login name.
*
* The information is returned as a Struct::Passwd; see getpwent above for
@@ -149,17 +150,16 @@ etc_getpwuid(int argc, VALUE *argv, VALU
static VALUE
etc_getpwnam(VALUE obj, VALUE nam)
{
-#ifdef HAVE_GETPWENT
struct passwd *pwd;
SafeStringValue(nam);
pwd = getpwnam(RSTRING_PTR(nam));
if (pwd == 0) rb_raise(rb_eArgError, "can't find user for %s",
RSTRING_PTR(nam));
return setup_passwd(pwd);
+}
#else
- return Qnil;
+#define etc_getpwnam rb_f_notimplement
#endif
-}
#ifdef HAVE_GETPWENT
static int passwd_blocking = 0;
@@ -194,6 +194,7 @@ each_passwd(void)
}
#endif
+#ifdef HAVE_GETPWENT
/* Provides a convenient Ruby iterator which executes a block for each entry
* in the /etc/passwd file.
*
@@ -212,7 +213,6 @@ each_passwd(void)
static VALUE
etc_passwd(VALUE obj)
{
-#ifdef HAVE_GETPWENT
struct passwd *pw;
rb_secure(4);
@@ -222,10 +222,13 @@ etc_passwd(VALUE obj)
else if (pw = getpwent()) {
return setup_passwd(pw);
}
-#endif
return Qnil;
}
+#else
+#define etc_passwd rb_f_notimplement
+#endif
+#ifdef HAVE_GETPWENT
/* Iterates for each entry in the /etc/passwd file if a block is given.
* If no block is given, returns the enumerator.
*
@@ -247,37 +250,43 @@ etc_passwd(VALUE obj)
static VALUE
etc_each_passwd(VALUE obj)
{
-#ifdef HAVE_GETPWENT
RETURN_ENUMERATOR(obj, 0, 0);
each_passwd();
-#endif
return obj;
}
+#else
+#define etc_each_passwd rb_f_notimplement
+#endif
+#ifdef HAVE_GETPWENT
/* Resets the process of reading the /etc/passwd file, so that the next call
* to getpwent will return the first entry again.
*/
static VALUE
etc_setpwent(VALUE obj)
{
-#ifdef HAVE_GETPWENT
setpwent();
-#endif
return Qnil;
}
+#else
+#define etc_setpwent rb_f_notimplement
+#endif
+#ifdef HAVE_GETPWENT
/* Ends the process of scanning through the /etc/passwd file begun with
* getpwent, and closes the file.
*/
static VALUE
etc_endpwent(VALUE obj)
{
-#ifdef HAVE_GETPWENT
endpwent();
-#endif
return Qnil;
}
+#else
+#define etc_endpwent rb_f_notimplement
+#endif
+#ifdef HAVE_GETPWENT
/* Returns an entry from the /etc/passwd file. The first time it is called it
* opens the file and returns the first entry; each successive call returns
* the next entry, or nil if the end of the file has been reached.
@@ -307,15 +316,16 @@ etc_endpwent(VALUE obj)
static VALUE
etc_getpwent(VALUE obj)
{
-#ifdef HAVE_GETPWENT
struct passwd *pw;
if (pw = getpwent()) {
return setup_passwd(pw);
}
-#endif
return Qnil;
}
+#else
+#define etc_getpwent rb_f_notimplement
+#endif
#ifdef HAVE_GETGRENT
static VALUE
@@ -340,6 +350,7 @@ setup_group(struct group *grp)
}
#endif
+#ifdef HAVE_GETGRENT
/* Returns information about the group with specified integer group id (gid),
* as found in /etc/group.
*
@@ -353,7 +364,6 @@ setup_group(struct group *grp)
static VALUE
etc_getgrgid(int argc, VALUE *argv, VALUE obj)
{
-#ifdef HAVE_GETGRENT
VALUE id;
gid_t gid;
struct group *grp;
@@ -368,11 +378,12 @@ etc_getgrgid(int argc, VALUE *argv, VALU
grp = getgrgid(gid);
if (grp == 0) rb_raise(rb_eArgError, "can't find group for %d", (int)gid);
return setup_group(grp);
+}
#else
- return Qnil;
+#define etc_getgrgid rb_f_notimplement
#endif
-}
+#ifdef HAVE_GETGRENT
/* Returns information about the group with specified String name, as found
* in /etc/group.
*
@@ -386,7 +397,6 @@ etc_getgrgid(int argc, VALUE *argv, VALU
static VALUE
etc_getgrnam(VALUE obj, VALUE nam)
{
-#ifdef HAVE_GETGRENT
struct group *grp;
rb_secure(4);
@@ -394,10 +404,10 @@ etc_getgrnam(VALUE obj, VALUE nam)
grp = getgrnam(RSTRING_PTR(nam));
if (grp == 0) rb_raise(rb_eArgError, "can't find group for %s",
RSTRING_PTR(nam));
return setup_group(grp);
+}
#else
- return Qnil;
+#define etc_getgrnam rb_f_notimplement
#endif
-}
#ifdef HAVE_GETGRENT
static int group_blocking = 0;
@@ -432,6 +442,7 @@ each_group(void)
}
#endif
+#ifdef HAVE_GETGRENT
/* Provides a convenient Ruby iterator which executes a block for each entry
* in the /etc/group file.
*
@@ -450,7 +461,6 @@ each_group(void)
static VALUE
etc_group(VALUE obj)
{
-#ifdef HAVE_GETGRENT
struct group *grp;
rb_secure(4);
@@ -460,9 +470,11 @@ etc_group(VALUE obj)
else if (grp = getgrent()) {
return setup_group(grp);
}
-#endif
return Qnil;
}
+#else
+#define etc_group rb_f_notimplement
+#endif
#ifdef HAVE_GETGRENT
/* Iterates for each entry in the /etc/group file if a block is given.
@@ -490,32 +502,39 @@ etc_each_group(VALUE obj)
each_group();
return obj;
}
+#else
+#define etc_each_group rb_f_notimplement
#endif
+#ifdef HAVE_GETGRENT
/* Resets the process of reading the /etc/group file, so that the next call
* to getgrent will return the first entry again.
*/
static VALUE
etc_setgrent(VALUE obj)
{
-#ifdef HAVE_GETGRENT
setgrent();
-#endif
return Qnil;
}
+#else
+#define etc_setgrent rb_f_notimplement
+#endif
+#ifdef HAVE_GETGRENT
/* Ends the process of scanning through the /etc/group file begun by
* getgrent, and closes the file.
*/
static VALUE
etc_endgrent(VALUE obj)
{
-#ifdef HAVE_GETGRENT
endgrent();
-#endif
return Qnil;
}
+#else
+#define etc_endgrent rb_f_notimplement
+#endif
+#ifdef HAVE_GETGRENT
/* Returns an entry from the /etc/group file. The first time it is called it
* opens the file and returns the first entry; each successive call returns
* the next entry, or nil if the end of the file has been reached.
@@ -539,15 +558,16 @@ etc_endgrent(VALUE obj)
static VALUE
etc_getgrent(VALUE obj)
{
-#ifdef HAVE_GETGRENT
struct group *gr;
if (gr = getgrent()) {
return setup_group(gr);
}
-#endif
return Qnil;
}
+#else
+#define etc_getgrent rb_f_notimplement
+#endif
/* The etc module provides access to information from the /etc/passwd and
* /etc/group files on Linux and Unix systems.
@@ -614,6 +634,6 @@ Init_etc(void)
rb_define_const(mEtc, "Group", sGroup);
rb_extend_object(sGroup, rb_mEnumerable);
- rb_define_singleton_method(sGroup, "each", etc_each_group, 0);
#endif
+ rb_define_singleton_method(sGroup, "each", etc_each_group, 0);
}
--
Tanaka Akira