# Make error at bcc32

**URL:** <https://www.ruby-forum.com/t/make-error-at-bcc32/107827>\
**Category:** Development\
**Created:** [June 26, 2007, 4:10pm UTC](https://www.ruby-forum.com/t/make-error-at-bcc32/107827 "2007-06-26T16:10:39Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Nebata](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/958977/32.png) [@Nebata](https://www.ruby-forum.com/u/Nebata)\
**Post date:** [June 26, 2007, 4:10pm UTC](https://www.ruby-forum.com/t/make-error-at-bcc32/107827/1 "2007-06-26T16:10:39Z")

</div>

e$B$M$P$?$G$9!#e(B  
1.9 e$B$G!"5W$7$V$j$K!"e(Bbcc32 e$B$Ge(B make  
e$B$7$h$&$H$7$?$i!"0J2\<$Ne(B  
e$B%(%i!\<$,=P$^$7$?!#e(B

MAKE Version 5.2 Copyright (c) 1987, 2000 Borland  
Error .[//common.mk](https://common.mk) 615: Redefinition of target ‘opt\_sc.inc’  
Error .[//common.mk](https://common.mk) 615: Redefinition of target ‘optinsn.inc’  
Error .[//common.mk](https://common.mk) 615: Redefinition of target ‘optunifs.inc’  
Error .[//common.mk](https://common.mk) 615: Redefinition of target ‘insns.inc’  
Error .[//common.mk](https://common.mk) 615: Redefinition of target ‘vmtc.inc’  
\*\*\* 5 errors during make \*\*\*

trunk e$B$+$i$N%=!\<%9$G$9!#e(B  
bcc32 e$B$r;H$C$F$$$k$N$O\>/?tGI$@$H;W$$$^$9$,!"0&$N\<j$r!#e(B

* * *

---

<div class="post-metadata">

**Author:** ![Nebata](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/958977/32.png) [@Nebata](https://www.ruby-forum.com/u/Nebata)\
**Post date:** [June 29, 2007, 7:59am UTC](https://www.ruby-forum.com/t/make-error-at-bcc32/107827/2 "2007-06-29T07:59:36Z")

</div>

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:31063] make error at bcc32”  
on Jun.26,2007 23:09:25, [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:  
| bcc32 e$B$r;H$C$F$$$k$N$O\>/?tGI$@$H;W$$$^$9$,!"0&$N\<j$r!#e(B

e$B8x\<0$K$O%a%s%F%J$O\>.@\>$5$s$J$N$G$9$,!“$\*K;$7$$$i$7$/H?1~$,$:e(B  
e$B$C$H$”$j$^$;$s$M!#e(B  
e$BB\>$Ne(BWindowse$BHG%a%s%F%J$N4V$G$O!V$b$&e(Bbcc32e$BHG%5%]!\<%H$OBG$A@Z$ie(B  
e$B$6$k$rF@$J$$!W$H$$$&0U8+$b$"$j$^$9!#e(B

e$B$H$$$&$o$1$G!“4D6-$r;}$C$F$F%3%s%Q%$%k$9$k5$NO$,$”$k?M$,0&$Ne(B  
e$B\<j$r:9$7?-$Y$J$$$H87$7$=$&$G$9!#e(B

e$B$=$l$G$O!#e(B

---

<div class="post-metadata">

**Author:** ![Nebata](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/958977/32.png) [@Nebata](https://www.ruby-forum.com/u/Nebata)\
**Post date:** [June 29, 2007, 11:07am UTC](https://www.ruby-forum.com/t/make-error-at-bcc32/107827/3 "2007-06-29T11:07:55Z")

</div>

07/06/26 e$B$Ke(B Nebata[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) e$B$5$s$O=q$-$^$7$?e(B:

> MAKE Version 5.2 Copyright (c) 1987, 2000 Borland  
> Error .[//common.mk](https://common.mk) 615: Redefinition of target ‘opt\_sc.inc’  
> Error .[//common.mk](https://common.mk) 615: Redefinition of target ‘optinsn.inc’  
> Error .[//common.mk](https://common.mk) 615: Redefinition of target ‘optunifs.inc’  
> Error .[//common.mk](https://common.mk) 615: Redefinition of target ‘insns.inc’  
> Error .[//common.mk](https://common.mk) 615: Redefinition of target ‘vmtc.inc’  
> \*\*\* 5 errors during make \*\*\*

[http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-dev/27460?27417-28049](http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-dev/27460?27417-28049)  
e$B$K$h$k$H!"J#?t%?!\<%2%C%H$HC1FH%?!\<%2%C%H$N=g=x$NLdBj$N$h$&$G$9$M!#e(B

---- e$B$3$3$+$ie(B  
— [common.mk.ORG](http://common.mk.ORG) 2007-06-29 15:34:06.000000000 +0900  
+++ common.mk 2007-06-29 17:38:16.000000000 +0900  
@@ -595,6 +595,10 @@

INSNS2VMOPT = --srcdir=“$(srcdir)”

+$(INSNS): $(srcdir)/insns.def {$(VPATH)}vm\_opts.h

- $(RM) $(PROGRAM)
- $(BASERUBY) $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT)
- 

minsns.inc: $(srcdir)/template/minsns.inc.tmpl

opt\_sc.inc: $(srcdir)/template/opt\_sc.inc.tmpl  
@@ -611,10 +615,6 @@

vm.inc: $(srcdir)/template/vm.inc.tmpl

-$(INSNS): $(srcdir)/insns.def {$(VPATH)}vm\_opts.h

- $(RM) $(PROGRAM)
- $(BASERUBY) $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT)
- 

incs: $(INSNS)

docs:  
---- e$B$3$3$^$Ge(B

e$B\>e5-%Q%C%A$G!"!Ve(BRedefinition of  
targete$B!W%(%i!\<$O=P$J$/$J$j$^$9$,!"e(B  
e$B:#EY$O2\<5-$N%(%i!\<$,=P$^$9!#e(B  
e$B%X%C%@!\<%U%!%$%k$N3JG\<@h$,JQ$o$C$F$k$N$G!"e(BVPATH  
e$B$H$+?'!9JQ99$7$J$$$He(B  
e$B$$$1$J$$$h$&$G$9$M!#e(B

Fatal: ‘.\ruby.h’ does not exist - don’t know how to make it

> bcc32 e$B$r;H$C$F$$$k$N$O\>/?tGI$@$H;W$$$^$9$,!"0&$N\<j$r!#e(B

# e$BIaCJ$O;H$o$J$$$N$G$9$1$I!“%$%s%9%H!\<%k$7$F$”$C$?$N$Ge(B

# e$B$A$g$C$H$@$1;n$7$F$\_$^$7$?!#e(B

---

<div class="post-metadata">

**Author:** ![Nebata](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/958977/32.png) [@Nebata](https://www.ruby-forum.com/u/Nebata)\
**Post date:** [June 30, 2007, 8:54am UTC](https://www.ruby-forum.com/t/make-error-at-bcc32/107827/4 "2007-06-30T08:54:00Z")

</div>

e$B!!\>.@\>e(B e$B90\>-$G$9!#e(B

> e$B8x\<0$K$O%a%s%F%J$O\>.@\>$5$s$J$N$G$9$,!"$\*K;$7$$$i$7$/H?1~$,$:e(B  
> e$B$C$H$"$j$^$;$s$M!#e(B  
> e$BB\>$Ne(BWindowse$BHG%a%s%F%J$N4V$G$O!V$b$&e(Bbcc32e$BHG%5%]!\<%H$OBG$A@Z$ie(B  
> e$B$6$k$rF@$J$$!W$H$$$&0U8+$b$"$j$^$9!#e(B
> 
> e$B$H$$$&$o$1$G!“4D6-$r;}$C$F$F%3%s%Q%$%k$9$k5$NO$,$”$k?M$,0&$Ne(B  
> e$B\<j$r:9$7?-$Y$J$$$H87$7$=$&$G$9!#e(B  
> e$B%a!\<%k\<+BN$O$\_$F$$$k$N$G$9$,!":G6a$NJQ99$K$D$$$F9T$1$J$$$3$H$H!"\<B:]$^$He(B  
> e$B$^$C$?;~4V$,$H$l$J$$\>uBV$K$"$j$^$9!#e(B  
> e$B0JA0$K$b!"%5%]!\<%H$N$_OC$,$"$j$^$7$?$,!"@5D\>%a%s%F$rB3$1$i$l$J$$$N$G!"$Ie(B  
> e$B$J$?$+%a%s%F%J$rJQ$o$C$F$$$?$@$1$J$$$N$G$"$l$P!"8x\<0E_$K$Oe(Bbcce$BBP1~$O$J$7e(B  
> e$B$H$$$&$3$H$G;EJ}$,$J$$$H;W$$$^$9!#e(B  
> e$B?46l$7$$$G$9$,!"$=$N$h$&$K$\*4j$$$7$^$9!#e(B

#e$B!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!Ae(B

# e$B\>.@\>e(B e$B90\>-e(B ( KONISHI Hiromasa )

# removed\_email\_address@domain.invalid

#e$B!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!Ae(B

---

<div class="post-metadata">

**Author:** ![Nebata](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/958977/32.png) [@Nebata](https://www.ruby-forum.com/u/Nebata)\
**Post date:** [June 30, 2007, 3:52pm UTC](https://www.ruby-forum.com/t/make-error-at-bcc32/107827/5 "2007-06-30T15:52:29Z")

</div>

e$B$M$P$?$G$9!#e(B  
e$B\>.@\>$5$s$O$8$a!“3’$5$sJ}!”$$$m$$$m$H$"$j$,$H$&$4$6$$$^$7$?!#e(B  
e$B\<+NO$G2r7h$9$Y$/$,$s$P$C$F$\_$^$9!#e(B  
e$B$=$l$H$b!“e(Bbcc32 e$B$O!”$"$-$i$a$h$&$+$J!#e(B

ruby e$B$O!"$\_$J$5$s$NEXNO$N$\*$+$2$GMxMQ$5$;$Fe(B  
e$B$$$?$@$$$F$$$k$N$G$9$,!"2~$a$F!"46\<U$7$^$9!#e(B

e$B$J$K$+H=$l$P!"$\*CN$i$;$7$^$9!#e(B

---

<div class="post-metadata">

**Author:** ![Nebata](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/958977/32.png) [@Nebata](https://www.ruby-forum.com/u/Nebata)\
**Post date:** [July 3, 2007, 5:46pm UTC](https://www.ruby-forum.com/t/make-error-at-bcc32/107827/6 "2007-07-03T17:46:52Z")

</div>

e$B$M$P$?$G$9!#e(B  
e$B$J$+$@$5$s!"$o$6$o$6D4::$"$j$,$H$&$4$6$$$^$9!#$5$9$,Aa$$$G$9$M!#e(B

> bcc 5.82e$B$G$be(BC89e$BL$BP1~e(B(e$B\<B9T;~$NCM$G9=B$BN$NMWAG$r=i4|2=$G$-$J$$e(B)  
> e$B$H$$$&$H$3$m$G!"$[$$d$k5$$,\<:$;$F$7$^$$$^$7$?!#e(B

e$B%U%j!\<$Ne(BVisiual C++Express Edition e$B$,=P$?$N$K!“e(Bbcc32  
e$B$r!”$b$N$0$5$G!"$:$C$He(B  
e$B;H$C$F$-$^$7$?$,!“e(B  
1.9 e$B$G$O!”\>e5-M}M3$K$h$j7hJL$9$k$3$H$K$7$^$7$?!#e(B  
e$B$G$b!"e(Bruby 1.8.x e$B$G$O!"LdBj$J$5$=$&$J$N$G$=$N$^$^;H$$$^$9!#e(B

e$BB\>$Ke(B bcc32 e$B%f!\<%6!\<$O$$$J$$$N$G$7$g$&$+!#e(Bruby 1.9  
e$B0J9\_$G$O!“e(B  
Windowse$B7O$G$O!”$9$Y$Fe(Bwin32 e$B$K$J$C$?$H$$$&$3$H$i$7$$$G$9$M!#e(B  
e$B%a%s%F%J$N8uJd\<T$b$$$J$$$h$&$G$9$N$G!“e(B1.9 e$B$Ne(B bcc32  
e$B$O!”$4NW=\*$HH=CG$7$^$7e(B  
e$B$?!#e(B

## e$B$_\<j?t$r$_$+$1$7$^$7$?!#e(B

---

<div class="post-metadata">

**Author:** ![Nebata](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/958977/32.png) [@Nebata](https://www.ruby-forum.com/u/Nebata)\
**Post date:** [July 2, 2007, 5:23am UTC](https://www.ruby-forum.com/t/make-error-at-bcc32/107827/7 "2007-07-02T05:23:44Z")

</div>

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

At Fri, 29 Jun 2007 18:07:23 +0900,  
pegacorn wrote in [ruby-dev:31092]:

> [http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-dev/27460?27417-28049](http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-dev/27460?27417-28049)  
> e$B$K$h$k$H!"J#?t%?!\<%2%C%H$HC1FH%?!\<%2%C%H$N=g=x$NLdBj$N$h$&$G$9$M!#e(B

e$B$h$/$=$s$J$N$r8+IU$1$^$7$?$M!#=q$$$?Ev?M$b$9$C$+$jK:$l$F$$$?$He(B  
e$B$$$&!#e(B

> e$B\>e5-%Q%C%A$G!"!Ve(BRedefinition of targete$B!W%(%i!\<$O=P$J$/$J$j$^$9$,!"e(B  
> e$B:#EY$O2\<5-$N%(%i!\<$,=P$^$9!#e(B  
> e$B%X%C%@!\<%U%!%$%k$N3JG\<@h$,JQ$o$C$F$k$N$G!"e(BVPATH e$B$H$+?'!9JQ99$7$J$$$He(B  
> e$B$$$1$J$$$h$&$G$9$M!#e(B
> 
> Fatal: ‘.\ruby.h’ does not exist - don’t know how to make it

e$B$H$j$"$($:%3%s%Q%$%k$^$GDL$k$h$&$K$O$7$F$\_$^$7$?$,!“8+;v$Ke(BSEGV  
e$B$7$^$7$?!#e(Bgdbe$B$@$H$[$H$s$I\>pJs$,=P$J$$$N$G$9$,!”%P%C%/%H%l!\<%9$+e(B  
e$B$i$9$k$H!"54\<V$N%P%0$rF’$s$G$$$k$+!"5U$K54\<V$,e(Bbcce$B$N%P%0$r$D$$$Fe(B  
e$B$$$k$h$&$J46$8$G$7$?!#e(B

> > bcc32 e$B$r;H$C$F$$$k$N$O\>/?tGI$@$H;W$$$^$9$,!"0&$N\<j$r!#e(B
> 
> # e$BIaCJ$O;H$o$J$$$N$G$9$1$I!“%$%s%9%H!\<%k$7$F$”$C$?$N$Ge(B
> 
> # e$B$A$g$C$H$@$1;n$7$F$\_$^$7$?!#e(B

bcc  
5.82e$B$G$be(BC89e$BL$BP1~e(B(e$B\<B9T;~$NCM$G9=B$BN$NMWAG$r=i4|2=$G$-$J$$e(B)  
e$B$H$$$&$H$3$m$G!"$[$$d$k5$$,\<:$;$F$7$^$$$^$7$?!#e(B

# Index: bcc32/Makefile.sub

— bcc32/Makefile.sub (revision 12670)  
+++ bcc32/Makefile.sub (working copy)  
@@ -8,4 +8,6 @@ OS = bccwin32  
RT = $(OS)

+arch = $(ARCH)-$(OS)  
+

## variables may be overridden by $(compile\_dir)/Makefile

!ifndef srcdir  
@@ -37,5 +39,4 @@ iconinc=-I$(icondirs: = -I)  
###############

-VPATH = $(srcdir):$(srcdir)/missing  
.SUFFIXES: .y

@@ -143,5 +144,5 @@ STACK = 0x2000000  
!endif

-XCFLAGS = -DRUBY\_EXPORT -I. -I$(srcdir) -I$(srcdir)missing  
+XCFLAGS = -DRUBY\_EXPORT -I. -I$(arch\_hdrdir) -I$(hdrdir) -I$(srcdir)  
-I$(srcdir)missing

ARFLAGS = /a  
@@ -177,5 +178,5 @@ PREP = miniruby$(EXEEXT)

OBJEXT = obj  
-OBJEXT = asm  
+ASMEXT = asm

INSTALLED\_LIST= .installed.list  
@@ -184,6 +185,13 @@ WINMAINOBJ = winmain.$(OBJEXT)  
MINIOBJS = dmydln.$(OBJEXT)

+arch\_hdrdir = $(EXTOUT)/include/$(arch)  
+hdrdir = $(srcdir)include  
+VPATH =  
$(arch\_hdrdir)/ruby;$(hdrdir)/ruby;$(srcdir);$(srcdir)missing;$(srcdir)win32  
+  
.path.c = .;$(srcdir);$(srcdir)win32;$(srcdir)missing  
-.path.h = .;$(srcdir);$(srcdir)win32;$(srcdir)missing  
+.path.ci = $(srcdir)  
+.path.inc = .;$(srcdir)  
+.path.def = .;$(srcdir)  
+.path.h =  
.;$(arch\_hdrdir)/ruby;$(hdrdir)/ruby;$(srcdir);$(srcdir)win32;$(srcdir)missing  
.path.y = $(srcdir)  
.path. = $(srcdir)  
@@ -212,4 +220,5 @@ rubyw: $(WPROGRAM)  
PHONY: Makefile

+RUBY\_CONFIG\_H = $(arch\_hdrdir)/ruby/config.h  
CONFIG\_H = ./.config.h.time

@@ -219,5 +228,5 @@ config.status: $(CONFIG\_H)

$(CONFIG\_H): $(MKFILES) $(srcdir)bcc32/Makefile.sub

- @$(srcdir:/=)win32\ifchange.bat config.h &&|

- @$(srcdir:/=)win32\ifchange.bat $(RUBY\_CONFIG\_H:/=) &&|  
#define HAVE\_SYS\_TYPES\_H 1  
#define HAVE\_SYS\_STAT\_H 1  
@@ -455,4 +464,7 @@ $(RUBY\_INSTALL\_NAME).rc $(RUBYW\_INSTALL\_  
. $(icondirs) $(srcdir)win32

+lex.c: {$(srcdir)}lex.c.blt

- copy “$(?:/=)” $@
- 

# post-install-bin:: @$(NULLCMD) Index: common.mk

— common.mk (revision 12670)  
+++ common.mk (working copy)  
@@ -514,5 +514,5 @@ sprintf.$(OBJEXT): {$(VPATH)}sprintf.c {  
{$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h   
{$(VPATH)}re.h {$(VPATH)}regex.h {$(VPATH)}oniguruma.h \

- {$(VPATH)}missing/vsnprintf.c

- {$(VPATH)}vsnprintf.c  
st.$(OBJEXT): {$(VPATH)}st.c {$(VPATH)}config.h {$(VPATH)}st.h  
{$(VPATH)}defines.h  
string.$(OBJEXT): {$(VPATH)}string.c {$(VPATH)}ruby.h  
{$(VPATH)}config.h   
@@ -596,4 +596,8 @@ INSNS = opt\_sc.inc optinsn.inc optunifs.  
INSNS2VMOPT = --srcdir=“$(srcdir)”

+$(INSNS): $(srcdir)/insns.def {$(VPATH)}vm\_opts.h

- $(RM) $(PROGRAM)
- $(BASERUBY) -C $(srcdir) tool/insns2vm.rb $(INSNS2VMOPT)
- 

minsns.inc: $(srcdir)/template/minsns.inc.tmpl

@@ -612,9 +616,5 @@ vmtc.inc: $(srcdir)/template/vmtc.inc.tm  
vm.inc: $(srcdir)/template/vm.inc.tmpl

-$(INSNS): $(srcdir)/insns.def {$(VPATH)}vm\_opts.h

- $(RM) $(PROGRAM)
- $(BASERUBY) $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT)
- 

-incs: $(INSNS)  
+incs: $(INSNS) $(REVISION\_UP)

# docs: Index: compile.c

— compile.c (revision 12670)  
+++ compile.c (working copy)  
@@ -37,4 +37,10 @@ VALUE iseq\_load(VALUE self, VALUE data,  
#define ISEQ\_ELEMENT\_SEQ INT2FIX(0x03)

+#define DECL\_ANCHOR(name) \

- LINK\_ANCHOR name##_body_\_ = {{0,},}; \
- LINK\_ANCHOR \*name = & name##_body_\_  
+#define INIT\_ANCHOR(name) \
- name##_body_\_.last = &name##_body_\_.anchor
- 

typedef struct iseq\_link\_element {  
int type;  
@@ -139,4 +145,5 @@ rb\_iseq\_compile(VALUE self, NODE \*node)  
DECL\_ANCHOR(ret);  
rb\_iseq\_t \*iseq;

- INIT\_ANCHOR(ret);  
GetISeqPtr(self, iseq);

@@ -1831,4 +1838,5 @@ compile\_array(rb\_iseq\_t \*iseq,  
DECL\_ANCHOR(anchor);

- INIT\_ANCHOR(anchor);  
while (node) {  
if (nd\_type(node) != NODE\_ARRAY) {  
@@ -1939,4 +1947,5 @@ make\_masgn\_lhs(rb\_iseq\_t \*iseq, LINK\_ANC  
default: {  
DECL\_ANCHOR(anchor);

- INIT\_ANCHOR(anchor);  
COMPILE\_POPED(anchor, “masgn lhs”, node);  
/\* dump\_disasm\_list(FIRST\_ELEMENT(anchor)); \*/  
@@ -2048,4 +2057,5 @@ compile\_massign(rb\_iseq\_t \*iseq, LINK\_AN  
DECL\_ANCHOR(lhs);

- 

```
   INIT_ANCHOR(lhs);
   COMPILE_POPED(lhs, "post", n->nd_head);
   REMOVE_ELEM(FIRST_ELEMENT(lhs));

```

@@ -2403,4 +2413,5 @@ add\_ensure\_iseq(LINK\_ANCHOR \*ret, rb\_ise  
DECL\_ANCHOR(ensure);

- INIT\_ANCHOR(ensure);  
while (enlp) {  
DECL\_ANCHOR(ensure\_part);  
@@ -2450,4 +2461,5 @@ setup\_args(rb\_iseq\_t \*iseq, LINK\_ANCHOR  
DECL\_ANCHOR(tmp);

- 

```
 INIT_ANCHOR(tmp);
 COMPILE(tmp, "args (cat: splat)", argn->nd_body);
 if (next_is_array && nsplat == 0) {

```

@@ -2585,4 +2597,7 @@ iseq\_compile\_each(rb\_iseq\_t \*iseq, LINK\_  
VALUE special\_literals = rb\_ary\_new();

- INIT\_ANCHOR(head);

- INIT\_ANCHOR(body\_seq);

- INIT\_ANCHOR(cond\_seq);  
if (node-\>nd\_head == 0) {  
COMPILE\_(ret, “when”, node-\>nd\_body, poped);  
@@ -2680,4 +2695,5 @@ iseq\_compile\_each(rb\_iseq\_t \*iseq, LINK\_  
DECL\_ANCHOR(body\_seq);

- INIT\_ANCHOR(body\_seq);  
endlabel = NEW\_LABEL(nd\_line(node));

@@ -3060,12 +3076,14 @@ iseq\_compile\_each(rb\_iseq\_t \*iseq, LINK\_  
LABEL \*lend = NEW\_LABEL(nd\_line(node));  
LABEL \*lcont = NEW\_LABEL(nd\_line(node));

- struct ensure\_range er = { lstart, lend, 0 };
- struct iseq\_compile\_data\_ensure\_node\_stack enl = {
- 

```
 node->nd_ensr,

```

- 

```
 iseq->compile_data->ensure_node_stack, /* prev */

```

- 

```
 &er,

```

- };

- struct ensure\_range er = { 0 };

- struct iseq\_compile\_data\_ensure\_node\_stack enl;  
struct ensure\_range \*erange;

- INIT\_ANCHOR(ensr);

- er.begin = lstart;

- er.end = lend;

- enl.ensure\_node = node-\>nd\_ensr;

- enl.prev = iseq-\>compile\_data-\>ensure\_node\_stack; /\* prev \*/

- enl.erange = &er;  
COMPILE\_POPED(ensr, “ensure ensr”, node-\>nd\_ensr);

@@ -3241,4 +3259,5 @@ iseq\_compile\_each(rb\_iseq\_t \*iseq, LINK\_  
\*/

- INIT\_ANCHOR(args);  
COMPILE(ret, “NODE\_OP\_ASGN1 recv”, node-\>nd\_recv);  
argc = compile\_array(iseq, args, node-\>nd\_args-\>nd\_body, Qfalse);  
@@ -3433,4 +3452,6 @@ iseq\_compile\_each(rb\_iseq\_t \*iseq, LINK\_  
iseq-\>compile\_data-\>current\_block = Qfalse;

- INIT\_ANCHOR(recv);

- INIT\_ANCHOR(args);  
#if SUPPORT\_JOKE  
if (nd\_type(node) == NODE\_VCALL) {  
@@ -3528,6 +3549,7 @@ iseq\_compile\_each(rb\_iseq\_t \*iseq, LINK\_  
unsigned long flag = 0;  
VALUE parent\_block = iseq-\>compile\_data-\>current\_block;

- iseq-\>compile\_data-\>current\_block = Qfalse;

- INIT\_ANCHOR(args);

- iseq-\>compile\_data-\>current\_block = Qfalse;  
if (nd\_type(node) == NODE\_SUPER) {  
argc = setup\_args(iseq, args, node-\>nd\_args, &flag);  
@@ -3635,4 +3657,5 @@ iseq\_compile\_each(rb\_iseq\_t \*iseq, LINK\_  
int type = node-\>nd\_head ? nd\_type(node-\>nd\_head) : NODE\_ZARRAY;

- INIT\_ANCHOR(list);  
switch (type) {  
case NODE\_ARRAY:{  
@@ -3692,4 +3715,5 @@ iseq\_compile\_each(rb\_iseq\_t \*iseq, LINK\_  
unsigned long flag = 0;

- INIT\_ANCHOR(args);  
if (iseq-\>type == ISEQ\_TYPE\_TOP || iseq-\>type == ISEQ\_TYPE\_CLASS) {  
COMPILE\_ERROR((“Illegal yield”));  
@@ -3801,4 +3825,6 @@ iseq\_compile\_each(rb\_iseq\_t \*iseq, LINK\_  
DECL\_ANCHOR(val);

- INIT\_ANCHOR(recv);

- INIT\_ANCHOR(val);  
switch(nd\_type(node)) {  
case NODE\_MATCH:  
@@ -4065,4 +4091,6 @@ iseq\_compile\_each(rb\_iseq\_t \*iseq, LINK\_  
DECL\_ANCHOR(body);

- 

```
 INIT_ANCHOR(pref);

```

- 

```
 INIT_ANCHOR(body);
 compile_colon2(iseq, node, pref, body);
 if (LIST_SIZE_ZERO(pref)) {

```

@@ -4259,4 +4287,6 @@ iseq\_compile\_each(rb\_iseq\_t \*iseq, LINK\_  
VALUE argc;

- INIT\_ANCHOR(recv);
- INIT\_ANCHOR(args);  
argc = setup\_args(iseq, args, node-\>nd\_args, &flag);

@@ -4689,4 +4719,5 @@ iseq\_build\_from\_ary(rb\_iseq\_t \*iseq, VAL  
DECL\_ANCHOR(anchor);

- INIT\_ANCHOR(anchor);  
if (iseq-\>type == ISEQ\_TYPE\_METHOD ||  
iseq-\>type == ISEQ\_TYPE\_TOP ||  
Index: compile.h  
===================================================================  
— compile.h (revision 12670)  
+++ compile.h (working copy)  
@@ -210,7 +210,3 @@ r\_value(VALUE value)  
#define COMPILE\_NG 0

-#define DECL\_ANCHOR(name) \

- LINK\_ANCHOR name##_body_\_ = {{0,}, &name##_body_\_.anchor}; \
- LINK\_ANCHOR \*name = & name##_body_\_
- 

# #endif /\* RUBY\_COMPILE\_H \*/ Index: eval.c

— eval.c (revision 12670)  
+++ eval.c (working copy)  
@@ -1158,7 +1158,7 @@ rb\_protect(VALUE (\*proc) (VALUE), VALUE  
rb\_thread\_t \*th = GET\_THREAD();  
rb\_control\_frame\_t \*cfp = th-\>cfp;

- struct rb\_vm\_trap\_tag trap\_tag = {
- th-\>trap\_tag,
- };

- struct rb\_vm\_trap\_tag trap\_tag;

- 
- trap\_tag.prev = th-\>trap\_tag;

- struct thgroup\_list\_params param = {
- ary, group,
- };

- struct thgroup\_list\_params param;
- 
- param.ary = ary;
- param.group = group;  
st\_foreach(GET\_THREAD()-\>vm-\>living\_threads, thgroup\_list\_i,  
(st\_data\_t) & param);  
return ary;  
@@ -2805,5 +2806,11 @@ static void  
call\_trace\_func(rb\_event\_flag\_t event, VALUE proc, VALUE self, ID id,  
VALUE klass)  
{

- struct call\_trace\_func\_args args = {event, proc, self, id, klass};

- struct call\_trace\_func\_args args;
- 
- args.event = event;
- args.proc = proc;
- args.self = self;
- args.id = id;
- args.klass = klass;  
ruby\_suppress\_tracing(call\_trace\_proc, (VALUE)&args);  
}  
svn: ‘thread.c~’ is not under version control  
Index: thread\_win32.ci  
===================================================================  
— thread\_win32.ci (revision 12670)  
+++ thread\_win32.ci (working copy)  
@@ -141,8 +141,18 @@ w32\_resume\_thread(HANDLE handle)  
}

+#ifdef **BORLANDC**  
+#undef HAVE\_\_BEGINTHREADEX  
+#define start\_thread CreateThread  
+typedef LPTHREAD\_START\_ROUTINE w32\_thread\_start\_func;  
+#else  
+#define HAVE\_\_BEGINTHREADEX 1  
+#define start\_thread (HANDLE)\_beginthreadex  
+typedef unsigned long (\_stdcall _w32\_thread\_start\_func)(void_);  
+#endif  
+  
static HANDLE  
-w32\_create\_thread(DWORD stack\_size, void \*func, void \*val)  
+w32\_create\_thread(DWORD stack\_size, w32\_thread\_start\_func func, void  
\*val)  
{

- return (HANDLE)\_beginthreadex(0, stack\_size, func, val,  
CREATE\_SUSPENDED, 0);

- return start\_thread(0, stack\_size, func, val, CREATE\_SUSPENDED, 0);  
}

@@ -293,5 +303,5 @@ native\_thread\_destroy(rb\_thread\_t \*th)  
}

-static unsigned int \_stdcall  
+static unsigned long \_stdcall  
thread\_start\_func\_1(void \*th\_ptr)  
{  
@@ -368,5 +378,5 @@ static void timer\_thread\_function(void);  
static HANDLE timer\_thread\_id = 0;

# -static unsigned int \_stdcall +static unsigned long \_stdcall timer\_thread\_func(void \*dummy) { Index: vm.c

— vm.c (revision 12670)  
+++ vm.c (working copy)  
@@ -995,34 +995,28 @@ void  
yarv\_init\_redefined\_flag(void)  
{

- const VALUE register\_info[] = {
- idPLUS, BOP\_PLUS, rb\_cFixnum, rb\_cFloat, rb\_cString, rb\_cArray, 0,
- idMINUS, BOP\_MINUS, rb\_cFixnum, 0,
- idMULT, BOP\_MULT, rb\_cFixnum, rb\_cFloat, 0,
- idDIV, BOP\_DIV, rb\_cFixnum, rb\_cFloat, 0,
- idMOD, BOP\_MOD, rb\_cFixnum, rb\_cFloat, 0,
- idEq, BOP\_EQ, rb\_cFixnum, rb\_cFloat, rb\_cString, 0,
- idLT, BOP\_LT, rb\_cFixnum, 0,
- idLE, BOP\_LE, rb\_cFixnum, 0,
- idLTLT, BOP\_LTLT, rb\_cString, rb\_cArray, 0,
- idAREF, BOP\_AREF, rb\_cArray, rb\_cHash, 0,
- idASET, BOP\_ASET, rb\_cArray, rb\_cHash, 0,
- idLength, BOP\_LENGTH, rb\_cArray, rb\_cString, rb\_cHash, 0,
- idSucc, BOP\_SUCC, rb\_cFixnum, rb\_cString, rb\_cTime, 0,
- idGT, BOP\_GT, rb\_cFixnum, 0,
- idGE, BOP\_GE, rb\_cFixnum, 0,
- 0,
- };
- const VALUE \*ptr = register\_info;

- ID mid;
- VALUE bop;
- vm\_opt\_method\_table = st\_init\_numtable();

- while (\*ptr) {
- ID mid = \*ptr++;
- VALUE bop = \*ptr++;
- while(\*ptr) {
- 

```
 VALUE klass = *ptr++;

```

- 

```
 add_opt_method(klass, mid, bop);

```

- }
- ptr++;
- }  
+#define OP(mid\_, bop\_) (mid = id##mid\_, bop = BOP\_##bop\_)  
+#define C(k) add\_opt\_method(rb\_c##k, mid, bop)

- OP(PLUS, PLUS), (C(Fixnum), C(Float), C(String), C(Array));
- OP(MINUS, MINUS), (C(Fixnum));
- OP(MULT, MULT), (C(Fixnum), C(Float));
- OP(DIV, DIV), (C(Fixnum), C(Float));
- OP(MOD, MOD), (C(Fixnum), C(Float));
- OP(Eq, EQ), (C(Fixnum), C(Float), C(String));
- OP(LT, LT), (C(Fixnum));
- OP(LE, LE), (C(Fixnum));
- OP(LTLT, LTLT), (C(String), C(Array));
- OP(AREF, AREF), (C(Array), C(Hash));
- OP(ASET, ASET), (C(Array), C(Hash));
- OP(Length, LENGTH), (C(Array), C(String), C(Hash));
- OP(Succ, SUCC), (C(Fixnum), C(String), C(Time));
- OP(GT, GT), (C(Fixnum));
- OP(GE, GE), (C(Fixnum));  
+#undef C  
+#undef OP  
}
