[#36647] test/pathname/test_pathname.rb — TAKANO Mitsuhiro <takano32@...>
高野です。
[#36649] Embedding struct RArray — "Yugui (Yuki Sonoda)" <yugui@...>
-----BEGIN PGP SIGNED MESSAGE-----
[#36672] [Bug #616] instance_eval and Module#to_s — Shyouhei Urabe <redmine@...>
Bug #616: instance_eval and Module#to_s
[#36678] test_process.rb — TAKANO Mitsuhiro <takano32@...>
高野です。
まつもと ゆきひろです
高野です。
なかだです。
[#36685] [Bug #621] When to call Class#inherited — Shyouhei Urabe <redmine@...>
Bug #621: When to call Class#inherited
[#36691] [Bug:1.9] ArgumentError on "%c" % 0x80 — Tanaka Akira <akr@...>
"%c" % 0x80 が例外になります。
[#36697] [Bug:1.9] rb_io_fread does not work — "Yusuke ENDOH" <mame@...>
遠藤です。
[#36704] Assertion failed in array.c on mswin32 Ruby (trunk) — Masaki Suketa <masaki.suketa@...>
助田です。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
[#36705] ruby1.9 on hppa build problem — Hideki Yamane <henrich@...>
こんにちは、
[#36706] Ruby on Vista — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#36716] [Bug #644] compile error on win32ole with VC++6 — Usaku NAKAMURA <redmine@...>
Bug #644: compile error on win32ole with VC++6
[#36739] r19786 (trunk): * lib/delegate.rb (Delegator): simplified and restored 1.8 — Fujioka <fuj@...>
藤岡です。
[#36750] [Bug #650] Marshal.load raises RegexpError — Shyouhei Urabe <redmine@...>
Bug #650: Marshal.load raises RegexpError
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
Yukihiro Matsumoto さんは書きました:
まつもと ゆきひろです
もとの正規表現にバグがあるのは認めますが、それに巻き込まれてでかいPStore
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
けいじゅ@いしつかです.
卜部です。
けいじゅ@いしつかです.
卜部です。
[#36753] [Bug #651] Regexp.new returns strange regexp object — Shyouhei Urabe <redmine@...>
Bug #651: Regexp.new returns strange regexp object
まつもと ゆきひろです
[#36764] Re: [ruby-cvs:27036] Ruby:r19818 (trunk): * transcode.c (str_transcode0): String#encode without argument now — Martin Duerst <duerst@...>
まつもとさん、こんばんは。
まつもと ゆきひろです
まつもとさん、こんにちは。
In article <6.0.0.20.2.20081019182600.08d852a8@localhost>,
ファイル名は以前の議論の結果「変換可能でしたら変換、そうでなかったら
In article <6.0.0.20.2.20081021093404.0ada7bf8@localhost>,
At 10:47 08/10/21, Tanaka Akira wrote:
[#36768] Re: [ruby-cvs:27042] Ruby:r19824 (trunk): * array.c: recycle shared-array when it isn't referenced. — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
ワナベです。
[#36774] ConverterNotFoundError while making Ruby in Windows(trunk) — Masaki Suketa <masaki.suketa@...>
助田です。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
In article <[email protected]>,
[#36789] [Bug #660] 数字を3桁ずつコンマで区切るsprintf書式指定 — "rubikitch ." <redmine@...>
Bug #660: 数字を3桁ずつコンマで区切るsprintf書式指定
[#36801] Marshal.load can't take GZipReader — arton <artonx@...>
artonです。
まつもと ゆきひろです
[#36813] Re: Ruby:r19863 (trunk): * regparse.c (parse_char_class): CCV_SB is only for single — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#36866] [Bug #676] 引数の有無によるIO#readの挙動の違い — _ wanabe <redmine@...>
Bug #676: 引数の有無によるIO#readの挙動の違い
[#36877] [Feature #679] Integer#to_s(:step=>3, :sep=>",") が欲しい — Martin Dürst <redmine@...>
チケット #679 が更新されました。 (by Martin Dürst)
[#36909] trunk SEGV nkf? — "WATANABE Tetsuya" <tetsuya.watanabe@...>
渡辺哲也です。
[#36914] prefix math_* funcs — Tadashi Saito <[email protected]>
斎藤と申します。
> complex.cで使うために、いくつか数学関数からstaticがとれたようですが、
[#36917] VMまわりのシンボルにも「rb_」を付けてほしい — Tadashi Saito <[email protected]>
斎藤と申します。連投ですみません。
[#36932] [Bug #6] sprintf() of %f on Windows(MSVCRT) — _ wanabe <redmine@...>
チケット #6 が更新されました。 (by _ wanabe)
[#36937] initial value of $. — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
In article <[email protected]>,
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#36993] [Bug:1.9] removing Exception#initialize dumps core — "Yusuke ENDOH" <mame@...>
遠藤です。
[#37007] [Bug:1.9] 1+1+1+...+1 dumps core — "Yusuke ENDOH" <mame@...>
遠藤です。
はじめまして、よしおかと申します。
遠藤です。
こんにちは、なかむら(う)です。
[ruby-dev:36703] Re: Segmentation fault in eval
なかだです。
At Fri, 10 Oct 2008 06:59:39 +0900,
Kazuhiro NISHIYAMA wrote in [ruby-dev:36698]:
> http://d.hatena.ne.jp/mamamoto/20081007/1223349255
> のスクリプトを元にいじっていたらs="n=$*"で落ちました。
$*=0; $* が最小ですね。
argf回りを整理したときに、rb_define_virtual_variable()と間違えて
rb_define_hooked_variable()のsetterに0を渡すようにしたために、デ
フォルトのsetterが使われてしまっているというミスでした。
しかし、見直してみるとrb_define_hooked_variable()でreadonly変数
を作る方法はないようです。readonly_setter()などを公開するのが簡
単なのですが、どうしたものでしょうか。
さらにいうと、markerを独自に指定する方法もありません。
Index: io.c
===================================================================
--- io.c (revision 19741)
+++ io.c (working copy)
@@ -8445,9 +8445,9 @@ Init_IO(void)
rb_define_hooked_variable("$.", &argf, argf_lineno_getter, argf_lineno_setter);
- rb_define_hooked_variable("$FILENAME", &argf, argf_filename_getter, 0);
+ rb_define_hooked_variable("$FILENAME", &argf, argf_filename_getter, rb_gvar_readonly_setter);
ARGF.filename = rb_str_new2("-");
rb_define_hooked_variable("$-i", &argf, opt_i_get, opt_i_set);
- rb_define_hooked_variable("$*", &argf, argf_argv_getter, 0);
+ rb_define_hooked_variable("$*", &argf, argf_argv_getter, rb_gvar_readonly_setter);
#if defined (_WIN32) || defined(__CYGWIN__)
Index: variable.c
===================================================================
--- variable.c (revision 19741)
+++ variable.c (working copy)
@@ -287,9 +287,9 @@ rb_obj_classname(VALUE obj)
}
-struct global_variable;
+#define global_variable rb_global_variable
-typedef VALUE gvar_getter_t(ID id, void *data, struct global_variable *gvar);
-typedef void gvar_setter_t(VALUE val, ID id, void *data, struct global_variable *gvar);
-typedef void gvar_marker_t(VALUE *var);
+#define gvar_getter_t rb_gvar_getter_t
+#define gvar_setter_t rb_gvar_setter_t
+#define gvar_marker_t rb_gvar_marker_t
struct trace_var {
@@ -315,15 +315,17 @@ struct global_entry {
};
-static VALUE undef_getter(ID id, void *data, struct global_variable *gvar);
-static void undef_setter(VALUE val, ID id, void *data, struct global_variable *gvar);
-static void undef_marker(VALUE *var);
-
-static VALUE val_getter(ID id, void *data, struct global_variable *gvar);
-static void val_setter(VALUE val, ID id, void *data, struct global_variable *gvar);
-static void val_marker(VALUE *var);
-
-static VALUE var_getter(ID id, void *data, struct global_variable *gvar);
-static void var_setter(VALUE val, ID id, void *data, struct global_variable *gvar);
-static void var_marker(VALUE *var);
+#define undef_getter rb_gvar_undef_getter
+#define undef_setter rb_gvar_undef_setter
+#define undef_marker rb_gvar_undef_marker
+
+#define val_getter rb_gvar_val_getter
+#define val_setter rb_gvar_val_setter
+#define val_marker rb_gvar_val_marker
+
+#define var_getter rb_gvar_var_getter
+#define var_setter rb_gvar_var_setter
+#define var_marker rb_gvar_var_marker
+
+#define readonly_setter rb_gvar_readonly_setter
struct global_entry*
@@ -355,5 +357,5 @@ rb_global_entry(ID id)
}
-static VALUE
+VALUE
undef_getter(ID id, void *data, struct global_variable *var)
{
@@ -363,5 +365,5 @@ undef_getter(ID id, void *data, struct g
}
-static void
+void
undef_setter(VALUE val, ID id, void *data, struct global_variable *var)
{
@@ -373,10 +375,10 @@ undef_setter(VALUE val, ID id, void *dat
}
-static void
+void
undef_marker(VALUE *var)
{
}
-static VALUE
+VALUE
val_getter(ID id, void *data, struct global_variable *var)
{
@@ -384,5 +386,5 @@ val_getter(ID id, void *data, struct glo
}
-static void
+void
val_setter(VALUE val, ID id, void *data, struct global_variable *var)
{
@@ -390,5 +392,5 @@ val_setter(VALUE val, ID id, void *data,
}
-static void
+void
val_marker(VALUE *var)
{
@@ -397,5 +399,5 @@ val_marker(VALUE *var)
}
-static VALUE
+VALUE
var_getter(ID id, void *data, struct global_variable *gvar)
{
@@ -405,5 +407,5 @@ var_getter(ID id, void *data, struct glo
}
-static void
+void
var_setter(VALUE val, ID id, void *data, struct global_variable *gvar)
{
@@ -411,5 +413,5 @@ var_setter(VALUE val, ID id, void *data,
}
-static void
+void
var_marker(VALUE *var)
{
@@ -417,5 +419,5 @@ var_marker(VALUE *var)
}
-static void
+void
readonly_setter(VALUE val, ID id, void *data, struct global_variable *gvar)
{
Index: include/ruby/ruby.h
===================================================================
--- include/ruby/ruby.h (revision 19741)
+++ include/ruby/ruby.h (working copy)
@@ -847,4 +847,24 @@ void rb_include_module(VALUE,VALUE);
void rb_extend_object(VALUE,VALUE);
+struct rb_global_variable;
+
+typedef VALUE rb_gvar_getter_t(ID id, void *data, struct rb_global_variable *gvar);
+typedef void rb_gvar_setter_t(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
+typedef void rb_gvar_marker_t(VALUE *var);
+
+VALUE rb_gvar_undef_getter(ID id, void *data, struct rb_global_variable *gvar);
+void rb_gvar_undef_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
+void rb_gvar_undef_marker(VALUE *var);
+
+VALUE rb_gvar_val_getter(ID id, void *data, struct rb_global_variable *gvar);
+void rb_gvar_val_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
+void rb_gvar_val_marker(VALUE *var);
+
+VALUE rb_gvar_var_getter(ID id, void *data, struct rb_global_variable *gvar);
+void rb_gvar_var_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
+void rb_gvar_var_marker(VALUE *var);
+
+void rb_gvar_readonly_setter(VALUE val, ID id, void *data, struct rb_global_variable *gvar);
+
void rb_define_variable(const char*,VALUE*);
void rb_define_virtual_variable(const char*,VALUE(*)(ANYARGS),void(*)(ANYARGS));
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦