[#5218] Ruby Book Eng tl, ch1 question — Jon Babcock <jon@...>

13 messages 2000/10/02

[#5404] Object.foo, setters and so on — "Hal E. Fulton" <hal9000@...>

OK, here is what I think I know.

14 messages 2000/10/11

[#5425] Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...>

18 messages 2000/10/11
[#5427] RE: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — OZAWA -Crouton- Sakuro <crouton@...> 2000/10/11

At Thu, 12 Oct 2000 03:49:46 +0900,

[#5429] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...> 2000/10/11

Thanks for the input.

[#5432] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Yasushi Shoji <yashi@...> 2000/10/11

At Thu, 12 Oct 2000 04:53:41 +0900,

[#5516] Re: Some newbye question — ts <decoux@...>

>>>>> "D" == Davide Marchignoli <marchign@di.unipi.it> writes:

80 messages 2000/10/13
[#5531] Re: Some newbye question — matz@... (Yukihiro Matsumoto) 2000/10/14

Hi,

[#5544] Re: Some newbye question — Davide Marchignoli <marchign@...> 2000/10/15

On Sat, 14 Oct 2000, Yukihiro Matsumoto wrote:

[#5576] Re: local variables (nested, in-block, parameters, etc.) — Dave Thomas <Dave@...> 2000/10/16

matz@zetabits.com (Yukihiro Matsumoto) writes:

[#5617] Re: local variables (nested, in-block, parameters, etc.) — "Brian F. Feldman" <green@...> 2000/10/16

Dave Thomas <Dave@thomases.com> wrote:

[#5705] Dynamic languages, SWOT ? — Hugh Sasse Staff Elec Eng <hgs@...>

There has been discussion on this list/group from time to time about

16 messages 2000/10/20
[#5712] Re: Dynamic languages, SWOT ? — Charles Hixson <charleshixsn@...> 2000/10/20

Hugh Sasse Staff Elec Eng wrote:

[#5882] [RFC] Towards a new synchronisation primitive — hipster <hipster@...4all.nl>

Hello fellow rubyists,

21 messages 2000/10/26

[ruby-talk:5584] Re: local variables (nested, in-block, parameters, etc.)

From: ts <decoux@...>
Date: 2000-10-16 11:42:28 UTC
List: ruby-talk #5584
>>>>> "Y" == Yukihiro Matsumoto <matz@zetabits.com> writes:

Y> Dave's idea in [ruby-talk:5546] (i.e. lambda{<a,b> ...}) is
Y> interesting. It'll make Ruby slightly more complex, but solves problem
                                ^^^^^^^^^^^^^^^^^^^^^
Y> 1 above without incompatibility.  If no one find the problem for this,
Y> I think I'm going to implement this in 1.7.

 Perhaps (and certainly :-)) I'm stupid  but why it make ruby more
 complex ?

 What I'm missing ?

pigeon% cat b.rb
#!./ruby
a = 12
p "LOCAL #{a}"
proc = lambda do <a>
      p "INTERN #{a}"
      [1, 2].each do <a>
         p "BEFORE #{a}"
         [3, 4].each do <a>
            p "IN     #{a}"
         end
         p "AFTER  #{a}"
      end
      p "INTERN #{a}"
end
proc.call(24)
p "LOCAL #{a}"
pigeon% 

pigeon% b.rb
"LOCAL 12"
"INTERN 24"
"BEFORE 1"
"IN     3"
"IN     4"
"AFTER  1"
"BEFORE 2"
"IN     3"
"IN     4"
"AFTER  2"
"INTERN 24"
"LOCAL 12"
pigeon% 

pigeon% diff -u ../ruby/parse.y parse.y
--- ../ruby/parse.y     Mon Oct 16 13:23:37 2000
+++ parse.y     Mon Oct 16 13:30:54 2000
@@ -73,6 +73,7 @@
 static int in_single = 0;
 static int compile_for_eval = 0;
 static ID cur_mid = 0;
+static int ruby_declare_dyna = 0;
 
 static NODE *cond();
 static NODE *logop();
@@ -1348,6 +1349,18 @@
                    {
                        $$ = $2;
                    }
+                | '<'
+                    {
+                       $<vars>$ = dyna_push();
+                        ruby_declare_dyna++;
+                    }
+                   block_var '>'
+                    {
+                        ruby_declare_dyna--;
+                        dyna_pop($<vars>2);
+                        $$ = $3;
+                    }
+
 
 
 do_block       : kDO
@@ -4035,6 +4048,10 @@
        else if (rb_dvar_defined(id)) {
            return NEW_DASGN(id, val);
        }
+       else if (ruby_declare_dyna) {
+           rb_dvar_push(id, Qnil);
+           return NEW_DASGN_CURR(id, val);
+        }
        else if (local_id(id) || !dyna_in_block()) {
            return NEW_LASGN(id, val);
        }
pigeon% 


Guy Decoux

In This Thread