[#17002] strict prototype for c++ — Takaaki Tateishi <ttate@...>
立石です.
At Fri, 3 May 2002 02:59:36 +0900,
[#17017] 標準添付案 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
At Wed, 8 May 2002 19:50:17 +0900,
At Wed, 8 May 2002 22:45:06 +0900,
At Thu, 9 May 2002 00:47:46 +0900,
田中です。一応 blade は見てます。
堀之内です。
堀之内です。
At Tue, 14 May 2002 14:45:28 +0900,
[#17031] double acosh — WATANABE Hirofumi <eban@...>
わたなべです。
なかだです。
わたなべです。
まつもと ゆきひろです
わたなべです。
[#17037] here document2 つで __LINE__ がずれる — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#17053] socket in Win32 — nobu.nakada@...
なかだです。
[#17059] [PATCH] mswin32 configure — nobu.nakada@...
なかだです。
[#17060] rb_warn — Tadayoshi Funaba <tadf@...>
ふなばです。
[#17095] irb & jarh — Tanaka Akira <akr@...17n.org>
ふと、irb で jarh をいくつか試したのですが、うまく扱えないものがあるようです。
けいじゅ@日本ラショナルソフトウェアです.
In article <200205160811.RAA31441@ishitsuka.com>,
[#17112] [Cleanup] rb_thread_select() — nobu.nakada@...
なかだです。
[#17122] Array#bsearch — Beyond <beyond@...>
[#17128] Thread: deadlock trouble — nagai@...
永井@知能.九工大です.
At Fri, 17 May 2002 14:47:53 +0900,
[#17134] argv[0] — Tanaka Akira <akr@...17n.org>
ふと ruby インタプリタの C における argv[0] を知りたくなったんですが、
まつもと ゆきひろです
In article <1021723554.017958.5113.nullmailer@picachu.netlab.jp>,
In article <1021723554.017958.5113.nullmailer@picachu.netlab.jp>,
[#17144] Re: msvcrt — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
なかだです。
[#17158] else without rescue — nobu.nakada@...
なかだです。
[#17179] コマンドラインオプションの順序制約 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
[#17194] [RCR] Array#rotate{,!} — nobu.nakada@...
なかだです。
まつもと ゆきひろです
[#17208] Etc — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#17223] race condition on Queue#pop? — Tanaka Akira <akr@...17n.org>
なんとなく thread.rb を眺めていて、Queue#pop に race condition がある
なかだです。
まつもと ゆきひろです
なかだです。
[#17228] Re: [ruby-list:35305] Re: ((1.2)..(3.4)).to_a — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
たけ(tk)です。
まつもと ゆきひろです
たけ(tk)です。
まつもと ゆきひろです
あづみです。
[#17238] Re: [ruby-list:35304] Re: ((1.2)..(3.4)).to_a — siena@... (Siena.)
Siena. です。
[ruby-dev:17006] Re: strict prototype for c++
At Fri, 3 May 2002 05:46:00 +0900,
Takaaki Tateishi wrote:
> At Fri, 3 May 2002 04:43:10 +0900,
> > 他の関数と同様に
> >
> > void rb_gc_mark_maybe _((VALUE));
> > void rb_gc_mark _((VALUE));
> >
> > でいいんじゃないでしょうか。1.7 でもそうなっているようです。
>
> はい,もちろんその方がよいと思います.以前にも同様の議論があり,
> [ruby-dev:13972] を受けての意見です.
そうかあ。確かにバグではないけど、各種プラットフォーム・処理系
対応の一環と考えれば、安定版にも適用していいと思いますけどね。
(前回はあれで十分だった)
> rubyをコンパイルするときにはrb_gc_mark()を使って,拡張ライブラリ
> で使う(C++で使われる)場合にはrb_gc_mark(VALUE)を使えばいいのでは
> ないかと思ったためです.
> これならとりあえずeval.c,gc.cなどに手を加えなくて済むと思います.
「C++だから」という条件はどうにも気持ちが悪いですね。 ;)
さっと作業したところ、添付のように30行くらい直せばwarningは抑制
できました。もしこれでよければ、(まつもとさんにお手間は取らせず)
私が commit しますが、どうでしょうか?
--
/
/__ __ Akinori.org / MUSHA.org
/ ) ) ) ) / FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp
"Somewhere out of a memory.. of lighted streets on quiet nights.."
Index: intern.h
===================================================================
RCS file: /src/ruby/intern.h,v
retrieving revision 1.35.2.19
diff -u -r1.35.2.19 intern.h
--- intern.h 2002/03/07 11:19:28 1.35.2.19
+++ intern.h 2002/05/03 18:03:49
@@ -189,8 +189,8 @@
void rb_gc_mark_locations _((VALUE*, VALUE*));
void rb_mark_tbl _((struct st_table*));
void rb_mark_hash _((struct st_table*));
-void rb_gc_mark_maybe();
-void rb_gc_mark();
+void rb_gc_mark_maybe _((VALUE));
+void rb_gc_mark _((VALUE));
void rb_gc_force_recycle _((VALUE));
void rb_gc _((void));
char *rb_source_filename _((const char *));
Index: eval.c
===================================================================
RCS file: /src/ruby/eval.c,v
retrieving revision 1.137.2.111
diff -u -r1.137.2.111 eval.c
--- eval.c 2002/05/01 09:37:57 1.137.2.111
+++ eval.c 2002/05/03 18:03:50
@@ -5849,12 +5849,12 @@
link = end_procs;
while (link) {
- rb_gc_mark(link->data);
+ rb_gc_mark((VALUE)link->data);
link = link->next;
}
link = ephemeral_end_procs;
while (link) {
- rb_gc_mark(link->data);
+ rb_gc_mark((VALUE)link->data);
link = link->next;
}
/* static global mark */
@@ -6081,14 +6081,14 @@
{
while (data) {
rb_gc_mark_frame(&data->frame);
- rb_gc_mark(data->scope);
- rb_gc_mark(data->var);
- rb_gc_mark(data->body);
- rb_gc_mark(data->self);
- rb_gc_mark(data->dyna_vars);
- rb_gc_mark(data->klass);
- rb_gc_mark(data->tag);
- rb_gc_mark(data->wrapper);
+ rb_gc_mark((VALUE)data->scope);
+ rb_gc_mark((VALUE)data->var);
+ rb_gc_mark((VALUE)data->body);
+ rb_gc_mark((VALUE)data->self);
+ rb_gc_mark((VALUE)data->dyna_vars);
+ rb_gc_mark((VALUE)data->klass);
+ rb_gc_mark((VALUE)data->tag);
+ rb_gc_mark((VALUE)data->wrapper);
data = data->prev;
}
}
@@ -6611,7 +6611,7 @@
rb_gc_mark(data->oklass);
rb_gc_mark(data->klass);
rb_gc_mark(data->recv);
- rb_gc_mark(data->body);
+ rb_gc_mark((VALUE)data->body);
}
static VALUE
@@ -7147,10 +7147,10 @@
rb_gc_mark(th->klass);
rb_gc_mark(th->wrapper);
- rb_gc_mark(th->cref);
+ rb_gc_mark((VALUE)th->cref);
- rb_gc_mark(th->scope);
- rb_gc_mark(th->dyna_vars);
+ rb_gc_mark((VALUE)th->scope);
+ rb_gc_mark((VALUE)th->dyna_vars);
rb_gc_mark(th->errinfo);
rb_gc_mark(th->last_line);
rb_gc_mark(th->last_match);
Index: gc.c
===================================================================
RCS file: /src/ruby/gc.c,v
retrieving revision 1.48.2.22
diff -u -r1.48.2.22 gc.c
--- gc.c 2002/03/07 11:19:28 1.48.2.22
+++ gc.c 2002/05/03 18:03:50
@@ -476,7 +476,7 @@
void
rb_gc_mark_maybe(obj)
- void *obj;
+ VALUE obj;
{
if (is_pointer_to_heap(obj)) {
rb_gc_mark(obj);
@@ -485,7 +485,7 @@
void
rb_gc_mark(ptr)
- void *ptr;
+ VALUE ptr;
{
register RVALUE *obj = RANY(ptr);
@@ -517,7 +517,7 @@
case NODE_MASGN:
case NODE_RESCUE:
case NODE_RESBODY:
- rb_gc_mark(obj->as.node.u2.node);
+ rb_gc_mark((VALUE)obj->as.node.u2.node);
/* fall through */
case NODE_BLOCK: /* 1,3 */
case NODE_ARRAY:
@@ -531,7 +531,7 @@
case NODE_CALL:
case NODE_DEFS:
case NODE_OP_ASGN1:
- rb_gc_mark(obj->as.node.u1.node);
+ rb_gc_mark((VALUE)obj->as.node.u1.node);
/* fall through */
case NODE_SUPER: /* 3 */
case NODE_FCALL:
@@ -554,7 +554,7 @@
case NODE_MATCH3:
case NODE_OP_ASGN_OR:
case NODE_OP_ASGN_AND:
- rb_gc_mark(obj->as.node.u1.node);
+ rb_gc_mark((VALUE)obj->as.node.u1.node);
/* fall through */
case NODE_METHOD: /* 2 */
case NODE_NOT:
@@ -590,7 +590,7 @@
case NODE_SCOPE: /* 2,3 */
case NODE_CLASS:
case NODE_BLOCK_PASS:
- rb_gc_mark(obj->as.node.u3.node);
+ rb_gc_mark((VALUE)obj->as.node.u3.node);
obj = RANY(obj->as.node.u2.node);
goto Top;
@@ -628,10 +628,10 @@
default:
if (is_pointer_to_heap(obj->as.node.u1.node)) {
- rb_gc_mark(obj->as.node.u1.node);
+ rb_gc_mark((VALUE)obj->as.node.u1.node);
}
if (is_pointer_to_heap(obj->as.node.u2.node)) {
- rb_gc_mark(obj->as.node.u2.node);
+ rb_gc_mark((VALUE)obj->as.node.u2.node);
}
if (is_pointer_to_heap(obj->as.node.u3.node)) {
obj = RANY(obj->as.node.u3.node);
@@ -745,7 +745,7 @@
p = heaps[i]; pend = p + heaps_limits[i];
while (p < pend) {
if (!(p->as.basic.flags&FL_MARK) && BUILTIN_TYPE(p) == T_NODE)
- rb_gc_mark(p);
+ rb_gc_mark((VALUE)p);
p++;
}
}
@@ -1041,8 +1041,8 @@
}
}
rb_gc_mark(ruby_class);
- rb_gc_mark(ruby_scope);
- rb_gc_mark(ruby_dyna_vars);
+ rb_gc_mark((VALUE)ruby_scope);
+ rb_gc_mark((VALUE)ruby_dyna_vars);
if (finalizer_table) {
rb_mark_tbl(finalizer_table);
}
Index: variable.c
===================================================================
RCS file: /src/ruby/variable.c,v
retrieving revision 1.29.2.18
diff -u -r1.29.2.18 variable.c
--- variable.c 2002/05/01 09:37:59 1.29.2.18
+++ variable.c 2002/05/03 18:03:50
@@ -388,7 +388,7 @@
val_marker(data)
void *data;
{
- if (data) rb_gc_mark_maybe(data);
+ if (data) rb_gc_mark_maybe((VALUE)data);
}
static VALUE
@@ -411,7 +411,7 @@
static void
var_marker(var)
- VALUE **var;
+ VALUE *var;
{
if (var) rb_gc_mark_maybe(*var);
}
@@ -435,7 +435,7 @@
(*entry->marker)(entry->data);
trace = entry->trace;
while (trace) {
- if (trace->data) rb_gc_mark_maybe(trace->data);
+ if (trace->data) rb_gc_mark_maybe((VALUE)trace->data);
trace = trace->next;
}
return ST_CONTINUE;