[#23657] [Bug #1550] String#lstrip! raises RuntimeError on Frozen String Despite Making No Changes — Run Paint Run Run <redmine@...>
Bug #1550: String#lstrip! raises RuntimeError on Frozen String Despite Making No Changes
Hi,
On Jun 1, 2009, at 5:07 PM, Yukihiro Matsumoto wrote:
Hi,
Issue #1550 has been updated by Yukihiro Matsumoto.
This change seems to break the build on my machine:
[#23683] [Bug #1560] multi core operations are slower on trunk (possible regression) — David Cuadrado <redmine@...>
Bug #1560: multi core operations are slower on trunk (possible regression)
[#23700] Standard Ruby bytecode — Ioannis Nousias <s0238762@...>
I came across this post:
[#23717] [Bug #1573] $0 behaves unexpectedly — Morris Brodersen <redmine@...>
Bug #1573: $0 behaves unexpectedly
[#23727] [Bug #1580] TestIOScanF failure in windows — Roger Pack <redmine@...>
Bug #1580: TestIOScanF failure in windows
[#23729] [Bug #1583] Time + String no Longer Raises TypeError? — Run Paint Run Run <redmine@...>
Bug #1583: Time + String no Longer Raises TypeError?
Issue #1583 has been updated by Akira Tanaka.
Hi,
Excerpts from Yukihiro Matsumoto's message of Sun Jun 07 17:07:06 +0300 2009:
[#23738] Ducktyping interface — Yehuda Katz <wycats@...>
Matz,
[#23753] [Bug #1587] Problem with string sharing — Quet Zal <redmine@...>
Bug #1587: Problem with string sharing
[#23770] [Bug #1595] rake unusable on windows install — Robert Gonzalez <redmine@...>
Bug #1595: rake unusable on windows install
[#23815] inheriting socket in child process on native Windows — "Knutaf" <knutaf@...>
Hello,
> This works on Linux by persisting socket.fileno from the parent process a=
Well, I'm already not exactly using pure Ruby, since I'm wrapping
> Besides that, I think using WSADuplicateSocket will suffer from the
I tried that with both the HANDLE value and with an fd value that I
> I tried that with both the HANDLE value and with an fd value that I
[#23842] request for updated ri/rdoc on 1.8.7 branch — Roger Pack <rogerdpack@...>
would it be possible to get a newer version of ri/rdoc installed on
[#23845] [Bug #1627] Kernel.require Should Canonicalise Paths — Run Paint Run Run <redmine@...>
Bug #1627: Kernel.require Should Canonicalise Paths
[#23849] [Bug #1629] [Segfault] z = Zlib::GzipReader.new segfaults — Markus Fischer <redmine@...>
Bug #1629: [Segfault] z = Zlib::GzipReader.new segfaults
[#23850] instance_eval no longer yielding self in ruby 1.9 — apeiros <apeiros@...>
Hi folks
Hi,
Am 16.06.2009 um 22:12 schrieb Yusuke ENDOH:
Am 17.06.2009 um 00:01 schrieb Florian Gilcher:
[#23869] [Bug #1640] [PATCH] Documentation for the Rational Class — Run Paint Run Run <redmine@...>
Bug #1640: [PATCH] Documentation for the Rational Class
[#23878] trouble registering and logging in to the issue tracking system — Knutaf H <knutaf@...>
Hi,
[#23883] Merging recent Ruby threading improvements — Joe Damato <ice799@...>
Hi ruby-core and CC'ed friends -
[#23934] [Bug #1661] RegExp mismatch — Adam Carheden <redmine@...>
Bug #1661: RegExp mismatch
[#23950] [Bug #1668] Error installing ruby gems for 1.9.1 on windows vista — Kristian Mandrup <redmine@...>
Bug #1668: Error installing ruby gems for 1.9.1 on windows vista
[#23977] [ANN] meeting log of RubyDeveloperKaigi20090622 — "Yugui (Yuki Sonoda)" <yugui@...>
Hi,
Thanks for the update. :-)
On Jun 23, 2009, at 4:23 AM, Run Paint Run Run wrote:
James Gray wrote:
Sorry for late response,
On Tue, Jul 7, 2009 at 12:12 AM, NARUSE, Yui<naruse@airemix.jp> wrote:
On Mon, Jul 6, 2009 at 10:18 PM, Luis Lavena<luislavena@gmail.com> wrote:
Charles Oliver Nutter wrote:
I agree pretty much across the board. I was actually hoping that
Charles Oliver Nutter wrote:
2009/6/23 Yugui (Yuki Sonoda) <yugui@yugui.jp>
2009/6/23 Yugui (Yuki Sonoda) <yugui@yugui.jp>:
On Wed, Jul 1, 2009 at 3:20 PM, Charles Oliver
[#23986] possible bug with windows `` they don't set $? — Roger Pack <rogerdpack@...>
Looks like a bug? [1.8 or 1.9]
[#23988] [Bug #1680] URI.encode does not encode '+' (by default) — Xuân Baldauf <redmine@...>
Bug #1680: URI.encode does not encode '+' (by default)
[#23997] [Bug #1681] Integer#chr Should Infer Encoding of Given Codepoint — Run Paint Run Run <redmine@...>
Bug #1681: Integer#chr Should Infer Encoding of Given Codepoint
Hi,
>> This seems needlessly verbose given that Ruby already knows
[#24007] [Bug #1684] ruby/rubyw.rc still say 1.9.1 — Roger Pack <redmine@...>
Bug #1684: ruby/rubyw.rc still say 1.9.1
[#24010] [Bug #1685] Some windows unicode path issues remain — B Kelly <redmine@...>
Bug #1685: Some windows unicode path issues remain
Issue #1685 has been updated by B Kelly.
Issue #1685 has been updated by Yuki Sonoda.
Yuki Sonoda wrote:
Hi,
Hello,
U.Nakamura wrote:
Hello,
U.Nakamura wrote:
Hello,
Hi,
Hello,
Hi,
Hello,
[#24025] [Bug #1688] Zlib raises a buffer error when inflating some kinds of data — Luis Lavena <redmine@...>
Bug #1688: Zlib raises a buffer error when inflating some kinds of data
Issue #1688 has been updated by Roger Pack.
On Thu, Jun 25, 2009 at 10:28 AM, Roger Pack<redmine@ruby-lang.org> wrote:
[#24032] [Bug #1690] backticks don't set $? in windows — Roger Pack <redmine@...>
Bug #1690: backticks don't set $? in windows
[#24033] [Bug #1691] ruby --help doesn't display the "skip rubygems" option — Roger Pack <redmine@...>
Bug #1691: ruby --help doesn't display the "skip rubygems" option
[#24050] 1.9.2 Should Pass RubySpec Before Release — Run Paint Run Run <runrun@...>
I humbly suggest that a prerequisite of 1.9.2 being released is that
[#24058] [Bug #1696] http downloads are unuseably slow — Steven Hartland <redmine@...>
Bug #1696: http downloads are unuseably slow
Issue #1696 has been updated by Steven Hartland.
Net/HTTP in 1.9.2dev is already working as you described with two
In article <4a464441bf3f7_13bd3907d016634@redmine.ruby-lang.org>,
Excerpts from Tanaka Akira's message of Mon Jun 29 21:17:58 +0300 2009:
On Jun 29, 2009, at 1:38 PM, Eero Saynatkari wrote:
[#24063] [Feature #1697] Object#<=> — Marc-Andre Lafortune <redmine@...>
Feature #1697: Object#<=>
Issue #1697 has been updated by Rick DeNatale.
Excerpts from Luiz Angelo Daros de Luca's message of Sun Jun 28 16:22:45 +0300 2009:
[#24069] [ANN] RubyInstaller: Building installers story and news — Luis Lavena <luislavena@...>
Hey guys,
> We have preview1!!!
[#24099] [Bug #1708] require 'complex' Causes Unexpected Behaviour — Run Paint Run Run <redmine@...>
Bug #1708: require 'complex' Causes Unexpected Behaviour
[ruby-core:23933] Stack size detection algorithm
Hi! When debugging the stack overflow bug in ruby 1.8.7 on FreeBSD, I notices t= hat its stack detection algoritm doesn't work properly in pthreads case, as it still uses the value returned by getrlimit as the stack maximum size. However, this value would not work on FreeBSD and probably other OSes, as in pthreads case the main thread's stack size is much lower than the stack size limit for the whole process. I attached the patch that adds an additional check for stack size in pthread case via pthread_attr_getstacksize if pthreads is enabled. If the value returned by pthread functions is lower than stack size limit, this value will be used instead. I also moved these checks into the separate function to eliminate code duplication. The other modification I made adds proactive check for stack size available. Currently, ruby reserves up to 1/5 of available stack size for safeguard purposes, and performs stack limit checks only each 256th call of rb_call0. When the available stack size is too small, 1/5 of it may not be enough for next 256 calls to rb_call0 to complete for ruby to detect overflow. The code I added measures how much of stack size was consumed since the previous check and if the stack size available is lower than this value the exception will be generated. I attached patched to configure.in and gc.c to the mail. --=20 Stanislav Sedov ST4096-RIPE
Attachments (2)
--- configure.in.orig 2009-01-19 12:25:38.000000000 +0300
+++ configure.in 2009-06-19 15:35:22.000000000 +0400
@@ -1037,6 +1037,14 @@
AC_DEFINE(HAVE_NANOSLEEP)
fi
fi
+ AC_MSG_CHECKING([for pthread_np.h])
+ AC_TRY_COMPILE([
+ #include <pthread.h>
+ #include <pthread_np.h>],
+ [(void)0;],
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_PTHREAD_NP_H),
+ AC_MSG_RESULT(no))
fi
if test x"$ac_cv_header_ucontext_h" = xyes; then
if test x"$rb_with_pthread" = xyes; then
--- gc.c.orig 2009-03-27 13:25:23.000000000 +0300
+++ gc.c 2009-06-19 16:26:54.000000000 +0400
@@ -30,6 +30,10 @@
#include <sys/resource.h>
#endif
+#if defined(HAVE_PTHREAD_NP_H)
+#include <pthread_np.h>
+#endif
+
#if defined _WIN32 || defined __CYGWIN__
#include <windows.h>
#endif
@@ -75,6 +79,7 @@
static void run_final();
static VALUE nomem_error;
static void garbage_collect();
+static void set_stack_limit();
int ruby_gc_stress = 0;
@@ -534,9 +539,14 @@
#define GC_WATER_MARK 512
-#define CHECK_STACK(ret) do {\
+#define CHECK_STACK(ret, prev) do {\
SET_STACK_END;\
- (ret) = (STACK_LENGTH > STACK_LEVEL_MAX + GC_WATER_MARK);\
+ ssize_t avail = STACK_LEVEL_MAX + GC_WATER_MARK - STACK_LENGTH;\
+ if (avail <= 0 || (prev != -1 && (signed)(STACK_LENGTH - prev) > avail))\
+ (ret) = 1;\
+ else\
+ (ret) = 0;\
+ (prev) = STACK_LENGTH;\
} while (0)
size_t
@@ -552,8 +562,9 @@
ruby_stack_check()
{
int ret;
+ static size_t prev = -1;
- CHECK_STACK(ret);
+ CHECK_STACK(ret, prev);
return ret;
}
@@ -1599,18 +1610,50 @@
}
rb_gc_stack_start = addr;
#endif
+ set_stack_limit();
+}
+
+static void set_stack_limit()
+{
+ size_t stacksize = 0;
+
#ifdef HAVE_GETRLIMIT
{
struct rlimit rlim;
- if (getrlimit(RLIMIT_STACK, &rlim) == 0) {
- unsigned int space = rlim.rlim_cur/5;
+ if (getrlimit(RLIMIT_STACK, &rlim) == 0)
+ stacksize = rlim.rlim_cur;
+ }
+#elif defined _WIN32
+ {
+ MEMORY_BASIC_INFORMATION mi;
+
+ if (VirtualQuery(&mi, &mi, sizeof(mi))) {
+ stacksize = (char *)mi.BaseAddress - (char *)mi.AllocationBase;
+ }
+ }
+#endif
+#if defined(_THREAD_SAFE) && defined(HAVE_PTHREAD_NP_H)
+ {
+ pthread_attr_t attr;
+ size_t size;
- if (space > 1024*1024) space = 1024*1024;
- STACK_LEVEL_MAX = (rlim.rlim_cur - space) / sizeof(VALUE);
+ pthread_attr_init(&attr);
+ if (pthread_attr_get_np(pthread_self(), &attr) == 0) {
+ pthread_attr_getstacksize(&attr, &size);
+ if (stacksize == 0 || size < stacksize)
+ stacksize = size;
}
+ pthread_attr_destroy(&attr);
}
#endif
+ if (stacksize) {
+ unsigned int space = stacksize / 5;
+
+ if (space > 1024*1024)
+ space = 1024*1024;
+ STACK_LEVEL_MAX = (stacksize - space) / sizeof(VALUE);
+ }
}
void ruby_init_stack(VALUE *addr
@@ -1631,31 +1674,7 @@
rb_gc_register_stack_start = (VALUE*)bsp;
}
#endif
-#ifdef HAVE_GETRLIMIT
- {
- struct rlimit rlim;
-
- if (getrlimit(RLIMIT_STACK, &rlim) == 0) {
- unsigned int space = rlim.rlim_cur/5;
-
- if (space > 1024*1024) space = 1024*1024;
- STACK_LEVEL_MAX = (rlim.rlim_cur - space) / sizeof(VALUE);
- }
- }
-#elif defined _WIN32
- {
- MEMORY_BASIC_INFORMATION mi;
- DWORD size;
- DWORD space;
-
- if (VirtualQuery(&mi, &mi, sizeof(mi))) {
- size = (char *)mi.BaseAddress - (char *)mi.AllocationBase;
- space = size / 5;
- if (space > 1024*1024) space = 1024*1024;
- STACK_LEVEL_MAX = (size - space) / sizeof(VALUE);
- }
- }
-#endif
+ set_stack_limit();
}
/*