[#42735] [Ruby 1.9-Feature#4147][Open] Array#sample で重みを指定したい — Yoji Ojima <redmine@...>

Feature #4147: Array#sample で重みを指定したい

52 messages 2010/12/10
[#42791] [Ruby 1.9-Feature#4147][Assigned] Array#sample で重みを指定したい — Shyouhei Urabe <redmine@...> 2010/12/18

チケット #4147 が更新されました。 (by Shyouhei Urabe)

[#42800] Re: [Ruby 1.9-Feature#4147][Assigned] Array#sample で重みを指定したい — Masaya TARUI <tarui@...> 2010/12/19

> じゃあ反対ないので実装はともかく、この仕様は基本入れる方向で考えましょう。反対の人は意思表示お早めに。

[#42763] [Ruby 1.9-Bug#4159][Open] test_block_variables(TestRipper::ParserEvents) が失敗する — Kouhei Yanagita <redmine@...>

Bug #4159: test_block_variables(TestRipper::ParserEvents) が失敗する

8 messages 2010/12/14

[#42894] [Ruby 1.8-Feature#4207][Open] これから「1.8.8」の話をしよう -- 1.8がこの先生きのこるには — Shyouhei Urabe <redmine@...>

Feature #4207: これから「1.8.8」の話をしよう -- 1.8がこの先生きのこるには

24 messages 2010/12/26
[#42935] Re: [Ruby 1.8-Feature#4207][Open] これから「1.8.8」の話をしよう -- 1.8がこの先生きのこるには — Kenta Murata <muraken@...> 2011/01/04

むらたです。

[#42936] Re: [Ruby 1.8-Feature#4207][Open] これから「1.8.8」の話をしよう -- 1.8がこの先生きのこるには — Kenta Murata <muraken@...> 2011/01/05

むらたです。

[ruby-dev:42788] Re: [ruby-changes:18220] Ruby:r30241 (trunk): * compile.c (setup_args, iseq_compile_each): optimize AMPER LAMBDA

From: SASADA Koichi <ko1@...>
Date: 2010-12-18 04:51:30 UTC
List: ruby-dev #42788
 ささだです.

 下記のパッチって foo(&->{...}) を foo{...} とするもの?


(2010/12/18 10:07), nobu wrote:
> nobu	2010-12-18 10:07:12 +0900 (Sat, 18 Dec 2010)
> 
>   New Revision: 30241
> 
>   http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30241
> 
>   Log:
>     * compile.c (setup_args, iseq_compile_each): optimize AMPER LAMBDA
>       combination as block.
> 
>   Modified files:
>     trunk/ChangeLog
>     trunk/compile.c
>     trunk/version.h
> 
> Index: ChangeLog
> ===================================================================
> --- ChangeLog	(revision 30240)
> +++ ChangeLog	(revision 30241)
> @@ -1,3 +1,8 @@
> +Sat Dec 18 10:07:04 2010  Nobuyoshi Nakada  <nobu@ruby-lang.org>
> +
> +	* compile.c (setup_args, iseq_compile_each): optimize AMPER LAMBDA
> +	  combination as block.
> +
>  Fri Dec 17 22:07:16 2010  Yukihiro Matsumoto  <matz@ruby-lang.org>
>  
>  	* gc.c (Init_GC): move #__id__ and #object_id to BasicObject.
> Index: compile.c
> ===================================================================
> --- compile.c	(revision 30240)
> +++ compile.c	(revision 30241)
> @@ -2886,7 +2886,7 @@
>  }
>  
>  static VALUE
> -setup_args(rb_iseq_t *iseq, LINK_ANCHOR *args, NODE *argn, VALUE *flag)
> +setup_args(rb_iseq_t *iseq, LINK_ANCHOR *args, NODE *argn, VALUE *flag, VALUE *block)
>  {
>      VALUE argc = INT2FIX(0);
>      int nsplat = 0;
> @@ -2896,8 +2896,14 @@
>      INIT_ANCHOR(arg_block);
>      INIT_ANCHOR(args_splat);
>      if (argn && nd_type(argn) == NODE_BLOCK_PASS) {
> -	COMPILE(arg_block, "block", argn->nd_body);
> -	*flag |= VM_CALL_ARGS_BLOCKARG_BIT;
> +	if (block && nd_type(argn->nd_body) == NODE_LAMBDA) {
> +	    NODE *lambda = argn->nd_body;
> +	    *block = NEW_CHILD_ISEQVAL(lambda->nd_body, make_name_for_block(iseq), ISEQ_TYPE_BLOCK, nd_line(lambda));
> +	}
> +	else {
> +	    COMPILE(arg_block, "block", argn->nd_body);
> +	    *flag |= VM_CALL_ARGS_BLOCKARG_BIT;
> +	}
>  	argn = argn->nd_head;
>      }
>  
> @@ -3809,7 +3815,7 @@
>  	    boff = 1;
>  	  default:
>  	    INIT_ANCHOR(args);
> -	    argc = setup_args(iseq, args, node->nd_args->nd_head, &flag);
> +	    argc = setup_args(iseq, args, node->nd_args->nd_head, &flag, NULL);
>  	    ADD_SEQ(ret, args);
>  	}
>  	ADD_INSN1(ret, nd_line(node), dupn, FIXNUM_INC(argc, 1 + boff));
> @@ -4125,7 +4131,7 @@
>  
>  	/* args */
>  	if (nd_type(node) != NODE_VCALL) {
> -	    argc = setup_args(iseq, args, node->nd_args, &flag);
> +	    argc = setup_args(iseq, args, node->nd_args, &flag, &parent_block);
>  	}
>  	else {
>  	    argc = INT2FIX(0);
> @@ -4163,7 +4169,7 @@
>  	INIT_ANCHOR(args);
>  	iseq->compile_data->current_block = Qfalse;
>  	if (nd_type(node) == NODE_SUPER) {
> -	    argc = setup_args(iseq, args, node->nd_args, &flag);
> +	    argc = setup_args(iseq, args, node->nd_args, &flag, &parent_block);
>  	}
>  	else {
>  	    /* NODE_ZSUPER */
> @@ -4336,7 +4342,7 @@
>  	}
>  
>  	if (node->nd_head) {
> -	    argc = setup_args(iseq, args, node->nd_head, &flag);
> +	    argc = setup_args(iseq, args, node->nd_head, &flag, NULL);
>  	}
>  	else {
>  	    argc = INT2FIX(0);
> @@ -4948,7 +4954,7 @@
>  
>  	INIT_ANCHOR(recv);
>  	INIT_ANCHOR(args);
> -	argc = setup_args(iseq, args, node->nd_args, &flag);
> +	argc = setup_args(iseq, args, node->nd_args, &flag, NULL);
>  
>  	if (node->nd_recv == (NODE *) 1) {
>  	    flag |= VM_CALL_FCALL_BIT;
> Index: version.h
> ===================================================================
> --- version.h	(revision 30240)
> +++ version.h	(revision 30241)
> @@ -1,11 +1,11 @@
>  #define RUBY_VERSION "1.9.3"
> -#define RUBY_RELEASE_DATE "2010-12-17"
> +#define RUBY_RELEASE_DATE "2010-12-18"
>  #define RUBY_PATCHLEVEL -1
>  #define RUBY_BRANCH_NAME "trunk"
>  
>  #define RUBY_RELEASE_YEAR 2010
>  #define RUBY_RELEASE_MONTH 12
> -#define RUBY_RELEASE_DAY 17
> +#define RUBY_RELEASE_DAY 18
>  
>  #include "ruby/version.h"
>  
> 
> --
> ML: ruby-changes@quickml.atdot.net
> Info: http://www.atdot.net/~ko1/quickml/


-- 
// SASADA Koichi at atdot dot net

In This Thread

Prev Next