[#11822] RCR: Input XML support in the base Ruby — Dave Thomas <Dave@...>

15 messages 2001/03/01

[#11960] Not Ruby, for me, for the moment at least — "Michael Kreuzer" <mkreuzer@... (nospam)>

I wrote on this newsgroup last weekend about how I was considering using

11 messages 2001/03/04

[#12023] French RUG ? — "Jerome" <jeromg@...>

Hi fellow rubyers,

16 messages 2001/03/05

[#12103] disassembling and reassembling a hash — raja@... (Raja S.)

Given a hash, h1, will the following always hold?

20 messages 2001/03/06

[#12204] FEATURE REQUEST: 'my' local variables — Leo Razoumov <see_signature@127.0.0.1>

Ruby is, indeed, a very well designed language.

64 messages 2001/03/07
[#12250] Re: FEATURE REQUEST: 'my' local variables — Leo Razoumov <see_signature@127.0.0.1> 2001/03/07

>>>>> "GK" == GOTO Kentaro <gotoken@math.sci.hokudai.ac.jp> writes:

[#12284] Re: FEATURE REQUEST: 'my' local variables — gotoken@... (GOTO Kentaro) 2001/03/08

In message "[ruby-talk:12250] Re: FEATURE REQUEST: 'my' local variables"

[#12289] Re: FEATURE REQUEST: 'my' local variables — matz@... (Yukihiro Matsumoto) 2001/03/08

Hi,

[#12452] Re: FEATURE REQUEST: 'my' local variables — gotoken@... (GOTO Kentaro) 2001/03/12

In message "[ruby-talk:12289] Re: FEATURE REQUEST: 'my' local variables"

[#12553] Re: FEATURE REQUEST: 'my' local variables — Dave Thomas <Dave@...> 2001/03/13

matz@zetabits.com (Yukihiro Matsumoto) writes:

[#12329] Math package — Mathieu Bouchard <matju@...>

18 messages 2001/03/09

[#12330] Haskell goodies, RCR and challenge — Robert Feldt <feldt@...>

Hi,

19 messages 2001/03/09
[#12374] Re: Haskell goodies, RCR and challenge — matz@... (Yukihiro Matsumoto) 2001/03/10

Hi,

[#12349] Can Ruby-GTK display Gif Png or Jpeg files? — Phlip <phlip_cpp@...>

Ruby-san:

20 messages 2001/03/09

[#12444] class variables — Max Ischenko <max@...>

14 messages 2001/03/12

[#12606] Order, chaos, and change requests :) — Dave Thomas <Dave@...>

17 messages 2001/03/14

[#12635] email address regexp — "David Fung" <dfung@...>

i would like to locate probable email addresses in a bunch of text files,

12 messages 2001/03/14

[#12646] police warns you -- Perl is dangerous!! — Leo Razoumov <see_signature@127.0.0.1>

I just read this story on Slashdot

14 messages 2001/03/14
[#12651] Re: police warns you -- Perl is dangerous!! — pete@... (Pete Kernan) 2001/03/14

On 14 Mar 2001 11:46:35 -0800, Leo Razoumov <see_signature@127.0.0.1> wrote:

[#12691] Re: police warns you -- Perl is dangerous!! — "W. Kent Starr" <elderburn@...> 2001/03/15

On Wednesday 14 March 2001 15:40, Pete Kernan wrote:

[#12709] [OFFTOPIC] Re: police warns you -- Perl is dangerous!! — Stephen White <spwhite@...> 2001/03/16

On Fri, 16 Mar 2001, W. Kent Starr wrote:

[#12655] Re: FEATURE REQUEST: 'my' local variables — "Benjamin J. Tilly" <ben_tilly@...>

>===== Original Message From Leo Razoumov <see_signature@127.0.0.1> =====

18 messages 2001/03/14

[#12706] Library packaging — "Nathaniel Talbott" <ntalbott@...>

I have a project that I'm working on that needs to live two different lives,

30 messages 2001/03/16

[#12840] Looking for a decent compression scheme — Dave Thomas <Dave@...>

14 messages 2001/03/19

[#12895] differences between range and array — "Doug Edmunds" <dae_alt3@...>

This code comes from the online code examples for

16 messages 2001/03/20
[#12896] Re: differences between range and array — "Hee-Sob Park" <phasis@...> 2001/03/20

[#12899] Re: differences between range and array — Jim Freeze <jim@...> 2001/03/20

On Tue, 20 Mar 2001, Hee-Sob Park wrote:

[#12960] TextBox ListBox — Ron Jeffries <ronjeffries@...>

Attached is a little Spike that Chet and I are doing. It is a

13 messages 2001/03/20

[#12991] [ANN] Lapidary 0.2.0 — "Nathaniel Talbott" <ntalbott@...>

Well, here's my first major contribution to the Ruby world: Lapidary. It's a

16 messages 2001/03/20

[#13028] mkmf question — Luigi Ballabio <luigi.ballabio@...>

15 messages 2001/03/21

[#13185] Reading a file backwards — "Daniel Berger" <djberg96@...>

Hi all,

21 messages 2001/03/25
[#13197] Re: Reading a file backwards — "Daniel Berger" <djberg96@...> 2001/03/25

> Hi Dan,

[#13203] Re: Reading a file backwards — Mathieu Bouchard <matju@...> 2001/03/25

On Sun, 25 Mar 2001, Daniel Berger wrote:

[#13210] Re: Reading a file backwards — "Daniel Berger" <djberg96@...> 2001/03/25

"Mathieu Bouchard" <matju@sympatico.ca> wrote in message

[#13374] Passing an array to `exec'? — Lloyd Zusman <ljz@...>

I'd like to do the following:

15 messages 2001/03/31

[#13397] Multidimensional arrays and hashes? — Lloyd Zusman <ljz@...>

Is it possible in ruby to make use of constructs that correspond to

14 messages 2001/03/31

[ruby-talk:12274] Re: FEATURE REQUEST: 'my' local variables

From: "Ben Tilly" <ben_tilly@...>
Date: 2001-03-08 15:08:08 UTC
List: ruby-talk #12274
ts <decoux@moulon.inra.fr> wrote:
>
> >>>>> "L" == Leo Razoumov <see_signature@127.0.0.1> writes:
>
>L> I do not understand why "my" is too complex to a user. It has been in 
>Perl for
>L> years and no one complained of its complexity.
>
>  OK, explain me this result
>
>pigeon% cat a.pl
>#!/usr/bin/perl -wl
>use strict;
>sub toto
>{
>     my $i = shift;
>     my $m = $i if !($i % 5);
>     $m++;
>     print "$i : $m";
>}
>
>for (my $i = 0; $i < 15; $i++) {
>     toto($i);
>}

Ah, my favorite bug!

The implementation of my in Perl has a stupid optimization.
Perl allocates space for the my once, and then reuses the
space later, depending on a runtime initialization to know
whether it needs to reinitialization.  With the one line
conditional it may skip this needed initialization, leading
to the value from a previous call being preserved.

Perl actually keeps track of the number of times a function
has been called and keeps separate stacks for each.  Which
means that deep recursion in Perl permanently ties up memory
and makes Perl look very bad on certain benchmarks.  The
interactions of this bug and that behaviour can lead to very
odd results.

It has been known for years (having been discovered in turn
by at least 3 people) and deliberately not documented.  It
has become much better known in the last year since one Ben
Tilly set down to figure out why the Number::Format module
had a particular bug, discovered this feature, and then went
on to complain quite bitterly about it.

I would clearly not suggest that Ruby implement this
feature with this buggy optimization.  And since the
structure of a scalar in Ruby is much smaller and cleaner
than a scalar in Perl there is little reason to want to do
this.  I note that this bug is very Perl specific and in
Lisp, for instance, there is no corresponding problem.

And so I still absolutely think you are wrong that it is
bad to have the concept of being able to say that this,
here, is a private variable that shall forevermore be
private no matter what else is in scope.  An example why not
having it is a bad idea, when constructing strings or blocks
that will be evalled in someone else's context, it is good
for both you and them that you have the ability to within
this section declare certain variables as private to your
code and be able to limit how you will interact with their
code without having to examine it.

Absolutely none of the examples that you have presented has
shaken my belief that private temporary variables, a concept
that is available in most decent languages, would be an
unnecessary obfuscation in Ruby.  I use them religiously
when they are available.  It is true that 99% of the time
they accomplish absolutely nothing, but I am glad that I will
never find out which 1% of the time I saved myself a nasty
headache...

Cheers,
Ben
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com

In This Thread

Prev Next