dmd 1.046 and 2.031 releases

Nick Sabalausky a at a.a
Mon Jul 6 20:25:58 PDT 2009


"Andrei Alexandrescu" <SeeWebsiteForEmail at erdani.org> wrote in message 
news:h2udmf$1b0c$1 at digitalmars.com...
> Nick Sabalausky wrote:
>> "Walter Bright" <newshound1 at digitalmars.com> wrote in message 
>> news:h2u735$sn8$1 at digitalmars.com...
>>> grauzone wrote:
>>>> I oriented this on the syntax of array slices. Which work that way. Not 
>>>> inconsistent at all. It's also consistent with foreach(_; x..y).
>>> It would look consistent, but it would behave very differently. x..y for 
>>> foreach and slices is exclusive of the y, while case x..y is inclusive.
>>>
>>
>> The current way has that inconsistency:
>>
>> variable .. variable   // exclusive end
>> caseLabel .. caseLabel    // inclusive end
>>
>> And yes, I know that's not how it's actually parsed, but that's how 
>> people visually parse it.
>
> I don't think so at all. There's a lot of punctuation that has different 
> roles depending on the context. For example, ":" means key/value separator 
> or ternary operator participant; "*" means multiplication or pointer 
> dereference; "&" means taking address or binary "and"... plenty of 
> examples. So you can't center on ".." and claim that it visually means the 
> same thing even though the surrounding is different. You really have no 
> argument here.
>

Those examples are all cases where the meaning and context are wildly 
different fbetween one use and the other. But with '..', both uses are very 
similar: "From xxx to (incl/excl) yyy". Big differences are ok, they stand 
out as obvious. Small differences can be more problematic.

FWIW, Even though I dislike it, I don't think it's a sky-falling issue or 
anything. I just don't think it's so "obviously great" as you and Walter see 
it. Basically, I see it as a questionable *but* acceptable solution 
*provided that* it's just a stop-gap in the interim before finally getting a 
completely re-thought switch/pattern-matcher.

>> Ah the hell with it, I don't care any more: The *real* issue here is that 
>> the current switch, being based on C's, is horribly antiquated and what 
>> we really need is a comprehensive redesign incorporating some sort of 
>> generalized pattern matching. Like "case > 1, <= 10:" or something like 
>> Nemerle, or whatever. I don't care, as long as it doesn't continue to get 
>> trivialized as something that can be solved by tossing in a recycled ".." 
>> here, a recycled "final" there, etc.
>
> On the full side of the glass, with the latest dmd release, the language 
> has acquired some useful feature improvements and the implementation has 
> fixed many bugs. Why the crankiness?
>

Because it's really hot in this room right now... ;)  But seriously though, 
it's just this issue I'm cranky about. I can absolutely agree there's been a 
lot of good changes. (Although I would really love to see my patch for #2567 
incorporated...*squeak**squeak* says the wheel ;) )




More information about the Digitalmars-d-announce mailing list