Thread overview
[dmd-internals] default dmd target == debdmd?
Aug 27, 2010
Don Clugston
Aug 27, 2010
Don Clugston
Aug 27, 2010
Don Clugston
Aug 28, 2010
Denis
Aug 27, 2010
Walter Bright
August 27, 2010
I was in the process of doing some windows phobos development, so I decided to start using the latest compiler from trunk.  But when I started building druntime and phobos, I was getting these printouts:

Max # of fixups = 0
Max # of fixups = 1
Max # of fixups = 4
Max # of fixups = 1
...

I thought WTF?  Well, it turns out the default build of dmd if you just do make -f win32.mak is debdmd, not dmd.

Is there a good reason for this?  If not, can we change the default target to dmd?

-Steve




August 27, 2010
On 27 August 2010 17:15, Steve Schveighoffer <schveiguy at yahoo.com> wrote:
> I was in the process of doing some windows phobos development, so I decided to start using the latest compiler from trunk. ?But when I started building druntime and phobos, I was getting these printouts:
>
> Max # of fixups = 0
> Max # of fixups = 1
> Max # of fixups = 4
> Max # of fixups = 1
> ...
>
> I thought WTF? ?Well, it turns out the default build of dmd if you just do make -f win32.mak is debdmd, not dmd.
>
> Is there a good reason for this? ?If not, can we change the default target to dmd?

It's so you can debug the compiler.Pretty much the only time you want the release version is when making an official release.
August 27, 2010



----- Original Message ----
> From: Don Clugston <dclugston at googlemail.com>
> To: Discuss the internals of DMD <dmd-internals at puremagic.com>
> Sent: Fri, August 27, 2010 11:21:20 AM
> Subject: Re: [dmd-internals] default dmd target == debdmd?
> 
> On 27 August 2010 17:15, Steve Schveighoffer <schveiguy at yahoo.com> wrote:
> > I  was in the process of doing some windows phobos development, so I decided
>to
> > start using the latest compiler from trunk.  But when I started  building druntime and phobos, I was getting these  printouts:
> >
> > Max # of fixups = 0
> > Max # of fixups =  1
> > Max # of fixups = 4
> > Max # of fixups = 1
> >  ...
> >
> > I thought WTF?  Well, it turns out the default build of dmd  if you just do
>make
> > -f win32.mak is debdmd, not dmd.
> >
> > Is  there a good reason for this?  If not, can we change the default target
>to
> > dmd?
> 
> It's so you can debug the compiler.Pretty much the only  time you want the release version is when making an official  release.

Or when you want to utilize unreleased fixes...

Building the debug version by default goes against all makefile convention I've ever seen.  It might be useful for you, but it's not for anyone else.  I have no idea how to debug the compiler.  I would expect that if I were to learn how to debug the compiler, I probably wouldn't mind learning how to type in make -f win32.mak debdmd.

-Steve




August 27, 2010

Steve Schveighoffer wrote:
>
> I thought WTF?  Well, it turns out the default build of dmd if you just do make -f win32.mak is debdmd, not dmd.
>
> Is there a good reason for this?  If not, can we change the default target to dmd?
>
> 

The reason is so I can just type "make" when doing endless debugging builds.
August 27, 2010
There are better ways to do this.

-Steve



----- Original Message ----
> From: Walter Bright <walter at digitalmars.com>
> To: Discuss the internals of DMD <dmd-internals at puremagic.com>
> Sent: Fri, August 27, 2010 3:32:29 PM
> Subject: Re: [dmd-internals] default dmd target == debdmd?
> 
> 
> 
> Steve Schveighoffer wrote:
> > 
> > I thought WTF?  Well,  it turns out the default build of dmd if you just do
>make -f win32.mak is  debdmd, not dmd.
> > 
> > Is there a good reason for this?  If not,  can we change the default target
>to dmd?
> > 
> > 
> 
> The  reason is so I can just type "make" when doing endless debugging  builds.
> _______________________________________________
> dmd-internals  mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals
> 



August 27, 2010
On 27 August 2010 17:28, Steve Schveighoffer <schveiguy at yahoo.com> wrote:
>
>
>
>
> ----- Original Message ----
>> From: Don Clugston <dclugston at googlemail.com>
>> To: Discuss the internals of DMD <dmd-internals at puremagic.com>
>> Sent: Fri, August 27, 2010 11:21:20 AM
>> Subject: Re: [dmd-internals] default dmd target == debdmd?
>>
>> On 27 August 2010 17:15, Steve Schveighoffer <schveiguy at yahoo.com> wrote:
>> > I ?was in the process of doing some windows phobos development, so I decided
>>to
>> > start using the latest compiler from trunk. ?But when I started ?building druntime and phobos, I was getting these ?printouts:
>> >
>> > Max # of fixups = 0
>> > Max # of fixups = ?1
>> > Max # of fixups = 4
>> > Max # of fixups = 1
>> > ?...
>> >
>> > I thought WTF? ?Well, it turns out the default build of dmd ?if you just do
>>make
>> > -f win32.mak is debdmd, not dmd.
>> >
>> > Is ?there a good reason for this? ?If not, can we change the default target
>>to
>> > dmd?
>>
>> It's so you can debug the compiler.Pretty much the only ?time you want the release version is when making an official ?release.
>
> Or when you want to utilize unreleased fixes...

I do not think we should encourage that. Nobody should really be doing that unless they are helping debug/test the compiler. If the fixes are that important, we should be doing a release.

Note that even when developing Phobos, you shouldn't ordinarily be checking in code which depends on the latest compiler bugfix. Every time that has happened so far, a compiler beta release has been made. It's not reasonable to expect everyone working on or testing Phobos, to build the compiler themselves.
August 27, 2010



----- Original Message ----
> From: Don Clugston <dclugston at googlemail.com>
> To: Discuss the internals of DMD <dmd-internals at puremagic.com>
> Sent: Fri, August 27, 2010 4:27:13 PM
> Subject: Re: [dmd-internals] default dmd target == debdmd?
> 
> On 27 August 2010 17:28, Steve Schveighoffer <schveiguy at yahoo.com>  wrote:
> >
> >
> >
> >
> > ----- Original Message  ----
> >> From: Don Clugston <dclugston at googlemail.com>
> >>  To: Discuss the internals of DMD <dmd-internals at puremagic.com>
> >>  Sent: Fri, August 27, 2010 11:21:20 AM
> >> Subject: Re: [dmd-internals]  default dmd target == debdmd?
> >>
> >> On 27 August 2010 17:15,  Steve Schveighoffer <schveiguy at yahoo.com> wrote:
> >>  > I  was in the process of doing some windows phobos development, so I
>decided
> >>to
> >> > start using the latest compiler from  trunk.  But when I started
 building
> >> > druntime and phobos, I was  getting these  printouts:
> >> >
> >> > Max # of fixups =  0
> >> > Max # of fixups =  1
> >> > Max # of fixups =  4
> >> > Max # of fixups = 1
> >> >  ...
> >>  >
> >> > I thought WTF?  Well, it turns out the default build of  dmd  if you just
>do
> >>make
> >> > -f win32.mak is debdmd, not  dmd.
> >> >
> >> > Is  there a good reason for this?  If  not, can we change the default
>target
> >>to
> >> >  dmd?
> >>
> >> It's so you can debug the compiler.Pretty much the  only  time you want the release version is when making an official   release.
> >
> > Or when you want to utilize unreleased  fixes...
> 
> I do not think we should encourage that. Nobody should really be  doing that unless they are helping debug/test the compiler. If the fixes  are that important, we should be doing a release.
> 
> Note that even when  developing Phobos, you shouldn't ordinarily be checking in code which depends  on the latest compiler bugfix. Every time that has happened so far, a  compiler beta release has been made. It's not reasonable to expect everyone  working on or testing Phobos, to build the compiler  themselves.

I understand this point of view, and I agree.  I won't use the trunk version in the future.  I still don't think the default should be debug mode, it's very confusing.  I can envision people building a released version of the source (i.e. from a downloaded tarball) and expecting it to be a release version without having to specify different arguments.  How much will this happen?  Not sure, but why provide the source if you don't want people to compile it...

-Steve




August 27, 2010
On 27 August 2010 22:34, Steve Schveighoffer <schveiguy at yahoo.com> wrote:
>
>
>
>
> ----- Original Message ----
>> From: Don Clugston <dclugston at googlemail.com>
>> To: Discuss the internals of DMD <dmd-internals at puremagic.com>
>> Sent: Fri, August 27, 2010 4:27:13 PM
>> Subject: Re: [dmd-internals] default dmd target == debdmd?
>>
>> On 27 August 2010 17:28, Steve Schveighoffer <schveiguy at yahoo.com> ?wrote:
>> >
>> >
>> >
>> >
>> > ----- Original Message ?----
>> >> From: Don Clugston <dclugston at googlemail.com>
>> >> ?To: Discuss the internals of DMD <dmd-internals at puremagic.com>
>> >> ?Sent: Fri, August 27, 2010 11:21:20 AM
>> >> Subject: Re: [dmd-internals] ?default dmd target == debdmd?
>> >>
>> >> On 27 August 2010 17:15, ?Steve Schveighoffer <schveiguy at yahoo.com> wrote: ?> I ?was in the process of doing some windows phobos development, so I
>>decided
>> >>to
>> >> > start using the latest compiler from ?trunk. ?But when I started
> ?building
>> >> > druntime and phobos, I was ?getting these ?printouts:
>> >> >
>> >> > Max # of fixups = ?0
>> >> > Max # of fixups = ?1
>> >> > Max # of fixups = ?4
>> >> > Max # of fixups = 1
>> >> > ?...
>> >> ?>
>> >> > I thought WTF? ?Well, it turns out the default build of ?dmd ?if you just
>>do
>> >>make
>> >> > -f win32.mak is debdmd, not ?dmd.
>> >> >
>> >> > Is ?there a good reason for this? ?If ?not, can we change the default
>>target
>> >>to
>> >> > ?dmd?
>> >>
>> >> It's so you can debug the compiler.Pretty much the ?only ?time you want the release version is when making an official ? release.
>> >
>> > Or when you want to utilize unreleased ?fixes...
>>
>> I do not think we should encourage that. Nobody should really be ?doing that unless they are helping debug/test the compiler. If the fixes ?are that important, we should be doing a release.
>>
>> Note that even when ?developing Phobos, you shouldn't ordinarily be checking in code which depends ?on the latest compiler bugfix. Every time that has happened so far, a ?compiler beta release has been made. It's not reasonable to expect everyone ?working on or testing Phobos, to build the compiler ?themselves.
>
> I understand this point of view, and I agree. ?I won't use the trunk version in the future. ?I still don't think the default should be debug mode, it's very confusing. ?I can envision people building a released version of the source (i.e. from a downloaded tarball) and expecting it to be a release version without having to specify different arguments. ?How much will this happen? ?Not sure, but why provide the source if you don't want people to compile it...
>
> -Steve

It's often happened that someone hits a compiler segfault. By
compiling a debug version, and running:
windbg dmd foo.d
they can find which line it's segfaulting on. This has been quite
useful in the past; even people with absolutely no knowledge of C++
have been able to provide helpful info about bugs.
Hopefully, though, most of the segfaults are gone, now <g>.
August 28, 2010
On Sat, Aug 28, 2010 at 12:46 AM, Don Clugston <dclugston at googlemail.com> wrote:
>
> Hopefully, though, most of the segfaults are gone, now <g>.
>

Most, but not all - I just submitted another one: http://d.puremagic.com/issues/show_bug.cgi?id=4743

Should be easy one to fix, though.