# Module.new

**URL:** <https://www.ruby-forum.com/t/module-new/71105>\
**Category:** Development\
**Created:** [October 5, 2006, 11:10am UTC](https://www.ruby-forum.com/t/module-new/71105 "2006-10-05T11:10:18Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![WATANABE\_Hirofumi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/f0a364/32.png) [@WATANABE\_Hirofumi](https://www.ruby-forum.com/u/WATANABE_Hirofumi)\
**Post date:** [October 5, 2006, 11:10am UTC](https://www.ruby-forum.com/t/module-new/71105/1 "2006-10-05T11:10:18Z")

</div>

e$B$o$?$J$Y$G$9!#e(B

1.9e$B$Ne(BModule.newe$B$N%V%m%C%/0z?t$,$J$\<$+e(Bnile$B$K$J$C$F$7$^$$$^$9!#e(B

% ruby-1.9 -e ‘Module.new{|mod| p mod}’  
nil

e$B$=$l$O$=$l$H$7$F!"e(Bmake  
minirubye$B$@$1$G$J$/\>/$J$/$H$be(Bmakee$B$G$-e(B  
e$B$F$+$i%3%\_%C%H$7$F$/$@$5$$!#e(B

---

<div class="post-metadata">

**Author:** ![WATANABE\_Hirofumi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/f0a364/32.png) [@WATANABE\_Hirofumi](https://www.ruby-forum.com/u/WATANABE_Hirofumi)\
**Post date:** [October 5, 2006, 6:01pm UTC](https://www.ruby-forum.com/t/module-new/71105/2 "2006-10-05T18:01:07Z")

</div>

e$B$J$+$@$G$9!#e(B

At Thu, 5 Oct 2006 18:09:18 +0900,  
WATANABE Hirofumi wrote in [ruby-dev:29637]:

> 1.9e$B$Ne(BModule.newe$B$N%V%m%C%/0z?t$,$J$\<$+e(Bnile$B$K$J$C$F$7$^$$$^$9!#e(B
> 
> % ruby-1.9 -e ‘Module.new{|mod| p mod}’  
> nil

e$B$3$C$A$O$^$@$h$/8+$F$J$$$s$G$9$,e(B

> e$B$=$l$O$=$l$H$7$F!"e(Bmake minirubye$B$@$1$G$J$/\>/$J$/$H$be(Bmakee$B$G$-e(B  
> e$B$F$+$i%3%\_%C%H$7$F$/$@$5$$!#e(B

e$B$3$C$A$O$3$s$J$H$3$G$7$g$&$+!#e(B

# Index: parse.y

RCS file: /pub/cvs/ruby/src/ruby/parse.y,v  
retrieving revision 1.464  
diff -U 2 -p -u -r1.464 parse.y  
— parse.y 4 Oct 2006 07:17:16 -0000 1.464  
+++ parse.y 5 Oct 2006 15:52:43 -0000  
@@ -541,5 +541,5 @@ static void ripper\_compile\_error(struct  
%type assoc\_list assocs assoc undef\_list backref string\_dvar  
%type for\_var block\_param opt\_block\_param block\_param\_def  
block\_param0  
-%type block\_param1 bparam\_post  
+%type block\_param1 bparam\_post block\_mparam0 block\_mparam  
%type opt\_bv\_decl bv\_decls bv\_decl lambda f\_larglist lambda\_body  
%type brace\_block cmd\_brace\_block do\_block lhs none fitem  
@@ -2859,8 +2859,8 @@ for\_var : lhs

block\_param1 : bv\_decl

- 

```
  | tLPAREN block_param rparen

```

- 

```
  | tLPAREN block_mparam rparen
      {
      /*%%%*/

```

- 

```
  	$$ = NEW_MASGN(NEW_LIST($2), 0);

```

- 

```
  	$$ = $2;
      /*%
  	$$ = dispatch1(mlhs_paren, $2);

```

@@ -2909,16 +2909,36 @@ block\_param : block\_param0  
{  
/_%%%_/

- 

```
                   if ($1->nd_alen == 1) {

```

- 

```
                       $$ = $1->nd_head;

```

- 

```
                       rb_gc_force_recycle((VALUE)$1);

```

- 

```
                   }

```

- 

```
                   else {

```

- 

```
                       $$ = NEW_MASGN($1, 0);

```

- 

```
                   }

```

- 

```
  	if ($1->nd_alen == 1) {

```

- 

```
  	    $$ = $1->nd_head;

```

- 

```
  	    rb_gc_force_recycle((VALUE)$1);

```

- 

```
  	}

```

- 

```
  	else {

```

- 

```
  	    $$ = NEW_MASGN($1, 0);

```

- 

```
  	}

```

- 

```
      /*%

```

- 

```
  	$$ = blockvar_new($1);

```

- 

```
      %*/

```

- 

```
      }

```

- 

```
  | block_mparam0

```

- 

```
      {

```

- 

```
  	$$ = $1;

```

- 

```
      }

```

- 

```
  ;

```

- 

+block\_mparam : block\_param0

- 

```
      {

```

- 

```
      /*%%%*/

```

- 

```
  	$$ = NEW_MASGN($1, 0);
      /*%
  	$$ = blockvar_new($1);
      %*/
      }

```

- 

```
  | block_param0 ','

```

- 

```
  | block_mparam0

```

- 

```
      {

```

- 

```
  	$$ = $1;

```

- 

```
      }

```

- 

```
  ;

```

- 

+block\_mparam0 : block\_param0 ‘,’  
{  
/_%%%_/

---

<div class="post-metadata">

**Author:** ![WATANABE\_Hirofumi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/f0a364/32.png) [@WATANABE\_Hirofumi](https://www.ruby-forum.com/u/WATANABE_Hirofumi)\
**Post date:** [October 6, 2006, 12:36am UTC](https://www.ruby-forum.com/t/module-new/71105/3 "2006-10-06T00:36:01Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:29637] Module.new”  
on Thu, 5 Oct 2006 18:09:18 +0900, WATANABE Hirofumi  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|e$B$=$l$O$=$l$H$7$F!"e(Bmake minirubye$B$@$1$G$J$/\>/$J$/$H$be(Bmakee$B$G$-e(B  
|e$B$F$+$i%3%\_%C%H$7$F$/$@$5$$!#e(B

e$B$^$?$d$C$A$c$$$^$7$?!#:#8e5$$r$D$1$^$9!#e(B

---

<div class="post-metadata">

**Author:** ![WATANABE\_Hirofumi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/f0a364/32.png) [@WATANABE\_Hirofumi](https://www.ruby-forum.com/u/WATANABE_Hirofumi)\
**Post date:** [October 5, 2006, 11:11pm UTC](https://www.ruby-forum.com/t/module-new/71105/4 "2006-10-05T23:11:55Z")

</div>

e$B$J$+$@$G$9!#e(B

At Thu, 5 Oct 2006 18:09:18 +0900,  
WATANABE Hirofumi wrote in [ruby-dev:29637]:

> 1.9e$B$Ne(BModule.newe$B$N%V%m%C%/0z?t$,$J$\<$+e(Bnile$B$K$J$C$F$7$^$$$^$9!#e(B
> 
> % ruby-1.9 -e ‘Module.new{|mod| p mod}’  
> nil

module\_exece$B$r;H$&I,MW$,$"$k$h$&$G$9!#e(B

# Index: object.c

RCS file: /cvs/ruby/src/ruby/object.c,v  
retrieving revision 1.203  
diff -p -U 2 -r1.203 object.c  
— object.c 22 Sep 2006 08:36:02 -0000 1.203  
+++ object.c 5 Oct 2006 21:08:39 -0000  
@@ -1206,5 +1206,5 @@ rb\_mod\_initialize(VALUE module)  
{  
if (rb\_block\_given\_p()) {

- rb\_mod\_module\_eval(0, 0, module);

- rb\_mod\_module\_exec(1, &module, module);  
}  
return Qnil;

---

<div class="post-metadata">

**Author:** ![WATANABE\_Hirofumi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/f0a364/32.png) [@WATANABE\_Hirofumi](https://www.ruby-forum.com/u/WATANABE_Hirofumi)\
**Post date:** [October 6, 2006, 12:36am UTC](https://www.ruby-forum.com/t/module-new/71105/5 "2006-10-06T00:36:01Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:29639] Re: Module.new”  
on Fri, 6 Oct 2006 06:10:41 +0900, Nobuyoshi N.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|At Thu, 5 Oct 2006 18:09:18 +0900,  
|WATANABE Hirofumi wrote in [ruby-dev:29637]:  
|\> 1.9e$B$Ne(BModule.newe$B$N%V%m%C%/0z?t$,$J$\<$+e(Bnile$B$K$J$C$F$7$^$$$^$9!#e(B  
|\>  
|\> % ruby-1.9 -e ‘Module.new{|mod| p mod}’  
|\> nil  
|  
|module\_exece$B$r;H$&I,MW$,$"$k$h$&$G$9!#e(B

e$B%3%\_%C%H$7$F$/$@$5$$!#e(B
