[#31166] is_ruby_native_thread() — Masahiro Sakai (酒井政裕) <masahiro.sakai@...>

酒井です。

16 messages 2007/07/08
[#31269] Re: is_ruby_native_thread() — Nobuyoshi Nakada <nobu@...> 2007/07/21

なかだです。

[#31270] Re: is_ruby_native_thread() — Hidetoshi NAGAI <nagai@...> 2007/07/22

永井@知能.九工大です.

[#31298] retryの使い方 — eklerni <eklerni@...>

松尾といいます。

52 messages 2007/07/25
[#31299] Re: retryの使い方 — SASADA Koichi <ko1@...> 2007/07/26

 ささだです。

[#31300] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/26

松尾です、返信ありがとうございます。

[#31303] Re: retryの使い方 — Yugui <yugui@...> 2007/07/26

Yuguiといいます。

[#31306] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/26

松尾といいます。

[#31308] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/07/26

In article <[email protected]>,

[#31310] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/26

Tanaka Akira さんは書きました:

[#31314] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/07/30

In article <[email protected]>,

[#31315] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/30

Tanaka Akira さんは書きました:

[#31316] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/07/30

In article <[email protected]>,

[#31317] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/31

松尾です。

[#31381] Re: retryの使い方 — SASADA Koichi <ko1@...> 2007/08/12

 ささだです。

[#31422] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/15

まつもと ゆきひろです

[#31425] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/15

In article <E1ILDTi-0005T6-Be@x31>,

[#31426] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/15

まつもと ゆきひろです

[#31433] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/16

In article <E1ILKn6-0003Nv-0f@x31>,

[#31435] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/16

まつもと ゆきひろです

[#31447] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/16

In article <E1ILVN9-0006xJ-7I@x31>,

[#31450] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/17

In article <E1ILq4x-0002Bs-Lg@x31>,

[#31451] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/17

まつもと ゆきひろです

[ruby-dev:31152] Re: m {|(*,(*)),|}

From: SASADA Koichi <ko1@...>
Date: 2007-07-06 20:03:37 UTC
List: ruby-dev #31152
 ささだです。

Tanaka Akira wrote:
> m {|(*,(*)),|} で SEGV します。

 パーサ部分は正直よくわかんないんですが、こんな感じでしょう
か。とりあえず落ちなくなりました。

> Index: bootstraptest/test_block.rb
> ===================================================================
> --- bootstraptest/test_block.rb	(リビジョン 12717)
> +++ bootstraptest/test_block.rb	(作業コピー)
> @@ -335,3 +335,34 @@ assert_equal %q{[1, nil]}, %q{
>      [i, j]
>    }
>  }
> +
> +# block parameter (shouldn't SEGV: [ruby-dev:31143])
> +assert_equal '0', %q{
> +def m()
> +end
> +m {|(v0,*,(*)),|}
> +m {|(*v0,(*)),|}
> +m {|(v0,*v1,(*)),|}
> +m {|((v0,*v1,v2)),|}
> +m {|(v0,*v1,v2),|}
> +m {|(v0,*v1,(v2)),|}
> +m {|((*),*v0,v1),|}
> +m {|((v0),*v1,v2),|}
> +m {|(v0,v1,*v2,v3),|}
> +m {|v0,(v1,*v2,v3),|}
> +m {|(v0,*v1,v2),v3,|}
> +m {|(v0,*v1,v2)|}
> +m {|(v0,*v1,v2),&v3|}
> +m {|(v0,*v1,v2),*|}
> +m {|(v0,*v1,v2),*,&v3|}
> +m {|*,(v0,*v1,v2)|}
> +m {|*,(v0,*v1,v2),&v3|}
> +m {|v0,*,(v1,*v2,v3)|}
> +m {|v0,*,(v1,*v2,v3),&v4|}
> +m {|(v0,*v1,v2),*,v3|}
> +m {|(v0,*v1,v2),*,v3,&v4|}
> +m {|(v0, *v1, v2)|}
> +m {|(*,v)|}
> +0
> +}
> +
> Index: compile.c
> ===================================================================
> --- compile.c	(リビジョン 12717)
> +++ compile.c	(作業コピー)
> @@ -319,8 +319,7 @@ verify_list(char *info, LINK_ANCHOR *anc
>      }
>  
>      if (flag != 0) {
> -	rb_compile_error(ERROR_ARGS "list verify error: %08x (%s)",
> -			 flag, info);
> +	rb_bug("list verify error: %08x (%s)", flag, info);
>      }
>  #endif
>  }
> @@ -2073,8 +2072,7 @@ compile_massign(rb_iseq_t *iseq, LINK_AN
>  
>  		while (n) {
>  		    DECL_ANCHOR(lhs);
> -
> -		    COMPILE_POPED(lhs, "post", n->nd_head);
> +		    COMPILE_POPED(lhs, "post/each", n->nd_head);
>  
>  		    if (nd_type(n->nd_head) != NODE_MASGN) {
>  			REMOVE_ELEM(FIRST_ELEMENT(lhs));
> Index: parse.y
> ===================================================================
> --- parse.y	(リビジョン 12717)
> +++ parse.y	(作業コピー)
> @@ -3003,7 +3003,7 @@ f_marg		: f_norm_arg
>  		| tLPAREN f_margs rparen
>  		    {
>  		    /*%%%*/
> -			$$ = $2;
> +			$$ = NEW_LIST($2);
>  		    /*%
>  			$$ = dispatch1(mlhs_paren, $2);
>  		    %*/
> @@ -3013,7 +3013,7 @@ f_marg		: f_norm_arg
>  f_marg_head	: f_marg
>  		    {
>  		    /*%%%*/
> -			$$ = NEW_LIST($1);
> +			$$ = $1;
>  		    /*%
>  			$$ = mlhs_add(mlhs_new(), $1);
>  		    %*/
> @@ -3047,7 +3047,7 @@ f_margs		: f_marg_head
>  		| f_marg_head ',' tSTAR f_norm_arg ',' f_marg
>  		    {
>  		    /*%%%*/
> -			$$ = NEW_MASGN($1, NEW_POSTARG($4,$6));
> +			$$ = NEW_MASGN($1, NEW_POSTARG(assignable($4, 0), $6));
>  		    /*%
>  			$$ = mlhs_add_star($1, $4);
>  		    %*/


-- 
// SASADA Koichi at atdot dot net
// さて、簡単に Thunderbird で行折り返しを一部無効にする方法
// はないもんですかねぇ。クリップボードの内容を添付ファイル
// にしてくれる何かがあればいいのかなぁ。


In This Thread