Thread overview
[dmd-beta] dmd 1.062 and 2.047 beta
Jun 10, 2010
Don Clugston
Jun 10, 2010
Walter Bright
June 10, 2010

--- On Thu, 6/10/10, Don Clugston <dclugston at googlemail.com> wrote:

> On 10 June 2010 18:07, Steve
> Schveighoffer <schveiguy at yahoo.com>
> wrote:
> > ----- Original Message ----
> >> From: Don Clugston <dclugston at googlemail.com>
> >
> >> That's untrue, for
> >> three reasons. Firstly, and most importantly, the
> version information is
> >> indicated by the date the bug was filed; people
> are almost always using the
> >> latest version.
> >
> > The date filed is not nearly as useful as the version. Quick, compile the code with dmd circa 5/24!  Your assumption is very wrong, people don't use the latest version often because a) it's easier not to update your code whenever a new version comes out that doesn't interest them (new features don't affect them, or bugs fixed don't affect them) or b) the newest version has some other bug that makes it unable to compile/use their code.
> 
> It really doesn't work like that. Most bugs persist for a
> very long
> time, and are easy to reproduce.

Most bugs for what?  The compiler is maintained by one person, so he has control over everything, and can have discipline as to what changes occur.  But a project such as Phobos or Tango has much more instability and modularity.

> Are your comments based on experience with finding them helpful?

Yes.  Mostly they were bugs that were filed against Tango, but were actually compiler bugs.  I've chased bugs trying to reproduce them for a long time, only to find that my compiler version was slightly different than the reporter's.

Phobos is more coupled to the compiler version, but dmd+phobos is a big project.  When bugs crop up that appear related to one part of the project, but are actually in some other place, having every part being the same can be critical for reproduction.  Someone working on phobos is not likely to bother to constantly update the compiler (i.e. me), especially when D2 is feature-frozen.  So when something *doesn't* reproduce, the next step is to make your environment exactly like the reporter's.  If the reporter doesn't give you that info, you have to ask it, which is easily circumvented by asking for it on the bug report.  I wished many times that Tango had a field to identify the compiler used.

> My
> experience after looking at many hundreds of bugs is that
> the version
> numbers are not useful at all. Really not.

Then you are lucky.

-Steve




June 10, 2010
On 10 June 2010 23:45, Steve Schveighoffer <schveiguy at yahoo.com> wrote:
>
>
> --- On Thu, 6/10/10, Don Clugston <dclugston at googlemail.com> wrote:
>
>> On 10 June 2010 18:07, Steve
>> Schveighoffer <schveiguy at yahoo.com>
>> wrote:
>> > ----- Original Message ----
>> >> From: Don Clugston <dclugston at googlemail.com>
>> >
>> >> That's untrue, for
>> >> three reasons. Firstly, and most importantly, the
>> version information is
>> >> indicated by the date the bug was filed; people
>> are almost always using the
>> >> latest version.
>> >
>> > The date filed is not nearly as useful as the version. Quick, compile the code with dmd circa 5/24! ?Your assumption is very wrong, people don't use the latest version often because a) it's easier not to update your code whenever a new version comes out that doesn't interest them (new features don't affect them, or bugs fixed don't affect them) or b) the newest version has some other bug that makes it unable to compile/use their code.
>>
>> It really doesn't work like that. Most bugs persist for a
>> very long
>> time, and are easy to reproduce.
>
> Most bugs for what? ?The compiler is maintained by one person, so he has control over everything, and can have discipline as to what changes occur. ?But a project such as Phobos or Tango has much more instability and modularity.
>
>> Are your comments based on experience with finding them helpful?
>
> Yes. ?Mostly they were bugs that were filed against Tango, but were actually compiler bugs. ?I've chased bugs trying to reproduce them for a long time, only to find that my compiler version was slightly different than the reporter's.
>
> Phobos is more coupled to the compiler version, but dmd+phobos is a big project. ?When bugs crop up that appear related to one part of the project, but are actually in some other place, having every part being the same can be critical for reproduction. ?Someone working on phobos is not likely to bother to constantly update the compiler (i.e. me), especially when D2 is feature-frozen. ?So when something *doesn't* reproduce, the next step is to make your environment exactly like the reporter's. ?If the reporter doesn't give you that info, you have to ask it, which is easily circumvented by asking for it on the bug report. ?I wished many times that Tango had a field to identify the compiler used.


OK, now I see where you're coming from in. In that case, the compiler is part of the environment, and you really need to know it. Tango is trying to work with multiple compiler versions. Phobos doesn't have that problem, since you always know that the compiler and library are matched.

>> My
>> experience after looking at many hundreds of bugs is that
>> the version
>> numbers are not useful at all. Really not.
>
> Then you are lucky.

It's not luck. It's the advantage of having the standard library and compiler as a single package. At some time, we may lose this luxury. And then I agree, it becomes critical to know the compiler version.
June 10, 2010



----- Original Message ----
> From: Don Clugston <dclugston at googlemail.com>


> OK, now I see where you're coming from in. In that case, the
> compiler
> is part of the environment, and you really need to know it. Tango
> is
> trying to work with multiple compiler versions. Phobos doesn't
> have
> that problem, since you always know that the compiler and library
> are
> matched.

I'll give you a scenario.  I develop some component of phobos, lets say the networking part.  My code existed since 2.047, and hasn't changed.  Someone reports an error in the networking code, something that seems to occur only when you use the networking code in a certain way, and only on 2.050-2.055.  We are now on 2.060, and I can't reproduce it.  This is not unheard of.  As coupled as the compiler and the phobos code is, *user code* works across many versions of the compiler/phobos, and bugs can show up in strange ways.

I'm not saying that we have to test for dmd/phobos combinations that are not released, I'm saying sometimes software fails with seemingly unrelated changes and if you don't know what to use in order to reproduce it, fixing it gets very difficult.

Also, I don't see how the information hurts.  Just ignore it if you don't care what version was reported.

What does hurt however, is asking a question to a reporter "what version are you using" and then not allowing them to give an accurate answer.

-Steve




June 10, 2010

Steve Schveighoffer wrote:
> Phobos is more coupled to the compiler version, but dmd+phobos is a big project.  When bugs crop up that appear related to one part of the project, but are actually in some other place, having every part being the same can be critical for reproduction.  Someone working on phobos is not likely to bother to constantly update the compiler (i.e. me), especially when D2 is feature-frozen.  So when something *doesn't* reproduce, the next step is to make your environment exactly like the reporter's.  If the reporter doesn't give you that info, you have to ask it, which is easily circumvented by asking for it on the bug report.  I wished many times that Tango had a field to identify the compiler used.
>
> 

Phobos /is/ tied to the dmd version. I only try to repro a bug against the latest versions. If it is not reproducible, then the bug gets disposed as "worksforme". I don't see much point in going back to try to figure out which version it got fixed in.