Re: Can i plz has some template instantiation error stack traces?

2008-12-13 Thread Bill Baxter
On Sat, Dec 13, 2008 at 4:53 PM, Christian Kamm wrote: >>> LDC can haz. >>> >> >> orly? >> >> As in haz them now? or can potentially haz at some point in the future >> if someone decides to do it? > > Can haz now. Currently looking like so > > templerror.d(9): Error: identifier 'wrong' is not defi

Re: Can i plz has some template instantiation error stack traces?

2008-12-13 Thread Christian Kamm
Bill Baxter wrote: > Looks great. > Is there a DMD patch for that somewhere in bugzilla? I sent it directly to Walter a few months ago, but I'll also attach it to the enhancement request you just opened.

Re: Can i plz has some template instantiation error stack traces?

2008-12-13 Thread Bill Baxter
On Sat, Dec 13, 2008 at 5:07 PM, Christian Kamm wrote: > Bill Baxter wrote: >> Looks great. >> Is there a DMD patch for that somewhere in bugzilla? > > I sent it directly to Walter a few months ago, but I'll also attach it to > the enhancement request you just opened. Excellent! Thanks. Here's

Re: A template for method forwarding?

2008-12-13 Thread Christian Kamm
> So looks like bad stringof is the culprit, once again. Why use stringof when you have an alias? This works for me in D1 - if you discount default arguments and parameter storage classes (will templates ever be able to touch these?). template Forward(string clName, Methods...) { static if(Me

Re: A template for method forwarding?

2008-12-13 Thread Christopher Wright
Christian Kamm wrote: So looks like bad stringof is the culprit, once again. Why use stringof when you have an alias? This works for me in D1 - if you discount default arguments and parameter storage classes (will templates ever be able to touch these?). stringof sucks, but it's easy to work

Basic benchmark

2008-12-13 Thread bearophile
I have adapted another small benchmark to D. This benchmark is less interesting than the other ones because it mostly tests the optimizations done by the back-end. This means it's not a problem of the D language or its front-end, so even if DMD here shows to be not much efficient, LDC once finis

Re: A template for method forwarding?

2008-12-13 Thread Fawzi Mohamed
On 2008-12-13 15:29:19 +0100, Christopher Wright said: Christian Kamm wrote: So looks like bad stringof is the culprit, once again. Why use stringof when you have an alias? This works for me in D1 - if you discount default arguments and parameter storage classes (will templates ever be able

modifying the DMD compiler

2008-12-13 Thread Moritz
Hello, Im a student of computer science and at university, we're working on a distributed shared memory system, implemented as a C library. Im also a great fan of D, and so Im asking myself if I could connect D to the C library (which is no problem, as far as I know) and then modify the memo

Re: Basic benchmark

2008-12-13 Thread Tomas Lindquist Olsen
bearophile wrote: I have adapted another small benchmark to D. This benchmark is less interesting than the other ones because it mostly tests the optimizations done by the back-end. This means it's not a problem of the D language or its front-end, so even if DMD here shows to be not much effic

Re: Basic benchmark

2008-12-13 Thread Jarrett Billingsley
On Sat, Dec 13, 2008 at 11:16 AM, Tomas Lindquist Olsen wrote: > I tried this out with Tango + DMD 1.033, Tango + LDC r847 and GCC 4.3.2, my > timings are as follows, best of three: > > $ dmd bench.d -O -release -inline > long arith: 55630 ms > nested loop: 5090 ms > > > $ ldc bench.d -O3 -relea

Re: Basic benchmark

2008-12-13 Thread dsimcha
== Quote from Jarrett Billingsley (jarrett.billings...@gmail.com)'s article > On Sat, Dec 13, 2008 at 11:16 AM, Tomas Lindquist Olsen > wrote: > > I tried this out with Tango + DMD 1.033, Tango + LDC r847 and GCC 4.3.2, my > > timings are as follows, best of three: > > > > $ dmd bench.d -O -releas

Re: Moving GC

2008-12-13 Thread Fawzi Mohamed
On 2008-12-13 04:24:54 +0100, dsimcha said: == Quote from Christopher Wright (dhase...@gmail.com)'s article It means that you can't use one block for objects of multiple types. Sure you can, without being any worse off than under the current scheme. Mark the contents of the memory as an ar

Re: Basic benchmark

2008-12-13 Thread Jason House
Jarrett Billingsley wrote: > I hope bearophile will eventually understand that DMD is not good at > optimizing code, and so comparing its output to GCC's is ultimately > meaningless. Personally, I appreciate seeing this stuff from bearophile. I use D in ways where speed really does count. One

Re: Basic benchmark

2008-12-13 Thread Jarrett Billingsley
On Sat, Dec 13, 2008 at 12:55 PM, Jason House wrote: > Jarrett Billingsley wrote: > >> I hope bearophile will eventually understand that DMD is not good at >> optimizing code, and so comparing its output to GCC's is ultimately >> meaningless. > > Personally, I appreciate seeing this stuff from bea

Re: Basic benchmark

2008-12-13 Thread Fawzi Mohamed
On 2008-12-13 19:07:09 +0100, "Jarrett Billingsley" said: On Sat, Dec 13, 2008 at 12:55 PM, Jason House wrote: Jarrett Billingsley wrote: I hope bearophile will eventually understand that DMD is not good at optimizing code, and so comparing its output to GCC's is ultimately meaningless.

Re: modifying the DMD compiler

2008-12-13 Thread torhu
On 13.12.2008 17:16, Moritz wrote: Hello, Im a student of computer science and at university, we're working on a distributed shared memory system, implemented as a C library. Im also a great fan of D, and so Im asking myself if I could connect D to the C library (which is no problem, as far as

Re: Using DMD's -v to build dependencies

2008-12-13 Thread Sergey Gromov
Sat, 13 Dec 2008 07:37:18 +0900, Bill Baxter wrote: > So how fast is dmd -o-? Does this pretty much double the compile time? > An option to reuse a previously generated .deps might be nice. Here's the benchmark. I'm compiling dwt-samples\examples\helloworld\HelloWorld5.d from dwt trunk rev. 119

Re: Moving GC

2008-12-13 Thread Christopher Wright
dsimcha wrote: == Quote from Christopher Wright (dhase...@gmail.com)'s article It means that you can't use one block for objects of multiple types. Sure you can, without being any worse off than under the current scheme. Mark the contents of the memory as an array of void*s. This would have

Escaping closure (D1)

2008-12-13 Thread Denis Koroskin
Everyone understands that the following code is incorrect in D1: int delegate() foo(int x) { int n = x; auto bar = () { return n; }; // do stuff return bar; } Unfortunately, DMD doesn't detect this kind of errors at compile time, and the spec is not subject to change, so let's mak

Re: Moving GC

2008-12-13 Thread Don
Sean Kelly wrote: dsimcha wrote: What are the odds that some D implementation gets a moving GC in the foreseeable future? Minuscule. The GC isn't provided nearly enough type information to safely move memory right now, and I don't see that changing any time soon. Sean An related case t

Re: Basic benchmark

2008-12-13 Thread Bill Baxter
On Sun, Dec 14, 2008 at 3:07 AM, Jarrett Billingsley wrote: > On Sat, Dec 13, 2008 at 12:55 PM, Jason House > wrote: >> Jarrett Billingsley wrote: >> >>> I hope bearophile will eventually understand that DMD is not good at >>> optimizing code, and so comparing its output to GCC's is ultimately >>

Re: Using DMD's -v to build dependencies

2008-12-13 Thread Bill Baxter
Excellent, thanks for collecting and reporting that data, Sergey. So it's not too bad, but still that says to me that caching dependencies would be beneficial for bigger programs. But anyway, you it would certainly be hard to beat your script in terms of simplicity. Cached dependencies can be le

Re: Basic benchmark

2008-12-13 Thread Don
Bill Baxter wrote: On Sun, Dec 14, 2008 at 3:07 AM, Jarrett Billingsley wrote: On Sat, Dec 13, 2008 at 12:55 PM, Jason House wrote: Jarrett Billingsley wrote: I hope bearophile will eventually understand that DMD is not good at optimizing code, and so comparing its output to GCC's is ultima

Re: Basic benchmark

2008-12-13 Thread Walter Bright
bearophile wrote: Timings: C gcc: Long arithmetic: 11.15 s Nested Loops: 0.11 s D dmd: Long arithmetic: 63.7 s Nested Loops: 6.17 s I suggest running obj2asm on the resulting obj files and see what the real difference is.

Re: Basic benchmark

2008-12-13 Thread Bill Baxter
On Sun, Dec 14, 2008 at 4:41 AM, Don wrote: > Bill Baxter wrote: >> That said, LDC isn't quite there yet, especially on Windows, but it >> would be very encouraging to see Walter take at least a little >> interest in it. The transition would be a little painful for a while, >> but much less pain

LDC Windows exception handling

2008-12-13 Thread Christian Kamm
> Speaking of LDC, any chance that the exception handling on Win32 gets > fixed in the near future? No, unfortunately. It's a problem with LLVM only supporting Dwarf2 exception handling. I'm pretty sure it'd work if we used ELF for the object files and GCC for linking, but Windows people tell m

Re: modifying the DMD compiler

2008-12-13 Thread Jarrett Billingsley
On Sat, Dec 13, 2008 at 1:25 PM, torhu wrote: > On 13.12.2008 17:16, Moritz wrote: >> >> Hello, >> >> Im a student of computer science and at university, we're working on a >> distributed shared memory system, implemented as a C library. >> >> Im also a great fan of D, and so Im asking myself if I

Re: modifying the DMD compiler

2008-12-13 Thread Brad Roberts
Jarrett Billingsley wrote: > On Sat, Dec 13, 2008 at 1:25 PM, torhu wrote: >> On 13.12.2008 17:16, Moritz wrote: >>> Hello, >>> >>> Im a student of computer science and at university, we're working on a >>> distributed shared memory system, implemented as a C library. >>> >>> Im also a great fan o

Re: Basic benchmark

2008-12-13 Thread bearophile
Walter Bright: > I suggest running obj2asm on the resulting obj files and see what the > real difference is. I am sorry, I have just started learning X86 asm, I am not much good yet :-) Here you can see the asm from DMD followed by the one from GCC: http://codepad.org/Kjttfq4z Bye, bearophile

module(system) Identifier;

2008-12-13 Thread bearophile
The last changelog of D2: http://www.digitalmars.com/d/2.0/changelog.html#new2_021 Says: >Added -safe switch and module(system) Identifier; syntax.< I am not sure that's the best solution. A solution that I may like is a statement (that doesn't create a new scope, like the static if) like: safe

Re: module(system) Identifier;

2008-12-13 Thread BCS
Reply to bearophile, The last changelog of D2: http://www.digitalmars.com/d/2.0/changelog.html#new2_021 Says: Added -safe switch and module(system) Identifier; syntax.< I am not sure that's the best solution. I like the idea of being able to turn on or off different checks (BTW SafeD is

Re: Bit subscriptions, RAM columnwise layouts

2008-12-13 Thread BCS
Reply to Benjamin, Reply to bearophile, So today the caches have changed a little how optimal code has to be written in C. The authors say that a downside of C is that it forces the programmer to do such memory layout manually, and today this may lead to less performance. Darn you, now I'm g

Re: LDC Windows exception handling

2008-12-13 Thread Bill Baxter
On Sun, Dec 14, 2008 at 5:13 AM, Christian Kamm wrote: >> Speaking of LDC, any chance that the exception handling on Win32 gets >> fixed in the near future? > > No, unfortunately. > > It's a problem with LLVM only supporting Dwarf2 exception handling. I'm > pretty sure it'd work if we used ELF for

Poor Java

2008-12-13 Thread bearophile
This shows how much some poor Java programmers today feel the need for a bit more functional-programming in their language: http://jedi.codehaus.org/Examples But they are going to fail. That page also shows why array/lazy comprehensions will be a very good thing to add to D (I'm waiting for an a

Re: LDC Windows exception handling

2008-12-13 Thread aarti_pl
Bill Baxter pisze: On Sun, Dec 14, 2008 at 5:13 AM, Christian Kamm wrote: Speaking of LDC, any chance that the exception handling on Win32 gets fixed in the near future? No, unfortunately. It's a problem with LLVM only supporting Dwarf2 exception handling. I'm pretty sure it'd work if we used

Re: LDC Windows exception handling

2008-12-13 Thread Bill Baxter
On Sun, Dec 14, 2008 at 7:55 AM, aarti_pl wrote: > Bill Baxter pisze: >> >> On Sun, Dec 14, 2008 at 5:13 AM, Christian Kamm >> wrote: Speaking of LDC, any chance that the exception handling on Win32 gets fixed in the near future? >>> >>> No, unfortunately. >>> >>> It's a problem wi

Re: LDC Windows exception handling

2008-12-13 Thread dsimcha
== Quote from Christian Kamm (kamm-incasoftw...@removethis.de)'s article > > Speaking of LDC, any chance that the exception handling on Win32 gets > > fixed in the near future? > No, unfortunately. > It's a problem with LLVM only supporting Dwarf2 exception handling. I'm > pretty sure it'd work if

Re: Moving GC

2008-12-13 Thread Steven Schveighoffer
"Sean Kelly" wrote > == Quote from Christopher Wright (dhase...@gmail.com)'s article >> >> This isn't unreasonable, and it really just depends on how complete and >> how fast D's runtime reflection is. > > This would incur more memory overhead as well. Right now, we make > do with one bit per bloc

Re: Notes on Defective C++

2008-12-13 Thread Jim Hewes
"Christopher Wright" wrote in message news:ghlntc$ku...@digitalmars.com... > In this case, File should close itself in its destructor. Class A can't > close its file in its destructor because the file might have already been > collected and finalized. And you can't use a scope guard in this cas

Re: Basic benchmark

2008-12-13 Thread Jason House
Bill Baxter wrote: > I think the point is not to convince Walter to spend time working on > DMD's optimizer, but to convince him that the DMD optimizer is > hopelessly obsolete and thus should be abandoned in favor of another, > like LDC. There's also the 64-bit issue. I don't see Walter ever >

Re: Basic benchmark

2008-12-13 Thread Bill Baxter
On Sun, Dec 14, 2008 at 9:15 AM, Jason House wrote: > > I couldn't agree more! > > I never understood why people were so anti-gdc. I would not be surprised to > hear that the gdc developer(s) stopped after hearing just how little people > appreciated their hard work. > Well, I think it has mor

Re: Notes on Defective C++

2008-12-13 Thread Christopher Wright
Jim Hewes wrote: Maybe it's better to think of memory and non-memory resources as different things and handle them differently as opposed to lumping them together using the same mechanism. I'm not sure if there is already a way to deal with this in D as I'm not quite that familiar with D. It

Re: Basic benchmark

2008-12-13 Thread dsimcha
== Quote from Jason House (jason.james.ho...@gmail.com)'s article > I couldn't agree more! > I never understood why people were so anti-gdc. I would not be surprised to hear that the gdc developer(s) stopped after hearing just how little people appreciated their hard work. Well, GDC hasn't releas

Re: module(system) Identifier;

2008-12-13 Thread Walter Bright
bearophile wrote: The last changelog of D2: http://www.digitalmars.com/d/2.0/changelog.html#new2_021 Says: Added -safe switch and module(system) Identifier; syntax.< I am not sure that's the best solution. Doing it at the module level was deliberate. Not for technical reasons, but to make

Re: Basic benchmark

2008-12-13 Thread Walter Bright
Jarrett Billingsley wrote: Walter is the only one who can make DMD faster, and I think his time is much better spent on designing and maintaining the language. The reference compiler is just supposed to be _correct_, not necessarily _fast_. If Walter spent all his time working on making the the