January 08, 2012
Am 08.01.2012, 22:14 Uhr, schrieb q66 <quaker66@gmail.com>:

> On Sunday, 8 January 2012 at 21:10:21 UTC, Martin Nowak wrote:
>> Am 08.01.2012, 21:04 Uhr, schrieb q66 <quaker66@gmail.com>:
>>
>>> By the way, Walter, I'm fixing druntime and Phobos makefiles after the Shared ELF merge so they can be built as shared libs (I have them working both now, on my FreeBSD box). I just wanna ask you, I think it would be a good idea to remove default phobos2 linkage from dmd and move that to dmd.conf instead, as the phobos2 linkage comes after dmd.conf linkages and druntime has to be linked after phobos (I'd like them as separate libs). Do you think I can do that, or any other idea?
>>
>> I hope you know that shared libraries still don't work.
>> It needs runtime which is currently being merged.
>>
>> There are ShareRuntime branches for dmd/druntime/phobos
>> https://github.com/dawgfoto
>> and I'd be glad have a cleaner Makefile solution than mine.
>
> don't work? I use git and they're working perfectly fine for me :)
>
>

No EH, no static/TLS GC roots from shared libraries.
January 08, 2012
On 1/8/2012 12:35 PM, Trass3r wrote:
>> Clang is a lot slower at compiling than dmc.
>
> With or without optimizations?

http://biolpc22.york.ac.uk/wx/wxhatch/wxMSW_Compiler_choice.html


> Would be interesting to see detailed comparisons lexing/parsing/... like
> http://clang.llvm.org/performance.html

Being faster than gcc isn't a great trick.
January 08, 2012
On 1/8/2012 12:04 PM, q66 wrote:
> By the way, Walter, I'm fixing druntime and Phobos makefiles after the Shared
> ELF merge so they can be built as shared libs (I have them working both now, on
> my FreeBSD box). I just wanna ask you, I think it would be a good idea to remove
> default phobos2 linkage from dmd and move that to dmd.conf instead, as the
> phobos2 linkage comes after dmd.conf linkages and druntime has to be linked
> after phobos (I'd like them as separate libs). Do you think I can do that, or
> any other idea?

Once Phobos works as a shared lib, I think we should switch to that as the default.
January 08, 2012
On 1/8/2012 1:51 PM, Martin Nowak wrote:
> No EH, no static/TLS GC roots from shared libraries.

Also, calling the runtime helper functions, like ulong division, is broken for shared because it doesn't set EBX. (Or maybe that doesn't matter since those functions don't access static data? Not sure.)
January 08, 2012
On 1/8/2012 12:31 PM, Trass3r wrote:
> I thought even dmc supports a few features.
> Which one doesn't implement C++11 at all?

Each compiler does a different set of C++11 features, and it changes regularly.

It's just not a good idea now. The agony of #ifdef'ing around compiler problems is not going to make the code cleaner.
January 08, 2012
On Sunday, 8 January 2012 at 22:50:07 UTC, Walter Bright wrote:
>> Would be interesting to see detailed comparisons lexing/parsing/... like
>> http://clang.llvm.org/performance.html
>
> Being faster than gcc isn't a great trick.

I didn't claim the opposite.
I was curious why dmc is faster.
January 08, 2012
On Sunday, 8 January 2012 at 22:52:17 UTC, Walter Bright wrote:
> Once Phobos works as a shared lib, I think we should switch to that as the default.

Please, no. That would mean standalone executables won't work
by default.
January 09, 2012
>
> Not to get too far off topic, I'm the only one where I work who will use C#. I think some people simply hate Microsoft the company so much that they would not even fire up C# and try it once. They won't be caught liking it. And that's seems to be the case where I work as far as I can tell. Maybe D would be more well received than C# by such people if it integrated better with VS, I don't know. But there is always the issue with less widely used languages: if I write our company's main product in D, and if we then need to hire more people, I need to tell my boss we need to hire people that know D (or are at least willing and able pick it up) which are not as common. If anything at all goes wrong with D that wouldn't have gone wrong had we used C++, it's on me. No one ever got fired for buying IBM, lol. Sorry, I know we need to battle past that but I can't help mentioning it.
>

Not so much hate Microsoft as cautious of using platforms that contain a lot of Microsoft IP. The thing about Microsoft is that it isn't really one monolithic company and while the divisions of the company that do C# and .net are probably totally cool there are other parts of of the company who wouldn't hesitate to leverage that IP against anything they perceive to be a competitive threat. Even if they don't C# being a VM based language there is a lot of Oracle IP to deal with (Microsoft currently pay Oracle a metric f*cktonne of money per year to use that IP and I am not sure where alternate .Net implementations stand in this regards). See Microsoft v Google and Oracle v Google. This probably won't be an issue if you are heavily microsoft centric in what you are doing anyways just not sure how much I trust it as a cross platform solution in the long term.

Ideally D would allow you to write code that is in the same ballpark performance wise as C/C++ but with much greater programmer productivity. I don't think it's quite there yet. I think that IDE intergration including V S is part of that, in fact I think it is something of a low hanging fruit.


January 09, 2012
On 1/8/2012 2:58 PM, Trass3r wrote:
> I was curious why dmc is faster.

Many hours with the profiler!
January 09, 2012
On 1/8/2012 3:12 PM, Adam D. Ruppe wrote:
> On Sunday, 8 January 2012 at 22:52:17 UTC, Walter Bright wrote:
>> Once Phobos works as a shared lib, I think we should switch to that as the
>> default.
>
> Please, no. That would mean standalone executables won't work
> by default.

People who distribute apps will be more sophisticated users, and will be able to set a flag to static link.

I guarantee you that shared should be the default, as otherwise newbies will compile with D and:

   "Zo-mah-gawd, look at the size of those D executables! D sux!"

Which happens now. Note that the default with gcc is to link with the shared C runtime, and it will be expected for dmd.