Jump to page: 1 212  
Page
Thread overview
Biggest Issue with D - Definition and Versioning
Jan 11, 2012
Zachary Lund
Jan 11, 2012
Walter Bright
Jan 12, 2012
Jacob Carlborg
Jan 12, 2012
Brad Roberts
Jan 12, 2012
Jacob Carlborg
Jan 12, 2012
Walter Bright
Jan 12, 2012
Paulo Pinto
Jan 12, 2012
Walter Bright
Jan 12, 2012
Peter Alexander
Jan 13, 2012
Walter Bright
Jan 13, 2012
Robert Clipsham
Jan 13, 2012
Walter Bright
Jan 13, 2012
Dejan Lekic
Jan 13, 2012
Jacob Carlborg
Jan 13, 2012
Peter Alexander
Jan 15, 2012
Jonathan M Davis
Jan 15, 2012
bearophile
Jan 15, 2012
Michel Fortin
Jan 15, 2012
Jonathan M Davis
Jan 15, 2012
Gour
Jan 15, 2012
Martin Nowak
Jan 15, 2012
Jonathan M Davis
Jan 15, 2012
Peter Alexander
Jan 15, 2012
Kiith-Sa
Jan 15, 2012
Jonathan M Davis
Jan 16, 2012
Gour
Jan 17, 2012
Walter Bright
Jan 17, 2012
Gour
Jan 17, 2012
Walter Bright
Jan 18, 2012
dolive
Jan 18, 2012
deadalnix
Jan 18, 2012
Walter Bright
Jan 18, 2012
Patrick Stewart
Jan 18, 2012
Walter Bright
Jan 18, 2012
Adam Wilson
Jan 18, 2012
mist
Jan 18, 2012
Walter Bright
Jan 18, 2012
bearophile
Jan 19, 2012
Walter Bright
Jan 19, 2012
bearophile
Jan 19, 2012
Adam Wilson
Jan 19, 2012
Heywood Floyd
Jan 19, 2012
Patrick Stewart
Jan 19, 2012
Timon Gehr
Jan 19, 2012
Marco Leise
Jan 19, 2012
deadalnix
Jan 19, 2012
Patrick Stewart
Jan 19, 2012
Walter Bright
Jan 19, 2012
Adam Wilson
Jan 19, 2012
Gour
Jan 19, 2012
Jacob Carlborg
Jan 19, 2012
Walter Bright
Jan 19, 2012
Patrick Stewart
Jan 19, 2012
Walter Bright
Jan 19, 2012
Patrick Stewart
Jan 19, 2012
Jacob Carlborg
Jan 19, 2012
Jonathan M Davis
Jan 19, 2012
deadalnix
Jan 17, 2012
Sean Cavanaugh
Jan 17, 2012
Martin Nowak
Jan 18, 2012
deadalnix
Jan 18, 2012
Timon Gehr
Jan 19, 2012
Manu
Jan 20, 2012
Manu
Jan 19, 2012
Brad Roberts
Jan 19, 2012
Brad Roberts
Jan 19, 2012
Walter Bright
Jan 19, 2012
Manu
Jan 15, 2012
F i L
Jan 15, 2012
bearophile
Jan 15, 2012
Jeff Nowakowski
Jan 15, 2012
Nick Sabalausky
Jan 16, 2012
Nick Sabalausky
Jan 16, 2012
Nick Sabalausky
Jan 16, 2012
Gour
Jan 16, 2012
Russel Winder
Jan 16, 2012
Paulo Pinto
Jan 16, 2012
Peter Alexander
Jan 16, 2012
Andrej Mitrovic
Jan 16, 2012
Paulo Pinto
Jan 16, 2012
Kiith-Sa
Jan 16, 2012
Walter Bright
Jan 16, 2012
Kiith-Sa
Jan 17, 2012
Walter Bright
Jan 17, 2012
Jacob Carlborg
Jan 17, 2012
Jacob Carlborg
Jan 17, 2012
Kiith-Sa
Jan 15, 2012
Michel Fortin
Jan 15, 2012
Jacob Carlborg
Jan 15, 2012
Daniel Murphy
Jan 15, 2012
Robert Clipsham
Jan 15, 2012
Walter Bright
Jan 15, 2012
Michel Fortin
Jan 13, 2012
Mehrdad
Jan 18, 2012
deadalnix
Jan 18, 2012
Walter Bright
Jan 18, 2012
Zachary Lund
Jan 18, 2012
Walter Bright
Jan 18, 2012
Peter Alexander
Jan 19, 2012
deadalnix
Jan 20, 2012
Manu
Jan 20, 2012
bearophile
Jan 20, 2012
Manu
Jan 20, 2012
deadalnix
January 11, 2012
D1 or D2 both don't have a very accurate definition. C and C++ has several hundred pages of specifications and while I'm hopefully not expecting that, I do want some certainty on what is *supposed* to happen.

There is also no versioning. D2 is definitely different from D1 in the case that it's not backwards compatible, but version for the actual example implementation isn't enough, especially when that implementation doesn't always do what it's supposed to do.
January 11, 2012
On 1/11/2012 12:29 PM, Zachary Lund wrote:
> D1 or D2 both don't have a very accurate definition. C and C++ has several
> hundred pages of specifications and while I'm hopefully not expecting that, I do
> want some certainty on what is *supposed* to happen.
>
> There is also no versioning. D2 is definitely different from D1 in the case that
> it's not backwards compatible, but version for the actual example implementation
> isn't enough, especially when that implementation doesn't always do what it's
> supposed to do.

Please file bug reports for any errors/omissions in the specification on bugzilla.
January 12, 2012
On 2012-01-11 21:34, Walter Bright wrote:
> On 1/11/2012 12:29 PM, Zachary Lund wrote:
>> D1 or D2 both don't have a very accurate definition. C and C++ has
>> several
>> hundred pages of specifications and while I'm hopefully not expecting
>> that, I do
>> want some certainty on what is *supposed* to happen.
>>
>> There is also no versioning. D2 is definitely different from D1 in the
>> case that
>> it's not backwards compatible, but version for the actual example
>> implementation
>> isn't enough, especially when that implementation doesn't always do
>> what it's
>> supposed to do.
>
> Please file bug reports for any errors/omissions in the specification on
> bugzilla.

That's the whole point. It's not clear what the actual specification IS. Is it DMD, dlang.org or TDPL?

-- 
/Jacob Carlborg
January 12, 2012
On 1/11/2012 11:16 PM, Jacob Carlborg wrote:
> On 2012-01-11 21:34, Walter Bright wrote:
>> On 1/11/2012 12:29 PM, Zachary Lund wrote:
>>> D1 or D2 both don't have a very accurate definition. C and C++ has
>>> several
>>> hundred pages of specifications and while I'm hopefully not expecting
>>> that, I do
>>> want some certainty on what is *supposed* to happen.
>>>
>>> There is also no versioning. D2 is definitely different from D1 in the
>>> case that
>>> it's not backwards compatible, but version for the actual example
>>> implementation
>>> isn't enough, especially when that implementation doesn't always do
>>> what it's
>>> supposed to do.
>>
>> Please file bug reports for any errors/omissions in the specification on bugzilla.
> 
> That's the whole point. It's not clear what the actual specification IS. Is it DMD, dlang.org or TDPL?

The website is the spec.  DMD is the reference instantiation of that spec.  TDPL is a re-framing of it.

Now, given that none of the three are perfect, discrepancies exist which obviously lead to questions.  That's where bugzilla comes in to record and track the queue of issues to resolve among them.  Where there's issues, until it's been examined, any of the parties could be at fault.

My 2 cents,
Brad
January 12, 2012
I see the TDPL as having the same role as the C++ ARM did.

http://www.amazon.de/Annotated-C-Reference-Manual/dp/0201514591

For those that don't know this book, Bjarne and Margaret wrote as an attempt
to have the first written specifcation of how CFront behaved and what was
expected by C++ compilers.

--
Paulo


"Jacob Carlborg"  wrote in message news:jem1cr$2fco$1@digitalmars.com...

On 2012-01-11 21:34, Walter Bright wrote:
> On 1/11/2012 12:29 PM, Zachary Lund wrote:
>> D1 or D2 both don't have a very accurate definition. C and C++ has
>> several
>> hundred pages of specifications and while I'm hopefully not expecting
>> that, I do
>> want some certainty on what is *supposed* to happen.
>>
>> There is also no versioning. D2 is definitely different from D1 in the
>> case that
>> it's not backwards compatible, but version for the actual example
>> implementation
>> isn't enough, especially when that implementation doesn't always do
>> what it's
>> supposed to do.
>
> Please file bug reports for any errors/omissions in the specification on
> bugzilla.

That's the whole point. It's not clear what the actual specification IS.
Is it DMD, dlang.org or TDPL?

-- 
/Jacob Carlborg 

January 12, 2012
On 12-01-2012 08:30, Brad Roberts wrote:
> On 1/11/2012 11:16 PM, Jacob Carlborg wrote:
>> On 2012-01-11 21:34, Walter Bright wrote:
>>> On 1/11/2012 12:29 PM, Zachary Lund wrote:
>>>> D1 or D2 both don't have a very accurate definition. C and C++ has
>>>> several
>>>> hundred pages of specifications and while I'm hopefully not expecting
>>>> that, I do
>>>> want some certainty on what is *supposed* to happen.
>>>>
>>>> There is also no versioning. D2 is definitely different from D1 in the
>>>> case that
>>>> it's not backwards compatible, but version for the actual example
>>>> implementation
>>>> isn't enough, especially when that implementation doesn't always do
>>>> what it's
>>>> supposed to do.
>>>
>>> Please file bug reports for any errors/omissions in the specification on
>>> bugzilla.
>>
>> That's the whole point. It's not clear what the actual specification IS. Is it DMD, dlang.org or TDPL?
>
> The website is the spec.  DMD is the reference instantiation of that spec.  TDPL is a re-framing of it.
>
> Now, given that none of the three are perfect, discrepancies exist which obviously lead to questions.  That's where
> bugzilla comes in to record and track the queue of issues to resolve among them.  Where there's issues, until it's been
> examined, any of the parties could be at fault.
>
> My 2 cents,
> Brad

In all honesty, the website can barely be called a spec. Sure, it has grammar and a few notes on semantics, but it's not even close to what people expect from a programming language specification in this day and age (see C, C++, C#, F#, etc specifications). I'd call it a guide at best.

If someone (probably among the DMD developers) was willing to flesh out a clean and complete grammar definition for the language (preferably in the form of one EBNF file, independent of doc format), I'd personally be willing to put in effort to write a spec around it.

- Alex
January 12, 2012
On 2012-01-12 08:30, Brad Roberts wrote:
> On 1/11/2012 11:16 PM, Jacob Carlborg wrote:
>> On 2012-01-11 21:34, Walter Bright wrote:
>>> On 1/11/2012 12:29 PM, Zachary Lund wrote:
>>>> D1 or D2 both don't have a very accurate definition. C and C++ has
>>>> several
>>>> hundred pages of specifications and while I'm hopefully not expecting
>>>> that, I do
>>>> want some certainty on what is *supposed* to happen.
>>>>
>>>> There is also no versioning. D2 is definitely different from D1 in the
>>>> case that
>>>> it's not backwards compatible, but version for the actual example
>>>> implementation
>>>> isn't enough, especially when that implementation doesn't always do
>>>> what it's
>>>> supposed to do.
>>>
>>> Please file bug reports for any errors/omissions in the specification on
>>> bugzilla.
>>
>> That's the whole point. It's not clear what the actual specification IS. Is it DMD, dlang.org or TDPL?
>
> The website is the spec.  DMD is the reference instantiation of that spec.  TDPL is a re-framing of it.
>
> Now, given that none of the three are perfect, discrepancies exist which obviously lead to questions.  That's where
> bugzilla comes in to record and track the queue of issues to resolve among them.  Where there's issues, until it's been
> examined, any of the parties could be at fault.
>
> My 2 cents,
> Brad

When there is a difference it's hard to know which parts (dlang, dmd, tdpl) are correct and which parts a wrong.

-- 
/Jacob Carlborg
January 12, 2012
On 1/11/2012 11:16 PM, Jacob Carlborg wrote:
> That's the whole point. It's not clear what the actual specification IS. Is it
> DMD, dlang.org or TDPL?
>

It's the "Language Reference" section on dlang.org.
January 12, 2012
On 1/11/2012 11:30 PM, Brad Roberts wrote:
> The website is the spec.  DMD is the reference instantiation of that spec.  TDPL is a re-framing of it.

To be fair, TDPL is not meant as a specification. It's meant as an explanation and guide to how to use D effectively.
January 12, 2012
On 12/01/12 5:54 PM, Walter Bright wrote:
> On 1/11/2012 11:16 PM, Jacob Carlborg wrote:
>> That's the whole point. It's not clear what the actual specification
>> IS. Is it
>> DMD, dlang.org or TDPL?
>>
>
> It's the "Language Reference" section on dlang.org.

Yes, but there's differences between the language reference and what DMD implements. Sometimes the language reference is right, sometimes DMD is right. The point is, there's no way for us to know. Only you can decide what is right.

One example off the top of my head (there are many more):

From the Lexical page on dlang.org

q{ @ } // error, @ is not a valid D token

But DMD accepts this.

How do we know who is right and who is wrong? Should DMD reject that, or is the spec wrong?

The problem is exacerbated by the fact that DMD has lots of language bugs, so many people assume that the spec is right and DMD is wrong, but it's often the other way round!

You've said to post bugs, but these don't receive any attention. For example, here's two bugs about the lack of documentation on .stringof, one from 2009 and one from early 2011:

http://d.puremagic.com/issues/show_bug.cgi?id=3007
http://d.puremagic.com/issues/show_bug.cgi?id=5404

Neither of which have received any comments or clarifications.

If things are documented then the community will implement them and the community will write tutorials about them. I suspect the #1 reason for lack of tutorials is because no one knows what D is, except you.

We need a real, up to date, and detailed language specification! Leave the implementation to us.

In fact, in many cases, all we need is a "DMD is right in this case" and we can even do the documentation!

I've already submitted a pull request for the q{ @ } issue above. Can someone please either reject it saying that it is wrong, or accept it so that we can move towards a more complete specification.

https://github.com/D-Programming-Language/d-programming-language.org/pull/27
« First   ‹ Prev
1 2 3 4 5 6 7 8 9 10 11