[#20320] Apollo.exeでsingleton_method_addedが効かない — Kazuhiro Yoshida <moriq@...>
もりきゅうです。
5 messages
2003/06/03
[#20335] 1.8 gsub — "H.Suzuki" <hsuzux@...>
hsuzu といいます。
7 messages
2003/06/08
[#20347] 1.8.0 preview3 schedule — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
14 messages
2003/06/14
[#20357] Re: 1.8.0 preview3 schedule
— Koji Arai <JCA02266@...>
2003/06/16
新井です。
[#20358] Re: 1.8.0 preview3 schedule
— matz@... (Yukihiro Matsumoto)
2003/06/17
まつもと ゆきひろです
[#20360] Re: 1.8.0 preview3 schedule
— Koji Arai <JCA02266@...>
2003/06/17
新井です。
[#20362] [Oniguruma] quoting substring — kkosako@...
PerlとJavaの正規表現で実現されている
7 messages
2003/06/18
[#20389] Re: [Oniguruma] quoting substring
— Tanaka Akira <akr@...17n.org>
2003/06/19
In article <5FD2F0CF7F5D7F44B00F36870B9E78B508DE5040@SBG-EX4>,
[#20395] Re: [Oniguruma] quoting substring
— Tanaka Akira <akr@...17n.org>
2003/06/20
In article <87u1aloqtq.fsf@serein.a02.aist.go.jp>,
[#20374] case sensitivity of the names of environment variables — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
5 messages
2003/06/19
[#20379] locale and Marshal — Masao Mutoh <mutoh@...>
むとうです。
11 messages
2003/06/19
[#20381] Re: locale and Marshal
— matz@... (Yukihiro Matsumoto)
2003/06/19
まつもと ゆきひろです
[#20392] [BigDecimal] proposal to change specification — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
斎藤と申します。
25 messages
2003/06/20
[#20407] Re: [BigDecimal] proposal to change specification
— "Shigeo Kobayashi" <shigeo@...>
2003/06/22
小林です。
[#20412] Re: In 1.8.0 nil.to_s is not the same as "" — nobu.nakada@...
なかだです。
5 messages
2003/06/23
[#20416] ruby 1.8.0 preview3 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
11 messages
2003/06/23
[#20422] [BUG] SEGV on Alpha (Re: ruby 1.8.0 preview3)
— Minero Aoki <aamine@...>
2003/06/23
青木です。
[#20424] Re: [BUG] SEGV on Alpha (Re: ruby 1.8.0 preview3)
— matz@... (Yukihiro Matsumoto)
2003/06/23
まつもと ゆきひろです
[#20445] Re: *.soの autoload(PR#504) — nobu.nakada@...
なかだです。
13 messages
2003/06/24
[#20450] Re: *.soの autoload(PR#504)
— matz@... (Yukihiro Matsumoto)
2003/06/25
まつもと ゆきひろです
[#20451] Re: *.soの autoload(PR#504)
— Minero Aoki <aamine@...>
2003/06/25
青木です。
[#20454] Re: *.soのautoload(PR#504)
— nobu.nakada@...
2003/06/25
なかだです。
[#20455] Re: *.soのautoload(PR#504)
— Minero Aoki <aamine@...>
2003/06/25
青木です。
[#20457] Re: *.soのautoload(PR#504)
— matz@... (Yukihiro Matsumoto)
2003/06/25
[#20447] [BigDecimal] renaming proposal — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
斎藤です。
47 messages
2003/06/24
[#20598] Re: [BigDecimal] renaming proposal
— "Shigeo Kobayashi" <shigeo@...>
2003/07/10
小林です、またまたまとめて。
[#20600] Re: [BigDecimal] renaming proposal
— matz@... (Yukihiro Matsumoto)
2003/07/10
まつもと ゆきひろです
[#20621] Re: [BigDecimal] renaming proposal
— "Shigeo Kobayashi" <shigeo@...>
2003/07/11
小林@MAILチェック中です。
[#20628] Re: [BigDecimal] renaming proposal
— "Shigeo Kobayashi" <shigeo@...>
2003/07/11
小林です。
[#20648] Re: [BigDecimal] 標準添付案 [Re: Re: [BigDecimal] renaming proposal]
— "Shigeo Kobayashi" <shigeo@...>
2003/07/13
小林です。
[#20649] Re: [BigDecimal] 標準添付案
— "Shigeo Kobayashi" <shigeo@...>
2003/07/13
小林です。
[#20692] Re: [BigDecimal] 標準添付案 [Re: Re: [BigDecimal] renaming proposal]
— "Shigeo Kobayashi" <shigeo@...>
2003/07/16
小林です。
[#20462] 原因不明のSEGV — "yamamoto madoka" <dan@...2.so-net.ne.jp>
山本ともうします。
15 messages
2003/06/26
[#20473] Re: 原因不明のSEGV
— "yamamoto madoka" <dan@...2.so-net.ne.jp>
2003/06/27
山本です。
[#20474] Re: 原因不明のSEGV
— nobu.nakada@...
2003/06/27
なかだです。
[ruby-dev:20316] Re: local variable and local variable in block behave differently
From:
nobu.nakada@...
Date:
2003-06-03 01:24:22 UTC
List:
ruby-dev #20316
なかだです。
ruby-talkに戻るべきなのかも知れませんが、途中経過を説明するのが
めんどくさいのでdevへ。
At Sat, 31 May 2003 00:43:02 +0900,
Yukihiro Matsumoto wrote:
> |> 1.times do
> |> if false
> |> a = ""
> |> else
> |> 1.times { a = "a" }
> |> end
> |> puts defined? a # => local-variable(in-block)
> |> puts a # => nil
> |> end
> |
> |OK, that's weird... I would have thought that the assignment to 'a' in the
> |inner block would have bound to the 'a' brought into existence in the outer
> |block, but it hasn't.
>
> Maybe a bug. Let me check.
At Mon, 02 Jun 2003 22:23:17 +0900,
まつもと wrote:
> 「ブロックローカル変数の実際の初期化は最も近いブロックの先頭
> で行われる」ってのは良さげに聞こえますね。問題あるかな?
今のところ思い付くのは、local_variablesの動作が変わってしまうと
いうことですが。
とりあえず、http://nokada.jin.gr.jp/ruby/test_unpassed_dvar.rb
のテストは通るようになります。
* parse.y (cmd_brace_block, do_block, brace_block): initialize block
variables at the beginning of the block. [ruby-talk:72521]
Index: parse.y
===================================================================
RCS file: /cvs/ruby/src/ruby/parse.y,v
retrieving revision 1.275
diff -u -2 -p -r1.275 parse.y
--- parse.y 31 May 2003 09:11:12 -0000 1.275
+++ parse.y 2 Jun 2003 23:54:36 -0000
@@ -166,4 +166,5 @@ static struct RVarmap *dyna_push();
static void dyna_pop();
static int dyna_in_block();
+static NODE *dyna_init();
static void top_local_init();
@@ -646,9 +647,9 @@ cmd_brace_block : tLBRACE_ARG
$<num>1 = ruby_sourceline;
}
- opt_block_var
+ opt_block_var {$<vars>$ = ruby_dyna_vars;}
compstmt
'}'
{
- $$ = NEW_ITER($3, 0, $4);
+ $$ = NEW_ITER($3, 0, dyna_init($5, $<vars>4));
nd_set_line($$, $<num>1);
dyna_pop($<vars>2);
@@ -1715,9 +1716,9 @@ do_block : kDO_BLOCK
$<num>1 = ruby_sourceline;
}
- opt_block_var
+ opt_block_var {$<vars>$ = ruby_dyna_vars;}
compstmt
kEND
{
- $$ = NEW_ITER($3, 0, $4);
+ $$ = NEW_ITER($3, 0, dyna_init($5, $<vars>4));
nd_set_line($$, $<num>1);
dyna_pop($<vars>2);
@@ -1778,8 +1779,8 @@ brace_block : '{'
$<num>1 = ruby_sourceline;
}
- opt_block_var
+ opt_block_var {$<vars>$ = ruby_dyna_vars;}
compstmt '}'
{
- $$ = NEW_ITER($3, 0, $4);
+ $$ = NEW_ITER($3, 0, dyna_init($5, $<vars>4));
nd_set_line($$, $<num>1);
dyna_pop($<vars>2);
@@ -1790,8 +1791,8 @@ brace_block : '{'
$<num>1 = ruby_sourceline;
}
- opt_block_var
+ opt_block_var {$<vars>$ = ruby_dyna_vars;}
compstmt kEND
{
- $$ = NEW_ITER($3, 0, $4);
+ $$ = NEW_ITER($3, 0, dyna_init($5, $<vars>4));
nd_set_line($$, $<num>1);
dyna_pop($<vars>2);
@@ -5655,4 +5656,19 @@ dyna_in_block()
{
return (lvtbl->dlev > 0);
+}
+
+static NODE *
+dyna_init(node, pre)
+ NODE *node;
+ struct RVarmap *pre;
+{
+ struct RVarmap *post = ruby_dyna_vars;
+ NODE *var;
+
+ if (!node || !post || pre == post) return node;
+ for (var = 0; post != pre && post->id; post = post->next) {
+ var = NEW_DASGN_CURR(post->id, var);
+ }
+ return block_append(var, node);
}
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦