[#28217] ANDCALL operator (Re: [ruby-list:41768] Re: nilの扱い) — nobuyoshi nakada <nobuyoshi.nakada@...>
なかだです。
6 messages
2006/01/13
[#28223] FYI: Fix bug: FileUtils.mv() does not unlink source file when moving over filesystem boundaries — 植田裕之 <ueda@...>
植田と申します。
7 messages
2006/01/17
[#28227] Re: FYI: Fix bug: FileUtils.mv() does not unlink source file when moving over filesystem boundaries
— akira yamada / やまだあきら <akira@...>
2006/01/17
植田裕之 wrote:
[#28230] bcc32 memory manager — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
15 messages
2006/01/18
[#28231] Re: bcc32 memory manager
— "U.Nakamura" <usa@...>
2006/01/18
こんにちは、なかむら(う)です。
[#28232] Re: bcc32 memory manager
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/01/18
山本です。
[#28358] Re: bcc32 memory manager
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/02/21
山本です。
[#28376] Re: bcc32 memory manager
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/02/23
山本です。
[#28233] 1.8.5 release plan? — "URABE Shyouhei aka. mput" <root@...>
卜部です。
9 messages
2006/01/18
[#28240] String クラス insert メソッド — 北浦 友規 <uv2t-ktur@...>
String クラスの insert メソッドは、
6 messages
2006/01/19
[#28243] FUNCTION_CALL_MAY_RETURN_TWICE — Hajimu UMEMOTO <ume@...>
梅本です。
18 messages
2006/01/20
[#28247] Re: FUNCTION_CALL_MAY_RETURN_TWICE
— Tanaka Akira <akr@...17n.org>
2006/01/20
In article <ygezmlrqybi.wl%ume@mahoroba.org>,
[#28253] Re: FUNCTION_CALL_MAY_RETURN_TWICE
— Tanaka Akira <akr@...17n.org>
2006/01/21
In article <ygeoe26gnuj.wl%ume@mahoroba.org>,
[#28254] Re: FUNCTION_CALL_MAY_RETURN_TWICE
— Hajimu UMEMOTO <ume@...>
2006/01/21
梅本です。
[#28255] Re: FUNCTION_CALL_MAY_RETURN_TWICE
— Tanaka Akira <akr@...17n.org>
2006/01/21
In article <ygelkxagkse.wl%ume@mahoroba.org>,
[#28261] Re: FUNCTION_CALL_MAY_RETURN_TWICE
— Hajimu UMEMOTO <ume@...>
2006/01/21
梅本です。
[#28270] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
17 messages
2006/01/23
[#28271] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/01/23
山本です。
[#28272] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes
— WATANABE Hirofumi <eban@...>
2006/01/23
わたなべです。
[#28273] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/01/23
山本です。
[#28274] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/01/24
山本です。
[#28275] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes
— "U.Nakamura" <usa@...>
2006/01/24
こんにちは、なかむら(う)です。
[#28276] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/01/24
山本です。
[#28277] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/01/24
山本です。
[#28278] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/01/24
山本です。
[#28279] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/01/24
山本です。
[#28281] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/01/25
[#28282] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes
— Yukihiro Matsumoto <matz@...>
2006/01/25
まつもと ゆきひろです
[#28283] Re: [PATCH] solaris 10 isinf and ruby_setenv fixes
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/01/26
山本です。
[#28286] SEGV with zlib — Tanaka Akira <akr@...17n.org>
最近、Data オブジェクトの free 関数が気になっているのですが、
24 messages
2006/01/30
[#28303] Re: SEGV with zlib
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/02/06
山本です。
[#28304] Re: SEGV with zlib
— Yukihiro Matsumoto <matz@...>
2006/02/06
まつもと ゆきひろです
[#28305] Re: SEGV with zlib
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/02/06
山本です。
[#28306] Re: SEGV with zlib
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/02/06
山本です。
[#28307] Re: SEGV with zlib
— Tietew <tietew-ml-ruby-dev@...>
2006/02/06
[#28308] Re: SEGV with zlib
— Yukihiro Matsumoto <matz@...>
2006/02/06
まつもとゆきひろです。
[#28309] Re: SEGV with zlib
— Yukihiro Matsumoto <matz@...>
2006/02/07
まつもと ゆきひろです
[#28310] Re: SEGV with zlib
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2006/02/07
山本です。
[#28312] Re: SEGV with zlib
— Yukihiro Matsumoto <matz@...>
2006/02/07
まつもと ゆきひろです
[#28316] Re: SEGV with zlib
— Tanaka Akira <akr@...17n.org>
2006/02/07
In article <34e00f690602060546l1ef5b22em52589f23240a8e43@mail.gmail.com>,
[#28317] Re: SEGV with zlib
— Yukihiro Matsumoto <matz@...>
2006/02/08
まつもと ゆきひろです
[#28318] Re: SEGV with zlib
— Tanaka Akira <akr@...17n.org>
2006/02/08
In article <1139361872.676364.14519.nullmailer@x31.priv.netlab.jp>,
[ruby-dev:28211] GC.stress
From:
Tanaka Akira <akr@...17n.org>
Date:
2006-01-09 16:19:00 UTC
List:
ruby-dev #28211
またも役に立ってしまい、やはり最初からついているべきだという
思いを新たにしたので GC.stress を提案します。
どうでしょう?
Index: gc.c
===================================================================
RCS file: /src/ruby/gc.c,v
retrieving revision 1.227
diff -u -p -r1.227 gc.c
--- gc.c 30 Dec 2005 09:15:14 -0000 1.227
+++ gc.c 9 Jan 2006 16:16:40 -0000
@@ -88,11 +88,40 @@ rb_memerror(void)
rb_exc_raise(nomem_error);
}
-#ifdef RUBY_GC_DEBUG
-int always_gc = 0;
-#else
-# define always_gc 0
-#endif
+int gc_stress = 0;
+
+/*
+ * call-seq:
+ * GC.stress => true or false
+ *
+ * returns current status of GC stress mode.
+ */
+
+static VALUE
+gc_stress_get(VALUE self)
+{
+ return gc_stress ? Qtrue : Qfalse;
+}
+
+/*
+ * call-seq:
+ * GC.stress = bool => bool
+ *
+ * updates GC stress mode.
+ *
+ * When GC.stress = true, GC is invoked for all GC opportunity:
+ * all memory and object allocation.
+ *
+ * Since it makes Ruby very slow, it is only for debugging.
+ */
+
+static VALUE
+gc_stress_set(VALUE self, VALUE bool)
+{
+ rb_secure(2);
+ gc_stress = RTEST(bool);
+ return bool;
+}
void *
ruby_xmalloc(size_t size)
@@ -105,7 +134,7 @@ ruby_xmalloc(size_t size)
if (size == 0) size = 1;
malloc_increase += size;
- if (always_gc || malloc_increase > malloc_limit) {
+ if (gc_stress || malloc_increase > malloc_limit) {
garbage_collect();
}
RUBY_CRITICAL(mem = malloc(size));
@@ -153,7 +182,7 @@ ruby_xrealloc(void *ptr, size_t size)
if (!ptr) return ruby_xmalloc(size);
if (size == 0) size = 1;
malloc_increase += size;
- if (always_gc) garbage_collect();
+ if (gc_stress) garbage_collect();
RUBY_CRITICAL(mem = realloc(ptr, size));
if (!mem) {
if (garbage_collect()) {
@@ -383,7 +412,7 @@ rb_newobj(void)
{
VALUE obj;
- if ((always_gc || !freelist) && !garbage_collect())
+ if ((gc_stress || !freelist) && !garbage_collect())
rb_memerror();
obj = (VALUE)freelist;
@@ -1915,6 +1944,8 @@ Init_GC(void)
rb_define_singleton_method(rb_mGC, "start", rb_gc_start, 0);
rb_define_singleton_method(rb_mGC, "enable", rb_gc_enable, 0);
rb_define_singleton_method(rb_mGC, "disable", rb_gc_disable, 0);
+ rb_define_singleton_method(rb_mGC, "stress", gc_stress_get, 0);
+ rb_define_singleton_method(rb_mGC, "stress=", gc_stress_set, 1);
rb_define_method(rb_mGC, "garbage_collect", rb_gc_start, 0);
rb_mObSpace = rb_define_module("ObjectSpace");
Index: main.c
===================================================================
RCS file: /src/ruby/main.c,v
retrieving revision 1.17
diff -u -p -r1.17 main.c
--- main.c 27 Dec 2005 05:40:04 -0000 1.17
+++ main.c 9 Jan 2006 16:16:40 -0000
@@ -25,9 +25,9 @@ static void objcdummyfunction( void ) {
int
main(int argc, char **argv, char **envp)
{
-#ifdef RUBY_GC_DEBUG
- RUBY_EXTERN int always_gc;
- always_gc = getenv("RUBY_ALWAYS_GC") != NULL;
+#ifdef RUBY_GC_STRESS
+ RUBY_EXTERN int gc_stress;
+ gc_stress = getenv("RUBY_GC_STRESS") != NULL;
#endif
#ifdef _WIN32
NtInitialize(&argc, &argv);
Index: signal.c
===================================================================
RCS file: /src/ruby/signal.c,v
retrieving revision 1.71
diff -u -p -r1.71 signal.c
--- signal.c 12 Dec 2005 00:35:08 -0000 1.71
+++ signal.c 9 Jan 2006 16:16:40 -0000
@@ -944,12 +944,12 @@ Init_signal(void)
#endif
#ifdef SIGBUS
-# ifndef RUBY_GC_DEBUG
+# ifndef RUBY_GC_STRESS
install_sighandler(SIGBUS, sigbus);
# endif
#endif
#ifdef SIGSEGV
-# ifndef RUBY_GC_DEBUG
+# ifndef RUBY_GC_STRESS
install_sighandler(SIGSEGV, sigsegv);
# endif
#endif
--
[田中 哲][たなか あきら][Tanaka Akira]