[#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=20
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
[#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?
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);
>
>
>