# VM::InstructionSequence.load $B$N%P%0(B

**URL:** <https://www.ruby-forum.com/t/vm-instructionsequence-load-b-n-p-0-b/141195>\
**Category:** Development\
**Created:** [June 23, 2008, 2:17pm UTC](https://www.ruby-forum.com/t/vm-instructionsequence-load-b-n-p-0-b/141195 "2008-06-23T14:17:31Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Shumpei\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/6de8d8/32.png) [@Shumpei\_A](https://www.ruby-forum.com/u/Shumpei_A)\
**Post date:** [June 23, 2008, 2:17pm UTC](https://www.ruby-forum.com/t/vm-instructionsequence-load-b-n-p-0-b/141195/1 "2008-06-23T14:17:31Z")

</div>

e$B@V0f$H8@$$$^$9!%e(B

e$B:rF|$Ne(BRejectRejectKaigie$B$GH/I=$7$?e(BVM::InstructionSequence.loade$B$N%P%0$rJse(B  
e$B9p$7$^$9!%e(B

$ruby\_custom -v  
ruby 1.9.0 (2008-06-23 revision 16869) [x86\_64-linux]

loade$B$GDj5A$7$?%a%=%C%I$r$KEO$k0z?t$,$:$l$F$$$^$9!%e(B

> VM::InstructionSequence.load(  
> VM::InstructionSequence.compile(  
> “def f(a,b,c);p(a,b,c);end”  
> ).to\_a).eval  
> f(1,2,3)  
> 2  
> 3  
> nil  
> =\> [2, 3, nil]

e$B$^$?!$e(Bloade$B$G%V%m%C%/$r;H$&$H%V%m%C%/$N0z?t$K$\*$+$7$J@0?t$,EO$j$^$9!%e(B

> VM::InstructionSequence.load(  
> VM::InstructionSequence.compile(  
> “[1,2,3].each{|x|p x}”  
> ).to\_a).eval  
> 70014636118636  
> 70014636118636  
> 70014636118636  
> =\> [1, 2, 3]

---

<div class="post-metadata">

**Author:** ![Shumpei\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/6de8d8/32.png) [@Shumpei\_A](https://www.ruby-forum.com/u/Shumpei_A)\
**Post date:** [June 23, 2008, 4:45pm UTC](https://www.ruby-forum.com/t/vm-instructionsequence-load-b-n-p-0-b/141195/2 "2008-06-23T16:45:14Z")

</div>

e$B%o%J%Y$H?=$7$^$9!#e(B

2008/06/23 21:15 Shumpei A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> e$B:rF|$Ne(BRejectRejectKaigie$B$GH/I=$7$?e(BVM::InstructionSequence.loade$B$N%P%0$rJse(B  
> e$B9p$7$^$9!%e(B

VM::InstructionSequence.load e$B$J$s$F$“$k$s$G$9$M!#e(B  
e$B%3%a%s%H%”%&%H$5$l$F$$$k\<BAu$r;X$7$F%P%0$H8@$C$F$$$$$N$+$I$&$+J,$+$j$^$;$s$,e(B  
e$B@V0f$5$s$N\<($5$l$?%3!\<%I$,F0$/$h$&$K$9$k$J$i$3$s$J46$8$G$7$g$&$+!#e(B

e$B\<BAu$rFI$`$H!"e(Biseq e$B$O\>o$Ke(B local\_size == local\_table\_size + 1  
e$B$N$h$&$@$C$?$N$Ge(B  
e$B$=$N$h$&$KJQ99$7$?$N$G$9$,!“FI$\_4V0c$($F$$$?$iITET9g$,$”$k$+$b$7$l$^$;$s!#e(B

# Index: compile.c

— compile.c (revision 17547)  
+++ compile.c (working copy)  
@@ -4983,22 +4983,16 @@  
VALUE exception, VALUE body)  
{  
int i;

- int opt = 0;  
ID \*tbl;  
struct st\_table \*labels\_table = st\_init\_numtable();

- if (iseq-\>type == ISEQ\_TYPE\_METHOD ||

- iseq-\>type == ISEQ\_TYPE\_TOP ||

- iseq-\>type == ISEQ\_TYPE\_CLASS) {

- opt = 1;

- }

- iseq-\>local\_table\_size = opt + RARRAY\_LEN(locals);

- iseq-\>local\_table\_size = RARRAY\_LEN(locals);  
iseq-\>local\_table = tbl = (ID \*)ALLOC\_N(ID \*,  
iseq-\>local\_table\_size);

- iseq-\>local\_size = opt + iseq-\>local\_table\_size;

- iseq-\>local\_size = iseq-\>local\_table\_size + 1;

---

<div class="post-metadata">

**Author:** ![Shumpei\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/6de8d8/32.png) [@Shumpei\_A](https://www.ruby-forum.com/u/Shumpei_A)\
**Post date:** [June 23, 2008, 4:48pm UTC](https://www.ruby-forum.com/t/vm-instructionsequence-load-b-n-p-0-b/141195/3 "2008-06-23T16:48:09Z")

</div>

e$B!!$5$5$@$G$9!%e(B

wanabe wrote:

> VM::InstructionSequence.load e$B$J$s$F$"$k$s$G$9$M!#e(B  
> e$B%3%a%s%H%"%&%H$5$l$F$$$k\<BAu$r;X$7$F%P%0$H8@$C$F$$$$$N$+$I$&$+J,$+$j$^$;$s$,e(B  
> e$B@V0f$5$s$N\<($5$l$?%3!\<%I$,F0$/$h$&$K$9$k$J$i$3$s$J46$8$G$7$g$&$+!#e(B

e$B!!%3%a%s%H%"%&%H$7$F$$$k$N$G!$%F%9%H$,$J$$$N$G!$B\>$NJQ99$K$D$$$F$$$Je(B  
e$B$$$s$G$9$M!%e(B

> e$B\<BAu$rFI$`$H!"e(Biseq e$B$O\>o$Ke(B local\_size == local\_table\_size + 1 e$B$N$h$&$@$C$?$N$Ge(B  
> e$B$=$N$h$&$KJQ99$7$?$N$G$9$,!“FI$\_4V0c$($F$$$?$iITET9g$,$”$k$+$b$7$l$^$;$s!#e(B

e$B!!:G6a!$$=$&JQ$o$j$^$7$?!%$3$l$G$h$$$h$&$J5$$,$9$k$s$G%3%\_%C%H$7$F$$e(B  
e$B$?$@$1$^$9$+!%e(B
