April 22, 2005
"Walter" <newshound@digitalmars.com> wrote in message
news:d49pck$1c5d$1@digitaldaemon.com...
......
>> So I presumed that a genuine D enthusiast
>> was not only completing the programs, he
>> was also 'polishing' the D code.
>
> There's nothing dirty going on .......
> ...... reflects the enthusiasm of Dave and our interest in
> making D perform well.

There was no intention at all to smell dirty tricks.
It just seemed impossible to me at this stage that
D is beating Intel C that easily if Intel wasn't penalized
for missing benchmark programs. I am equally
interested to see D getting a boost, because I
am absolutely convinced that D is the answer to
most prayers of tortured programmers everywhere.



> ....... It'll perform about exactly like compiled
> C would, especially since DMD and DMC share the
> optimizer and code generator.

That is where I am expecting Intel to recognize
the new realities and contribute generously to
the D development. We all would throw away
our AMD cpu's to show our gratitude to
Chipzilla, wouldn't we?   ; )



>> Furthermore I have not found any apps
>> yet where D 0.121 could beat gcc 3.43 on
>> a Windows system in terms of execution
>> speed (compile time is a different story).
>
> Here's one: www.digitalmars.com/d/cppstrings.html

Yeah, right. But even Pascal could beat C on
this one in the good ol' days. It probably would
have been better for me to write "any of my apps"
instead of "any apps". Take this as a correction
to my previous post.



> ........ opportunities possible in D that are not explored.
> To do so well compared to compilers that have been aggressively
> developed as optimizing compilers by engineers thoroughly familiar
> with the target CPU chips, is doing rather well.

I started to get impressed already some time
ago when I have recognized that D can take on its
parent (dmc) and is aparently lacking 'alpha stage
performance deficiencies'. Good job (once again)!



April 22, 2005
"Anders F Björklund" <afb@algonet.se> wrote in message news:d4abp4$2071$1@digitaldaemon.com...
> Bob W wrote:
>

> This is confused. While DMD 0.121 is fast,
> you can get D for GCC 3.4.3 if you like that
> back-end better ?

I don't, unless I need it in terms of code generation,
compatibility or GNU C extensions, C99, etc.,
because gcc compiler (-O3) and linker are dreadfully
slow. That might have changed with gcc 4.0 just a
little bit, but I have not tried the 4.0, since it was
released only 2 days ago. So one slow compiler/linker
system on my computer is enough. No GDC, sorry.



> It would be more "fair" to
> compare DMC with GCC (C), and DMD with GDC (D) ?
> (to compare the output of the actual compilers)

It would, but I will always use and compare to
whatever suits me best. Comparison will not be
scientific in nature (neither are the benchmarks
we're talking about). Running DMC on my machine
is no option for various reasons, and GDC is no option
because I strongly suspect that compile/link times
will be as frustratingly slow as these of my gcc.
So my comparison is between the best C compiler
for me (gcc) and the best language/compiler/linker
combination I have found over the past years (DMD).



> However, I think GCC loses out to both the Intel
> compiler for X86, and the IBM compiler for PPC ?
> When it comes to speed, that is. I think the price
> for GCC is right :-), and is definitely more open.

I agree. Furthermore gcc caught me a couple of
years ago with their features, so any other C compiler
won't do my programs any good. Should I ever
wish to rewrite them, I might opt to port them to D.



April 22, 2005
Bob W wrote:

> I don't, unless I need it in terms of code generation,
> compatibility or GNU C extensions, C99, etc.,
> because gcc compiler (-O3) and linker are dreadfully
> slow. That might have changed with gcc 4.0 just a
> little bit, but I have not tried the 4.0, since it was
> released only 2 days ago. So one slow compiler/linker
> system on my computer is enough. No GDC, sorry.

GCC 3 is a lot slower than GCC 2 was (better too, but)
I've heard GCC 4 sets it straight again, and then some.

I'm using ccache, which I've found to be a great help.
(and of course, it doesn't help much the first time)

> I agree. Furthermore gcc caught me a couple of
> years ago with their features, so any other C compiler
> won't do my programs any good. Should I ever
> wish to rewrite them, I might opt to port them to D.

I normally write portable programs... And mostly for legacy.
So I haven't been using any GCC-only features (just stuff
like inline, that are optional) Some Mac-only stuff, though.
Then again, I'm not using C++ very much. Just plain old C.

--andersr
April 22, 2005
Georg Wrede schrieb:
> Actually, the fact that D has got them all, and C++ (etc) haven't, _could_ be construed as telling something about the language itself!
> 
> Think about it. The number of C++ users is multiple to those using D. And the number of 5+ years' veteran Gurus outnumbers what D has with a margin I can't even imagine. (Do you know any D gurus with 5+ years?)
> 
> So, what is left, is that D makes it (presumably a lot) easier to write some of the more unusual benchmarks. Right?

Don't forget: there may be relatively few D users, but many of them *want* to prove that D is better. C++ users don't have any incentive to prove anything. Very few of the gurus even believe that their language is superior. They simply stick with what has proven to be good enough for them.

The best way to test D's superiority would therefore be, if experienced D programmers try write high quality code in C++, putting in the same effort as in the D code. Only if this is done honestly, the outcome of the shootout has some real meaning.

(Comparing with other languages than C++ probably has little meaning, since they either are too different or (like C) too similar to a subset to D.)
April 22, 2005
"Anders F Björklund" <afb@algonet.se> wrote in message news:d4ard8$2cl8$1@digitaldaemon.com...
> Bob W wrote:
>
>> I don't, unless I need it in terms of code generation,
>> compatibility or GNU C extensions, C99, etc.,
>> because gcc compiler (-O3) and linker are dreadfully
>> slow. That might have changed with gcc 4.0 just a
>> little bit, but I have not tried the 4.0, since it was
>> released only 2 days ago. So one slow compiler/linker
>> system on my computer is enough. No GDC, sorry.
>
> GCC 3 is a lot slower than GCC 2 was (better too, but)
> I've heard GCC 4 sets it straight again, and then some.

I hope you are right. I am still suspicious: a 20% compile speed increase won't help much, GCC needs at least several 100% in order to compete with the fast guys (dmc, lcc, VC). If it hadn't all the other advantages I would have probably dumped it a long time ago.


> I'm using ccache, which I've found to be a great help.
> (and of course, it doesn't help much the first time)

Maybe I am wrong, but I guess ccache won't help me
because of my programming style:

Ever since I have stopped writing commercial programs
I have also stopped using make, modules, unnecessary
header files, etc. I'd rather #include my own library sources
to new code instead of using precompiled libraries.
Everytime I change my code or my compiler, my programs
get a compulsary clean buid. That is why I like the compilers,
CPUs and hard drives to be as fast as possible. I know it
does not always work this way but I'd curse myself if
I started to use conventional C programming techniques
again for casual applications.



> I normally write portable programs... And mostly for legacy. So I haven't been using any GCC-only features (just stuff like inline, that are optional) Some Mac-only stuff, though. Then again, I'm not using C++ very much. Just plain old C.

In my case: (almost) never portable, never legacy. GCC gives me nested functions, so I gladly use them. Believe me, this feature helps if someone like me is stupid enough to pack up to several 100k of source code in one file.

But if D succeeds we can anyway happily throw away
all of our C sources - after having them ported to D
of course.  : )



April 22, 2005
Bob W wrote:

> Ever since I have stopped writing commercial programs
> I have also stopped using make, modules, unnecessary
> header files, etc. I'd rather #include my own library sources
> to new code instead of using precompiled libraries.

You write everything yourself ? No libraries ? Wow. Or "ouch"...
I guess that build helpers or packagers are totally "out" then ?

> Everytime I change my code or my compiler, my programs
> get a compulsary clean buid. That is why I like the compilers,
> CPUs and hard drives to be as fast as possible. I know it
> does not always work this way but I'd curse myself if
> I started to use conventional C programming techniques
> again for casual applications.

ccache is especially good for that "clean rebuild" scenario...

The idea with ccache is that you only have to run the preprocessor on
the code. If the hash result of that (and the compiler) hasn't changed, neither has the object code so it just hands you a copy from the cache.
It's at http://ccache.samba.org/

Make is otherwise good at keeping track of what needs compiling ?

> In my case: (almost) never portable, never legacy. GCC
> gives me nested functions, so I gladly use them. Believe
> me, this feature helps if someone like me is stupid enough
> to pack up to several 100k of source code in one file.

Pleasure to meet you sir, there's not too many Real Men left ? :-)

Let's just say that our programming methodology varies. A lot...

--anders
April 22, 2005
"Anders F Björklund" <afb@algonet.se> wrote in message news:d4b54n$2lru$2@digitaldaemon.com...

> You write everything yourself ? No libraries ? Wow. Or "ouch"...

"Ouch" is correct. But as long as it is fun and nobody
asks me whether I'll be able to meet the deadline, its ok.
It is no challenge to use qsort() if it is not completely
rewritten for inlining before it is used, don't you think so?
And it would be just a touch too easy to use memcpy,
my own version is faster. This might have saved me
a couple of millisecs per week on average.



> I guess that build helpers or packagers are totally "out" then ?

How did you know this? You can add debuggers to the
"out" group as well. I have used one a couple of years
back though. Conclusions: What for? No fun!



> ccache is especially good for that "clean rebuild" scenario...
>
> The idea with ccache is that you only have to run the preprocessor on the code. If the hash result of that (and the compiler) hasn't changed, neither has the object code so it just hands you a copy from the cache. It's at http://ccache.samba.org/

What copy? Under normal circumstances I'll get one
big object file and this changes every time I recompile.
While I can imagine that ccache is useful for the standard
way of doing C, I am still doubting that it can do me any
good if I insist of having one file for each of my projects.
But I'll have a closer look sooner or later. Thanks for the
hint anyway.



> Make is otherwise good at keeping track of what needs compiling ?

Same thing: one single source (with several source code includes) gets usually compiled. Therefore I stopped using 'make' some time ago, because it just doesn't make sense for my environment.



>> In my case: (almost) never portable, never legacy. GCC gives me nested functions, so I gladly use them. Believe me, this feature helps if someone like me is stupid enough to pack up to several 100k of source code in one file.
>
> Pleasure to meet you sir, there's not too many Real Men left ? :-)

It is actually getting better nowadays. I started (reluctantly) to
add sufficient comments to my code. This keeps me from dumping
my old programs and rewriting them for simplicity reasons, if
I ever need to change them.



April 23, 2005
The First OT: anybody ever wonder why my posts look decent in comparson with some others?

Two things:

1) I use a decent newsreader.

2) I care about how pople reading and responding to my post (and even more, people responding) would feel.

Bob W wrote:
> "Anders F Björklund" <afb@algonet.se> wrote in message news:d4b54n$2lru$2@digitaldaemon.com...
> 
>> You write everything yourself ? No libraries ? Wow. Or "ouch"...
> 
> "Ouch" is correct. But as long as it is fun and nobody asks me
> whether I'll be able to meet the deadline, its ok. It is no challenge
> to use qsort() if it is not completely rewritten for inlining before
> it is used, don't you think so? And it would be just a touch too easy
> to use memcpy, my own version is faster. This might have saved me a
> couple of millisecs per week on average.
> 
>> I guess that build helpers or packagers are totally "out" then ?
> 
> How did you know this? You can add debuggers to the "out" group as
> well. I have used one a couple of years back though. Conclusions:
> What for? No fun!
> 
>> ccache is especially good for that "clean rebuild" scenario...
>> 
>> The idea with ccache is that you only have to run the preprocessor
>> on the code. If the hash result of that (and the compiler) hasn't
>> changed, neither has the object code so it just hands you a copy
>> from the cache. It's at http://ccache.samba.org/
> 
> What copy? Under normal circumstances I'll get one big object file
> and this changes every time I recompile. While I can imagine that
> ccache is useful for the standard way of doing C, I am still doubting
> that it can do me any good if I insist of having one file for each of
> my projects. But I'll have a closer look sooner or later. Thanks for
> the hint anyway.
> 
>> Make is otherwise good at keeping track of what needs compiling ?
> 
> Same thing: one single source (with several source code includes)
> gets usually compiled. Therefore I stopped using 'make' some time
> ago, because it just doesn't make sense for my environment.
> 
>>> In my case: (almost) never portable, never legacy. GCC gives me
>>> nested functions, so I gladly use them. Believe me, this feature
>>> helps if someone like me is stupid enough to pack up to several
>>> 100k of source code in one file.
>> 
>> Pleasure to meet you sir, there's not too many Real Men left ? :-)
> 
> It is actually getting better nowadays. I started (reluctantly) to add sufficient comments to my code. This keeps me from dumping my old
> programs and rewriting them for simplicity reasons, if I ever need to
> change them.

Hmm, seems to me that some of the Religiously Touted Rights are actually worth something. For the rest, there just might be a few other Religious Rights there to catch.

(I remember the time when I had no respect for Dynamic Data Structures. And this lack of respect was only due to me not respecting the professor of that time.)
April 23, 2005
On Fri, 22 Apr 2005 23:54:12 +0200, Bob W wrote:

> "Anders F Björklund" <afb@algonet.se> wrote in message news:d4b54n$2lru$2@digitaldaemon.com...
> 
>> You write everything yourself ? No libraries ? Wow. Or "ouch"...
> 
> "Ouch" is correct. But as long as it is fun and nobody
> asks me whether I'll be able to meet the deadline, its ok.

Oh, I get it. "Programming as Recreation". You sir, are truly a sick individual ;-) (Actually, I can't wait til retirement so I can work on stuff just for fun)

-- 
Derek Parnell
Melbourne, Australia
http://www.dsource.org/projects/build
23/04/2005 10:43:33 AM
April 23, 2005
On Sat, 23 Apr 2005 03:17:16 +0300, Georg Wrede wrote:

> The First OT: anybody ever wonder why my posts look decent in comparson with some others?
> 
> Two things:
> 
> 1) I use a decent newsreader.

You do!? I thought you used "Mozilla Thunderbird 1.0" ;-)

> 2) I care about how pople reading and responding to my post (and even more, people responding) would feel.

I assume you mean "people" instead of "pople" ;-)

Just kidding - Aussies in general love pulling the rug from under people who appear a bit 'haughty' and/or 'righteous'.

-- 
Derek Parnell
Melbourne, Australia
23/04/2005 10:50:43 AM