Make error at bcc32

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 615: Redefinition of target ‘opt_sc.inc’
Error .//common.mk 615: Redefinition of target ‘optinsn.inc’
Error .//common.mk 615: Redefinition of target ‘optunifs.inc’
Error .//common.mk 615: Redefinition of target ‘insns.inc’
Error .//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


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, [email protected] 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

07/06/26 e$B$Ke(B Nebata[email protected] e$B$5$s$O=q$-$^$7$?e(B:

MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
Error .//common.mk 615: Redefinition of target ‘opt_sc.inc’
Error .//common.mk 615: Redefinition of target ‘optinsn.inc’
Error .//common.mk 615: Redefinition of target ‘optunifs.inc’
Error .//common.mk 615: Redefinition of target ‘insns.inc’
Error .//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
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 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

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 )

[email protected]

#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$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

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

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
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;

    PUSH_TAG();
    Index: thread.c
    ===================================================================
    — thread.c (revision 12670)
    +++ thread.c (working copy)
    @@ -1961,7 +1961,8 @@ thgroup_list(VALUE group)
    {
    VALUE ary = rb_ary_new();

  • 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
    }