[#10853] Why limit class def to a constant or colon node? — Charles Oliver Nutter <charles.nutter@...>

Is there a historical reason why I can't do something like these:

12 messages 2007/04/03

[#10933] Cannot build with extra library path if previous version already installed — <noreply@...>

Bugs item #10140, was opened at 2007-04-16 17:32

10 messages 2007/04/16
[#10934] Re: [ ruby-Bugs-10140 ] Cannot build with extra library path if previous version already installed — nobu@... 2007/04/16

Hi,

[#10960] Re: [ ruby-Bugs-10140 ] Cannot build with extra library path if previous version already installed — "Michal Suchanek" <hramrach@...> 2007/04/18

On 4/16/07, nobu@ruby-lang.org <nobu@ruby-lang.org> wrote:

[#10967] Re: [ ruby-Bugs-10140 ] Cannot build with extra library path if previous version already installed — Nobuyoshi Nakada <nobu@...> 2007/04/19

Hi,

[#10970] Re: [ ruby-Bugs-10140 ] Cannot build with extra library path if previous version already installed — "Michal Suchanek" <hramrach@...> 2007/04/19

On 4/19/07, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:> Hi,>> At Wed, 18 Apr 2007 20:21:44 +0900,> Michal Suchanek wrote in [ruby-core:10960]:> > Yes. And this should also apply to extensions. The mkmf tests are now> > fine but the extension is linked with -L/sw/lib before -L../..>> Indeed.>>> Index: configure.in> ===================================================================> --- configure.in (revision 12191)> +++ configure.in (working copy)> @@ -1385,5 +1385,4 @@ if test "$enable_rpath" = yes; then> fi>> -LDFLAGS="-L. $LDFLAGS"> AC_SUBST(ARCHFILE)>This would break the previous fix so I did not even try to apply this ^

[#11003] miniruby loads extensions from already installed ruby — <noreply@...>

Bugs item #10303, was opened at 2007-04-23 10:44

10 messages 2007/04/23

[#11025] gsub with backslash characters in replacement string — "Adam Bozanich" <adam.boz@...>

Hello, spotted this one the other day:

10 messages 2007/04/26

Re: defined? operator changed in ruby 1.9: bug or feature?

From: David Flanagan <david@...>
Date: 2007-04-05 05:46:18 UTC
List: ruby-core #10872
Thanks for the quick response and patch!

	David

Nobuyoshi Nakada wrote:
> Hi,
> 
> At Thu, 5 Apr 2007 08:51:10 +0900,
> David Flanagan wrote in [ruby-core:10867]:
>> The behavior of the defined? operator is different in current ruby 1.9 
>> snapshots than it is in 1.8.5.  Anyone know whether this is a bug or a 
>> feature?
> 
> Bug.
> 
> 
> Index: compile.c
> ===================================================================
> --- compile.c	(revision 12147)
> +++ compile.c	(working copy)
> @@ -2049,6 +2049,29 @@ defined_expr(rb_iseq_t *iseq, LINK_ANCHO
>  	estr = "false";
>  	break;
> +
> +      case NODE_ARRAY:{
> +	LABEL *lfalse = NULL;
> +	NODE *vals = node;
> +
> +	do {
> +	    NODE *val = vals->nd_head;
> +	    defined_expr(iseq, ret, vals->nd_head, lfinish, Qfalse);
> +	    if (lfalse) {
> +		ADD_INSNL(ret, nd_line(node), branchunless, lfalse);
> +	    }
> +	    else {
> +		LABEL *lcont = NEW_LABEL(nd_line(node));
> +		ADD_INSNL(ret, nd_line(node), branchif, lcont);
> +		lfalse = NEW_LABEL(nd_line(node));
> +		ADD_LABEL(ret, lfalse);
> +		ADD_INSN(ret, nd_line(node), putnil);
> +		ADD_INSNL(ret, nd_line(node), jump, lfinish);
> +		ADD_LABEL(ret, lcont);
> +	    }
> +	} while (vals = vals->nd_next);
> +      }
>        case NODE_STR:
>        case NODE_LIT:
> +      case NODE_ZARRAY:
>  	estr = "expression";
>  	break;
> @@ -2121,9 +2144,28 @@ defined_expr(rb_iseq_t *iseq, LINK_ANCHO
>        case NODE_VCALL:
>        case NODE_FCALL:
> -	if (nd_type(node) == NODE_CALL) {
> +      case NODE_ATTRASGN:{
> +	LABEL *lfalse = NULL;
> +	int self = Qtrue;
> +
> +	switch (nd_type(node)) {
> +	  case NODE_ATTRASGN:
> +	    lfalse = NEW_LABEL(nd_line(node));
> +	    defined_expr(iseq, ret, node->nd_args, lfinish, Qfalse);
> +	    if (node->nd_recv == (NODE *)1) break;
> +	  case NODE_CALL:
> +	    self = Qfalse;
> +	    break;
> +	}
> +	if (!self) {
>  	    LABEL *lcont = NEW_LABEL(nd_line(node));
>  
> +	    if (lfalse) {
> +		ADD_INSNL(ret, nd_line(node), branchunless, lfalse);
> +	    }
>  	    defined_expr(iseq, ret, node->nd_recv, lfinish, Qfalse);
>  	    ADD_INSNL(ret, nd_line(node), branchif, lcont) ;
> +	    if (lfalse) {
> +		ADD_LABEL(ret, lfalse);
> +	    }
>  	    ADD_INSN(ret, nd_line(node), putnil);
>  	    ADD_INSNL(ret, nd_line(node), jump, lfinish);
> @@ -2138,6 +2180,14 @@ defined_expr(rb_iseq_t *iseq, LINK_ANCHO
>  	    ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_FUNC),
>  		      ID2SYM(node->nd_mid), needstr);
> +	    if (lfalse) {
> +		ADD_INSNL(ret, nd_line(node), branchif, lfinish);
> +
> +		ADD_LABEL(ret, lfalse);
> +		ADD_INSN(ret, nd_line(node), putnil);
> +		ADD_INSNL(ret, nd_line(node), jump, lfinish);
> +	    }
>  	}
>  	return 1;
> +      }
>  
>        case NODE_YIELD:
> @@ -2159,4 +2209,18 @@ defined_expr(rb_iseq_t *iseq, LINK_ANCHO
>  	return 1;
>  
> +      case NODE_OP_ASGN1:
> +      case NODE_OP_ASGN2:
> +      case NODE_MASGN:
> +      case NODE_LASGN:
> +      case NODE_DASGN:
> +      case NODE_DASGN_CURR:
> +      case NODE_GASGN:
> +      case NODE_IASGN:
> +      case NODE_CDECL:
> +      case NODE_CVDECL:
> +      case NODE_CVASGN:
> +	estr = "assignment";
> +	break;
> +
>        default:{
>  	  LABEL *lstart = NEW_LABEL(nd_line(node));
> @@ -2179,5 +2243,5 @@ defined_expr(rb_iseq_t *iseq, LINK_ANCHO
>  	  ADD_INSNL(ret, nd_line(node), jump, lend);
>  	  ADD_LABEL(ret, ldefed);
> -	  ADD_INSN1(ret, nd_line(node), putobject, str);
> +	ADD_INSN1(ret, nd_line(node), putstring, str);
>  	  ADD_LABEL(ret, lend);
>  
> 
> 


In This Thread