[#10830] New kill_thread function in eval.c conflict with a BeOS system function — <noreply@...>
Bugs item #9736, was opened at 01/04/2007 16:20
[#10834] Hefty patch for mkmf.rb — <noreply@...>
Patches item #9762, was opened at 2007-04-02 09:55
[#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:
Hi,
On 4/3/07, Charles Oliver Nutter <charles.nutter@sun.com> wrote:
[#10867] defined? operator changed in ruby 1.9: bug or feature? — David Flanagan <david@...>
The behavior of the defined? operator is different in current ruby 1.9
Hi,
[#10875] Ruby shouldn't process shebang! — "Kirill A. Shutemov" <k.shutemov@...>
> echo -e '#!test\nputs "test passed"' | ruby
On 4/5/07, Kirill A. Shutemov <k.shutemov@gmail.com> wrote:
[#10884] Ruby 1.9/1.8 compatibility: String#lines — murphy <murphy@...>
It seems the most important change in 1.9, in terms of compatibility, is
Hi,
[#10907] install (/bin/install) path hardcoded at build — <noreply@...>
Bugs item #10004, was opened at 2007-04-10 13:21
[#10909] Turning off verbose output for mkmf — Daniel Berger <Daniel.Berger@...>
Hi all,
[#10923] block_given? => true in main(). — "Adam Bozanich" <adam.boz@...>
Hi all.
[#10933] Cannot build with extra library path if previous version already installed — <noreply@...>
Bugs item #10140, was opened at 2007-04-16 17:32
Hi,
On 4/16/07, nobu@ruby-lang.org <nobu@ruby-lang.org> wrote:
Hi,
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 ^
Hi,
[#10944] IRHG - "Three Stuffing" — Charles Thornton <ceo@...>
Can a japanese speaker give a translation
[#10947] backwards compatibility for 'raise Interrupt' — Ryan Davis <ryand-ruby@...>
** BEFORE:
Hi,
Hi,
[#10968] IRHG - Manuscript Hunt — Charles Thornton <ceo@...>
Does anyone know of a Text Copy (Not PDF) of this manuscript:
[#10981] ruby 1.9 crash on cygwin — "Anton Ivanov" <Anton.Ivanov@...>
Hi,
[#11003] miniruby loads extensions from already installed ruby — <noreply@...>
Bugs item #10303, was opened at 2007-04-23 10:44
Hi,
On 23/04/07, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
Hi,
On 26/04/07, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
Hi,
[#11012] Ruby 1.9: multiple splats on rvalues in parallel assignment — David Flanagan <david@...>
This has got to be a bug...
[#11025] gsub with backslash characters in replacement string — "Adam Bozanich" <adam.boz@...>
Hello, spotted this one the other day:
Hi,
On 4/26/07, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
On 4/26/07, Adam Bozanich <adam.boz@gmail.com> wrote:
On 4/26/07, Marte Raphael Y. Soliza <myrtactle@gmail.com > wrote:
[#11029] Proc#arity regression or bug in RDoc — Mauricio Fernandez <mfp@...>
On Thu, Apr 26, 2007 at 06:55:46PM +0900, Mauricio Fernandez wrote:
Re: defined? operator changed in ruby 1.9: bug or feature?
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);
--
Nobu Nakada