[#41581] Ruby 1.6.7 dieing of segfault — Dossy <dossy@...>

I've got something that's fairly reproducible in 1.6.7. Is

11 messages 2002/06/02
[#41582] Re: Ruby 1.6.7 dieing of segfault — Nobuyoshi Nakada <nobu.nokada@...> 2002/06/02

Hi,

[#41660] dynamic attr_accessor?? — Markus Jais <mjais@...>

hello

16 messages 2002/06/03

[#41755] HTML Parser suggestions wanted — Ned Konz <ned@...>

I've written an HTML parser that builds trees from HTML source. After

13 messages 2002/06/04

[#41809] eval and local variable — "Park Heesob" <phasis@...>

15 messages 2002/06/05

[#41819] mod_ruby and module space — "Sean O'Dell" <sean@...>

It seems that if I execute a script using mod_ruby, I cannot call

18 messages 2002/06/05

[#41867] Pascal-like 'with' statement? — Philip Mak <pmak@...>

Is there something like Pascal's with statement? I'd like to turn this

18 messages 2002/06/06

[#41919] 1-second events — Paul Brannan <pbrannan@...>

I need to create an event that occurs exactly once per second.

15 messages 2002/06/06

[#42086] ANN: REXML 2.3.5 && 2.2.3 — Sean Russell <ser@...>

<posted & mailed>

31 messages 2002/06/09
[#42091] Re: ANN: REXML 2.3.5 && 2.2.3 — Sean Russell <ser@...> 2002/06/09

<posted & mailed>

[#42092] RE: ANN: REXML 2.3.5 && 2.2.3 — <james@...> 2002/06/09

> Well, XMLSchema may be troublesome to interpret, but it isn't

[#42192] ruby-dev summary 17252-17356 — Minero Aoki <aamine@...>

Hi all,

81 messages 2002/06/11
[#42290] Re: a new block parameter/variable notation (Re: ruby-dev summary 17252-17356) — Kent Dahl <kentda@...> 2002/06/12

Not wanting to flog a dead horse, but I just wonder what the final word

[#42295] Re: a new block parameter/variable notation (Re: ruby-dev summary 17252-17356) — matz@... (Yukihiro Matsumoto) 2002/06/12

Hi,

[#42455] Application server & web developement enviroment — "Radu M. Obad磚 <whizkid@...>

Howdy,

14 messages 2002/06/14
[#42459] Re: Application server & web developement enviroment — Austin Ziegler <austin@...> 2002/06/14

On Fri, 14 Jun 2002 15:55:31 +0900, Radu M. Obadwrote:

[#42472] ANN: Programmierung in Ruby — "Juergen Katins" <katins.juergen@...>

Programmierung in Ruby Online gibt es jetzt mit ausfrlichem

14 messages 2002/06/14

[#42504] Are Unix tools just slow? — Chris Gehlker <gehlker@...>

Awhile back I was asking for help with a unixy way to search the mounted

48 messages 2002/06/14
[#42516] Re: Are Unix tools just slow? — "Daniel P. Zepeda" <daniel@...> 2002/06/15

On Sat, 15 Jun 2002 07:14:38 +0900

[#42506] Re: Are Unix tools just slow? — Rick Bradley <rick@...> 2002/06/14

* Chris Gehlker (gehlker@fastq.com) [020614 17:18]:

[#42512] Re: Are Unix tools just slow? — Chris Gehlker <gehlker@...> 2002/06/15

On 6/14/02 3:34 PM, "Rick Bradley" <rick@rickbradley.com> wrote:

[#42513] opengl for ruby, please help — ccos <ccos@...> 2002/06/15

unix newby failing miserably here:

[#42507] mpg123 — Tobias Reif <tobiasreif@...>

Hi,

15 messages 2002/06/14

[#42546] File.new('foo', 0600 , 'wb') — Tobias Reif <tobiasreif@...>

Hi,

21 messages 2002/06/15
[#42552] Re: File.new('foo', 0600 , 'wb') — Tobias Reif <tobiasreif@...> 2002/06/15

Dossy wrote:

[#42591] Kernel#select questions — Wilkes Joiner <boognish23@...>

I'm trying to track down a bug where Kernel#select is returning [[],[],[]] as

12 messages 2002/06/17

[#42617] eRuby on Mac OS X — Jim Menard <jimm@...>

I've searched ruby-talk for this topic, and the only messages I found show

13 messages 2002/06/17

[#42674] REXML in C — "Radu M. Obad磚 <whizkid@...>

Hi,

20 messages 2002/06/18

[#42771] Why is I/O slow? — Clifford Heath <cjh_nospam@...>

Ok, folk, time to try again. It's nothing to do with SHA-1.

61 messages 2002/06/20
[#42831] Re: Why is I/O slow? — Clifford Heath <cjh_nospam@...> 2002/06/21

Yukihiro Matsumoto wrote:

[#42836] RE: Why is I/O slow? — "Mike Campbell" <michael_s_campbell@...> 2002/06/21

> With respect, this doesn't sound like a smart idea. The glibc folk have

[#42838] Re: Why is I/O slow? — Albert Wagner <alwagner@...> 2002/06/21

On Thursday 20 June 2002 10:10 pm, Mike Campbell wrote:

[#42839] Re: Why is I/O slow? — Austin Ziegler <austin@...> 2002/06/21

On Fri, 21 Jun 2002 12:16:24 +0900, Albert Wagner wrote:

[#42928] GOOD DEAL — "DR. ISA BELLO" <dr_isa@...>

FROM:DR ISA BELLO

11 messages 2002/06/22

[#42982] No exceptions from String#to_i — "Hal E. Fulton" <hal9000@...>

I've been bitten by this before... maybe

19 messages 2002/06/24
[#42983] Re: No exceptions from String#to_i — ts <decoux@...> 2002/06/24

>>>>> "H" == Hal E Fulton <hal9000@hypermetrics.com> writes:

[#42986] Re: No exceptions from String#to_i — Nikodemus Siivola <tsiivola@...> 2002/06/24

[#43122] Re: help (ruby-talk ML) — Benjamin Peterson <bjsp123@...>

20 messages 2002/06/27
[#43123] Re: help (ruby-talk ML) — Dave Thomas <Dave@...> 2002/06/27

Benjamin Peterson <bjsp123@yahoo.com> writes:

[#43124] RE: help (ruby-talk ML) — Bob Calco <robert.calco@...> 2002/06/27

Yes, I would gladly volunteer considerable effort to this end. I have

[#43147] Ruby on Mac OS X — Tobias Reif <tobiasreif@...>

Hi,

24 messages 2002/06/28

[#43174] eruby SAFE question — Dylan Northrup <docx@...>

I'm trying to implement a replacement for the standard apache file listings

39 messages 2002/06/28
[#43249] documentation licenses (was: eruby SAFE question) — Tobias Reif <tobiasreif@...> 2002/06/30

Dave Thomas wrote:

[#43250] Re: documentation licenses (was: eruby SAFE question) — Dave Thomas <Dave@...> 2002/06/30

Tobias Reif <tobiasreif@pinkjuice.com> writes:

[#43255] RE: documentation licenses (was: eruby SAFE question) — <james@...> 2002/06/30

>

[#43280] Re: documentation licenses (was: eruby SAFE question) — "Juergen Katins" <juergen.katins@...> 2002/07/01

Tobias Reif wrote

[#43282] Re: documentation licenses (was: eruby SAFE question) — David Alan Black <dblack@...> 2002/07/01

On Mon, 1 Jul 2002, Juergen Katins wrote:

[#43381] RE: documentation licenses (was: eruby SAFE question) — <james@...> 2002/07/02

> From: David Alan Black [mailto:dblack@candle.superlink.net]

a new block parameter/variable notation (Re: ruby-dev summary 17252-17356)

From: matz@... (Yukihiro Matsumoto)
Date: 2002-06-12 01:43:09 UTC
List: ruby-talk #42266
Hi,

In message "Re: ruby-dev summary 17252-17356"
    on 02/06/12, "Hal E. Fulton" <hal9000@hypermetrics.com> writes:

|Well, Matz is much smarter than I am... but this
|makes me wince.

I don't think I'm smarter than you.  That's simply my fault that I
cannot explain clear enough mostly due to the language barrier.
I wish I were born in English speaking country.  I'll try to explain
anyway.

Originally, the "|...|" used to be a simple iteration variable
specifier.  But when Proc (and closure) was introduced to Ruby (back
in Ruby 0.60 in 1994), I needed block local variables, so I made the
current local variable scoping rule, which is "when a new local
variable appears first in a block, it is valid only in the block".

And *I was wrong*.  This rule is the single biggest design flaw in
Ruby.  You have to care about local variable name conflict, and you
will have totally different result (without error) if they conflict.

So, we are talking about a part of many-year-long effort of fixing
this flaw.

We have following constraints:

 * the fix should not cause fatal compatibility problem.  It may not
   cause any problem, or at least may not cause any problem which
   cannot be fixed by the filter program.

 * the fix need not to cover arbitrary combination of local/non-local
   variables in block parameter, so that you don't need the one like

     |a,{b},c|        # where a goes block-local

   as someone proposed before.  We have two major usage of block
   parameters, a) iterator variables b) closure arguments.  The
   current block parameters are suitable (and designed for) a.  I
   guess we need a new notation designed for b too.

 * preferably, the above *bad* scoping rule should be removed from the
   language in the future, so that I guess we need a new notation to
   *declare* in-block variables.

 * Ruby does not like explicit variable declaration (except method
   arguments, of course), so that a new in-block variable declaration
   is better not be explicit, if possible.

I've got a bunch of proposals from worldwide (and from myself).  Some
seemed good, Some bad, and some even ugly.  Thank you everyone who
joined the discussion anyway.  After a long discussion and pondering,
there is the first design choice:

 (a-1) do nothing, it's already a part of the language even though it's
       bad.  Stay as it is.  

       Pros: least effort.
       Cons: least effectiveness.

 (a-2) do something, let's make Ruby close to the perfect language.

Assuming we choose the latter, I chose several candidates for the fix.
From the constraints, we need two new notations to fix the problem,
one for block parameters and one for in-block variables.

For block parameters (in order of my preference):

 (b-1) "<...>" that takes local variables only; they are in-block
       local.  In addition, it follows basic rules of argument
       passing, even optinal argumen may be allowed.

       Pros: it solves several pitfalls of Ruby at once, for example,
             "lambda{|a| p a}.call(1,2,3)" prints "[1,2,3]", because
             it behaves like assignment "a = 1,2,3".  on the other
             hand, "lambda{<a> p a}.call(1,2,3)" will cause an error
             "wrong number of arguments (3 for 1)".
       Cons: it makes Ruby syntax bigger.
             it appears awkward for some eyes.

 (b-2) "|...|" should take local variables only, and make them
       in-block variables.

       Pros: it makes Ruby syntax simpler.
       Cons: no backward compatibility.

For in-block variables:

 (c-1) local variables assigned by ":=" are in-block variables,
       otherwise they are method local variables.  If you assigns to
       an existing local variable, the variable is shadowed, and you
       will probably be warned.

 (c-2) variables listed after ";" in the block parameters are in-block
       variables.  If you list an existing local variable, the
       variable is shadowed, and you will probably be warned.

       Cons: this is explicit declaration.

 (c-3) introduce a method named "let" and use the solution for (b) to
       solve the in-block variables problem.  For example (in the case
       we choose (b-1)):

         lambda{<x,y>   # x,y are local to this closure.
           ...
           let{<a,b,c>
             ....       # a,b,c are local here.
           }
           ...
         }

       Pros: least syntax enhancement.
       Cons: Cons: this is explicit declaration.
             And even uglier (to my eyes).

Man, it took me hours to write this mail.  Why you guys don't read Japanese?

|Complaint #1: This introduces an ordering constraint on
|the items. If the "natural" order is a,b,c but we need
|b to be local, we will write something like |a,c;b|

It won't happen, since they are different things.  "a" and "c" are
block parameters, "b" is an in-block variable.

|Complaint #2: The <x;y> case is exceptionally annoying
|to me if I understand it correctly. Doesn't it send two 
|contradictory messages (to the reader) about x? The fact
|that it appears on the lefthand side of the semicolon
|says it's nonlocal; but the fact it's in brackets says
|it's local.

No.  The fact that it appears on the lefthand side of the semicolon
says it's a block parameter; and the fact it's in brackets says it's
in-block local.   Get it?

							matz.

In This Thread