www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Swift is based LLVM,what will the D's LDC do?

reply "FrankLike" <1150015857 qq.com> writes:
Apple's swift comes on,but only use on iOS,so D should develop 
the LDC,let D keep the superiority.

Frank
Jun 04 2014
next sibling parent reply "Temtaime" <temtaime gmail.com> writes:
I think too that main branch of D should be LDC.
Proprietary backend is one big mistake.

Some linux distributives doesn't want to include dmd because of 
backend's license.
Also backend has several codegen bugs.
And it cannot optimize almost at all.

LLVM is tested in time as Clang.
It has great optimizations.

And if one speak about compilation time... Yes dmd compiles 
faster than ldc but the difference is not so great. And who cares 
about compilation time when one write the code ?
Jun 04 2014
next sibling parent reply "FrankLike" <1150015857 qq.com> writes:
 And if one speak about compilation time... Yes dmd compiles 
 faster than ldc but the difference is not so great. And who 
 cares about compilation time when one write the code ?
LDC's performance is very cool.
Jun 04 2014
parent "Temtaime" <temtaime gmail.com> writes:
I thinks that too.
But some dmd's developers says that ldc compiles slower than dmd.
Jun 04 2014
prev sibling next sibling parent reply "Chris" <wendlec tcd.ie> writes:
On Wednesday, 4 June 2014 at 09:45:21 UTC, Temtaime wrote:
[snip]
 And if one speak about compilation time... Yes dmd compiles 
 faster than ldc but the difference is not so great. And who 
 cares about compilation time when one write the code ?
I do. I don't care about it when it's done and dusted and I compile to deliver the program. But while I'm developing, I want a short write-compile-test cycle. It's simply annoying, when you have to wait a few seconds to test tiny changes or get the output of a debug statement.
Jun 04 2014
next sibling parent reply "Temtaime" <temtaime gmail.com> writes:
It debug builds ldc fast as dmd does.
Jun 04 2014
parent reply "Chris" <wendlec tcd.ie> writes:
On Wednesday, 4 June 2014 at 10:02:49 UTC, Temtaime wrote:
 It debug builds ldc fast as dmd does.
I once had a program where it took considerably longer (in development mode) than dmd. Then again, the code did some XML parsing with std.xml* (shudder!). In release mode it took ldc a long time to compile (and optimize), but I have to say that it was lightning fast after that. I usually use dmd for development and ldc for delivery (on Linux). *got finally rid of that bit altogether :)
Jun 04 2014
parent "FrankLike" <1150015857 qq.com> writes:
 I usually use dmd for development and ldc for delivery (on 
 Linux).
It's a good job.
Jun 04 2014
prev sibling parent "Andrea Fontana" <nospam example.com> writes:
On Wednesday, 4 June 2014 at 09:56:10 UTC, Chris wrote:
 On Wednesday, 4 June 2014 at 09:45:21 UTC, Temtaime wrote:
 [snip]
 And if one speak about compilation time... Yes dmd compiles 
 faster than ldc but the difference is not so great. And who 
 cares about compilation time when one write the code ?
I do. I don't care about it when it's done and dusted and I compile to deliver the program. But while I'm developing, I want a short write-compile-test cycle. It's simply annoying, when you have to wait a few seconds to test tiny changes or get the output of a debug statement.
I agree.
Jun 04 2014
prev sibling parent reply "Dejan Lekic" <dejan.lekic gmail.com> writes:
On Wednesday, 4 June 2014 at 09:45:21 UTC, Temtaime wrote:
 I think too that main branch of D should be LDC.
 Proprietary backend is one big mistake.
No matter how I like LDC, I disagree. People obviously forget the fact that DMD is a REFERENCE IMPLEMENTATION of a D compiler. - Nobody has to use it, and most likely you will not use it in production! You will use a compiler with better optimizer, such as GCC with D enabled (GDC) or LDC. FUD won't help anyone, so do not spread it further. We have discussed this matter for over a decade here on this very newsgroup. There is a valid reason why the backend is proprietary, learn to live with it.
 Some linux distributives doesn't want to include dmd because of 
 backend's license.
 Also backend has several codegen bugs.
 And it cannot optimize almost at all.
We are all perfectly aware of this. I've spent hours talking with Fedora guys on IRC, and asked what can we do to have DMD RPMs (you can find the project here: https://gitorious.org/dejan-fedora/dejan-fedora ).
 LLVM is tested in time as Clang.
 It has great optimizations.

 And if one speak about compilation time... Yes dmd compiles 
 faster than ldc but the difference is not so great. And who 
 cares about compilation time when one write the code ?
Every serious developer does. Once your project takes a minute to compile you will treasure every second... Sure for the release you will use a better compiler, but during the development you really want compiler that does it fast.
Jun 04 2014
parent reply "Temtaime" <temtaime gmail.com> writes:
The main problem is that ldc is outdated because there is no 
support from community.
Developers develop dmd so ldc stays alone.

My project for example uses git head because of bugfixes.
It cannot even compile with 2.064 or 2.065. And latest ldc is 
based on 2.064 frontend. So ldc for me totally useless now.

Ldc in debug almost fast as dmd does.
What's will be wrong with dmd if it will be based on llvm ?
That would be great i think but c'est la vie so ...
Jun 04 2014
next sibling parent reply Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 4 June 2014 13:21, Temtaime via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 The main problem is that ldc is outdated because there is no support from
 community.
Likewise. All I see is everyone talking and no action. Such as "Yes, it's important to switch main development into LDC" or "Yes, it's very important to merge GDC into GCC". But when asked what they are going to do about it. There's just a quiet room of people checking their back pockets for a reason to excuse themselves. No one wants to work on GDC/LDC, so they shall remain obscure in development and tailing behind current development. Regards Iain
Jun 04 2014
parent reply "MattCoder" <idonthaveany mail.com> writes:
On Wednesday, 4 June 2014 at 13:27:20 UTC, Iain Buclaw via 
Digitalmars-d wrote:
 No one wants to work on GDC/LDC, so they shall remain obscure in
 development and tailing behind current development.
Please could you tell more about the requirements/background that a person needs to fill this work? I'm programmer for a while now, I wrote some: Business Systems (Job), games and small interpreters (Hobby) etc. But I always thought about contributing on my spare time, but I don't know how I could fill on this work. Matheus.
Jun 04 2014
next sibling parent reply "Kai Nacke" <kai redstar.de> writes:
Hi Matheus!

On Wednesday, 4 June 2014 at 15:44:02 UTC, MattCoder wrote:
 On Wednesday, 4 June 2014 at 13:27:20 UTC, Iain Buclaw via 
 Digitalmars-d wrote:
 No one wants to work on GDC/LDC, so they shall remain obscure 
 in
 development and tailing behind current development.
Please could you tell more about the requirements/background that a person needs to fill this work? I'm programmer for a while now, I wrote some: Business Systems (Job), games and small interpreters (Hobby) etc. But I always thought about contributing on my spare time, but I don't know how I could fill on this work. Matheus.
For LDC it should be quite easy. :-) First, build LDC from source. Instructions are here: http://wiki.dlang.org/Building_LDC_from_source. Building LLVM from source it not a requirement but helps in tracking down problems. If you master this step then you can choose a problem to tackle. Personally, I started with a merge of latest DMD frontend. This will be a round trip through the source because of possible merge conflicts. (For sure, the result can be contributed as a pull request.) Another simple way to get started is to pick an open issue - see https://github.com/ldc-developers/ldc/issues. Fire up the debugger, set a breakpoint and step through the code and try identifying the root cause... IMHO the only requirement is some knowledge of C++ (and having fun reading source and coding!). But even if you only know D (or only want to code in D) then there are some open tasks. If you or anybody else is interested in this please ask in the LDC newsgroup. Regards, Kai
Jun 04 2014
parent reply "Mattcoder" <fromtheotherside mail.com> writes:
On Wednesday, 4 June 2014 at 16:22:22 UTC, Kai Nacke wrote:
 For LDC it should be quite easy. :-)

 First, build LDC from source. Instructions are here: 
 http://wiki.dlang.org/Building_LDC_from_source. Building LLVM 
 from source it not a requirement but helps in tracking down 
 problems.
Thanks for the advice, and I'll check this link soon as possible!
 IMHO the only requirement is some knowledge of C++ (and having 
 fun reading source and coding!)...
To be honest I'm not a C++ guy, but I can fix and read/understand/port most codes. Well, I think that I'll try something on my vacation next month and see if I can help the community. Thanks, Matheus.
Jun 04 2014
parent "Kai Nacke" <kai redstar.de> writes:
Hi Matheus!

On Wednesday, 4 June 2014 at 17:59:42 UTC, Mattcoder wrote:
 To be honest I'm not a C++ guy, but I can fix and 
 read/understand/port most codes.
There will also be pure D tasks, e.g. translating ldmd2 to D. Regards, Kai
Jun 04 2014
prev sibling parent reply Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 4 June 2014 16:44, MattCoder via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On Wednesday, 4 June 2014 at 13:27:20 UTC, Iain Buclaw via Digitalmars-d
 wrote:
 No one wants to work on GDC/LDC, so they shall remain obscure in
 development and tailing behind current development.
Please could you tell more about the requirements/background that a person needs to fill this work? I'm programmer for a while now, I wrote some: Business Systems (Job), games and small interpreters (Hobby) etc. But I always thought about contributing on my spare time, but I don't know how I could fill on this work. Matheus.
For a (needs more detail) overview, see: http://gdcproject.org/contributing/ But the jist of it is: If you use GDC, we encourage you to try to contribute, whether by submitting bugfixes, new features, documentation updates, web page improvements, etc. You don't *need* to be a compiler developer. If you are only a user and know how to use the tool in a way that others may not be aware of, document it! There's also a projects page: http://wiki.dlang.org/GDC/ProjectIdeas One item missing from that page is PORTING. Porting D (with GDC) doesn't require compiler knowledge per say. Most of the work is in patching druntime to implement all missing features and your done! The few things that may require knowledge of the compiler internals, you may ask or raise a bug report at any time and someone should be willing to answer (usually me). Regards Iain.
Jun 04 2014
parent reply "Mattcoder" <fromtheotherside mail.com> writes:
On Wednesday, 4 June 2014 at 16:32:54 UTC, Iain Buclaw via 
Digitalmars-d wrote:
 On 4 June 2014 16:44, MattCoder via Digitalmars-d
 <digitalmars-d puremagic.com> wrote:
 For a  (needs more detail) overview, see: 
 http://gdcproject.org/contributing/
 There's also a projects page: 
 http://wiki.dlang.org/GDC/ProjectIdeas
I'll read!
 One item missing from that page is PORTING.  Porting D (with 
 GDC)
 doesn't require compiler knowledge per say.  Most of the work 
 is in
 patching druntime to implement all missing features and your 
 done!
Well I'll look both projects LDC/GDC and see what fits me better. I think it would be a nice for learning experience and contributing more with community. Thanks, Matheus.
Jun 04 2014
parent reply "David Nadlinger" <code klickverbot.at> writes:
On Wednesday, 4 June 2014 at 18:06:08 UTC, Mattcoder wrote:
 I think it would be a nice for learning experience and 
 contributing more with community.
It's always great to see new people interested in helping out with compiler development. Just follow your natural curiosity and don't let the task intimidate you (compilers are not rocket science), and it will almost certainly become a nice learning experience. If you get stuck at any point, or struggle to find a nice bug to work on, please don't hesitate to create a thread on the LDC mailing list (http://forum.dlang.org/digitalmars.D.ldc, or via the mailing list interface at lists.puremagic.com). We are always happy to help out newcomers, and I'm sure the same applies to GDC too. Cheers, David
Jun 04 2014
next sibling parent Andrew Edwards <ridimz yahoo.com> writes:
On 6/4/14, 3:34 PM, David Nadlinger wrote:
 If you get stuck at any point, or struggle to find a nice bug to work
 on, please don't hesitate to create a thread on the LDC mailing list
 (http://forum.dlang.org/digitalmars.D.ldc, or via the mailing list
 interface at lists.puremagic.com). We are always happy to help out
 newcomers, and I'm sure the same applies to GDC too.

 Cheers,
 David
http://forum.dlang.org/group/digitalmars.D.ldc
Jun 04 2014
prev sibling next sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 6/4/2014 12:34 PM, David Nadlinger wrote:
 (compilers are not rocket science)
Shhhh! Don't let that secret get out!
Jun 04 2014
next sibling parent Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 5 June 2014 07:43, Walter Bright via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On 6/4/2014 12:34 PM, David Nadlinger wrote:
 (compilers are not rocket science)
Shhhh! Don't let that secret get out!
<insert reddit link here>
Jun 05 2014
prev sibling parent Jonathan M Davis via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Wed, 04 Jun 2014 23:43:23 -0700
Walter Bright via Digitalmars-d <digitalmars-d puremagic.com> wrote:

 On 6/4/2014 12:34 PM, David Nadlinger wrote:
 (compilers are not rocket science)
Shhhh! Don't let that secret get out!
LOL. Well, _technically_ speaking, something could be far more difficult than rocket science and still not be rocket science, in spite of the fact that saying that something isn't rocket science implies that it's easy. But that's idioms for you. :) - Jonathan M Davis
Jun 05 2014
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2014-06-04 21:34, David Nadlinger wrote:
 On Wednesday, 4 June 2014 at 18:06:08 UTC, Mattcoder wrote:
 I think it would be a nice for learning experience and contributing
 more with community.
It's always great to see new people interested in helping out with compiler development. Just follow your natural curiosity and don't let the task intimidate you (compilers are not rocket science), and it will almost certainly become a nice learning experience. If you get stuck at any point, or struggle to find a nice bug to work on, please don't hesitate to create a thread on the LDC mailing list (http://forum.dlang.org/digitalmars.D.ldc, or via the mailing list interface at lists.puremagic.com). We are always happy to help out newcomers, and I'm sure the same applies to GDC too.
I found it quite easy to start by implementing a new __traits feature. It's usually quite small and confined. -- /Jacob Carlborg
Jun 05 2014
prev sibling next sibling parent "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
On Wed, Jun 04, 2014 at 02:27:10PM +0100, Iain Buclaw via Digitalmars-d wrote:
 On 4 June 2014 13:21, Temtaime via Digitalmars-d
 <digitalmars-d puremagic.com> wrote:
 The main problem is that ldc is outdated because there is no support
 from community.
Likewise. All I see is everyone talking and no action. Such as "Yes, it's important to switch main development into LDC" or "Yes, it's very important to merge GDC into GCC". But when asked what they are going to do about it. There's just a quiet room of people checking their back pockets for a reason to excuse themselves. No one wants to work on GDC/LDC, so they shall remain obscure in development and tailing behind current development.
[...] +1. If the talkers would become doers, we'd have MUCH better GDC/LDC support than we do now. I'm tired of the talk, let's see the PR's! T -- I am a consultant. My job is to make your job redundant. -- Mr Tom
Jun 04 2014
prev sibling next sibling parent Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 4 June 2014 14:43, H. S. Teoh via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On Wed, Jun 04, 2014 at 02:27:10PM +0100, Iain Buclaw via Digitalmars-d wrote:
 On 4 June 2014 13:21, Temtaime via Digitalmars-d
 <digitalmars-d puremagic.com> wrote:
 The main problem is that ldc is outdated because there is no support
 from community.
Likewise. All I see is everyone talking and no action. Such as "Yes, it's important to switch main development into LDC" or "Yes, it's very important to merge GDC into GCC". But when asked what they are going to do about it. There's just a quiet room of people checking their back pockets for a reason to excuse themselves. No one wants to work on GDC/LDC, so they shall remain obscure in development and tailing behind current development.
[...] +1. If the talkers would become doers, we'd have MUCH better GDC/LDC support than we do now. I'm tired of the talk, let's see the PR's!
Who wants to become a lieutenant? :o)
Jun 04 2014
prev sibling next sibling parent reply "FrankLike" <1150015857 qq.com> writes:
 Developers develop dmd so ldc stays alone.
No,LDC is not easy to use as dmd,it must configure by Developers ,if it has the oneClickSetup,then many Developers like it.
Jun 04 2014
next sibling parent Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 4 June 2014 15:42, FrankLike via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 Developers develop dmd so ldc stays alone.
No,LDC is not easy to use as dmd,it must configure by Developers ,if it has the oneClickSetup,then many Developers like it.
Not even remotely true. DMD isn't easy to set-up either. 1) There's no documentation on build dependencies/prerequesites (that I have come across) 2) While there's no configure, it instead offloads all complexity into it's make files forcing you to correctly set every single ENV= parameters in order for it to build properly. I've never managed to get it built properly, so I rely on the autotester a lot for changes. This leads quite nicely into a new point. Autotester support for GDC/LDC! *looks at Brad*
Jun 04 2014
prev sibling next sibling parent "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
On Wed, Jun 04, 2014 at 03:53:59PM +0100, Iain Buclaw via Digitalmars-d wrote:
[...]
 Not even remotely true.  DMD isn't easy to set-up either.
 
 1) There's no documentation on build dependencies/prerequesites (that
 I have come across)
http://wiki.dlang.org/Building_DMD
 2) While there's no configure, it instead offloads all complexity into
 it's make files forcing you to correctly set every single ENV=
 parameters in order for it to build properly.
 
 I've never managed to get it built properly, so I rely on the
 autotester a lot for changes.
[...] Really?? I have found, on the contrary, that DMD is extremely easy to build. As opposed to, say, GDC (no offense ;)), which I haven't been able to build since gcc-4.8, likely due to the build scripts relying on hardcoded system paths that every Linux distro changes around just for fun. It's as simple as: git clone ${url to dmd repo} git clone ${url to druntime repo} git clone ${url to phobos repo} cd dmd make -f posix.mak cd ../druntime make -f posix.mak cd ../phobos make -f posix.mak Then just add dmd/src/ to $PATH, and off you go. I've been using this for years, and haven't had a problem. This can, of course, be put into a shell script that does everything, which is what I do these days. You can add -j${NUM_CPU} to the make invocations, if you're impatient like me and want to take advantage of today's multicore craze. I personally use -j6. T -- My program has no bugs! Only unintentional features...
Jun 04 2014
prev sibling next sibling parent Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 4 June 2014 16:07, H. S. Teoh via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On Wed, Jun 04, 2014 at 03:53:59PM +0100, Iain Buclaw via Digitalmars-d wrote:
 [...]
 Not even remotely true.  DMD isn't easy to set-up either.

 1) There's no documentation on build dependencies/prerequesites (that
 I have come across)
http://wiki.dlang.org/Building_DMD
Which doesn't list build dependencies or prerequesites. :o)
 2) While there's no configure, it instead offloads all complexity into
 it's make files forcing you to correctly set every single ENV=
 parameters in order for it to build properly.

 I've never managed to get it built properly, so I rely on the
 autotester a lot for changes.
[...] Really?? I have found, on the contrary, that DMD is extremely easy to build. As opposed to, say, GDC (no offense ;)), which I haven't been able to build since gcc-4.8, likely due to the build scripts relying on hardcoded system paths that every Linux distro changes around just for fun.
Probably. There is a well documented quirk of Debian/Ubuntu on GCC-4.8. However though multiarch patches are in GCC 4.9, so that's one build issue that should no longer occur. :)
Jun 04 2014
prev sibling next sibling parent "H. S. Teoh via Digitalmars-d" <digitalmars-d puremagic.com> writes:
On Wed, Jun 04, 2014 at 04:23:31PM +0100, Iain Buclaw via Digitalmars-d wrote:
 On 4 June 2014 16:07, H. S. Teoh via Digitalmars-d
 <digitalmars-d puremagic.com> wrote:
 On Wed, Jun 04, 2014 at 03:53:59PM +0100, Iain Buclaw via Digitalmars-d wrote:
 [...]
 Not even remotely true.  DMD isn't easy to set-up either.

 1) There's no documentation on build dependencies/prerequesites (that
 I have come across)
http://wiki.dlang.org/Building_DMD
Which doesn't list build dependencies or prerequesites. :o)
As far as I know, the only dependency is a working C/C++ compiler. $ ldd dmd/src/dmd linux-vdso.so.1 (0x00007ffff27ff000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb068676000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb068459000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb068155000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb067f3f000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb067b95000) /lib64/ld-linux-x86-64.so.2 (0x00007fb0689a1000) $ So, nothing beyond your basic C/C++ system libraries.
 2) While there's no configure, it instead offloads all complexity
 into it's make files forcing you to correctly set every single ENV=
 parameters in order for it to build properly.

 I've never managed to get it built properly, so I rely on the
 autotester a lot for changes.
[...] Really?? I have found, on the contrary, that DMD is extremely easy to build. As opposed to, say, GDC (no offense ;)), which I haven't been able to build since gcc-4.8, likely due to the build scripts relying on hardcoded system paths that every Linux distro changes around just for fun.
Probably. There is a well documented quirk of Debian/Ubuntu on GCC-4.8. However though multiarch patches are in GCC 4.9, so that's one build issue that should no longer occur. :)
Oh that's good to know. Maybe I should try building GDC 4.9 sometime... T -- Food and laptops don't mix.
Jun 04 2014
prev sibling parent reply "Kai Nacke" <kai redstar.de> writes:
Hi FrankLite!

On Wednesday, 4 June 2014 at 14:42:21 UTC, FrankLike wrote:
 Developers develop dmd so ldc stays alone.
No,LDC is not easy to use as dmd,it must configure by Developers ,if it has the oneClickSetup,then many Developers like it.
What do you miss? We provide binaries for common platforms (https://github.com/ldc-developers/ldc/releases) and there are also build instructions, e.g. http://wiki.dlang.org/Building_LDC_from_source. Even a maintained Debian package is now available (besides the maintained packages for other distros - great job from all the volunteers!) Regards, Kai
Jun 04 2014
parent reply Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 4 June 2014 17:08, Kai Nacke via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 Hi FrankLite!


 On Wednesday, 4 June 2014 at 14:42:21 UTC, FrankLike wrote:
 Developers develop dmd so ldc stays alone.
No,LDC is not easy to use as dmd,it must configure by Developers ,if it has the oneClickSetup,then many Developers like it.
What do you miss? We provide binaries for common platforms (https://github.com/ldc-developers/ldc/releases) and there are also build instructions, e.g. http://wiki.dlang.org/Building_LDC_from_source. Even a maintained Debian package is now available (besides the maintained packages for other distros - great job from all the volunteers!)
+1 This likewise gdc too. All you need to do is look at the downloads page on dlang.org !
Jun 04 2014
next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2014-06-04 18:25, Iain Buclaw via Digitalmars-d wrote:

 This likewise gdc too.  All you need to do is look at the downloads
 page on dlang.org !
Awesome, but where's the binary for OS X? -- /Jacob Carlborg
Jun 04 2014
next sibling parent reply Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 4 June 2014 19:55, Jacob Carlborg via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On 2014-06-04 18:25, Iain Buclaw via Digitalmars-d wrote:

 This likewise gdc too.  All you need to do is look at the downloads
 page on dlang.org !
Awesome, but where's the binary for OS X?
I have an OSX box to start porting. But there's a couple druntime related problems I need to have a proper sit down about. These are mostly TLS-related problems. DMD insists on doing something wildly different for each target. I insist on having a common way of doing everything. Once builds start succeeding, they will come.
Jun 04 2014
parent reply Jacob Carlborg <doob me.com> writes:
On 2014-06-04 21:25, Iain Buclaw via Digitalmars-d wrote:

 I have an OSX box to start porting.  But there's a couple druntime
 related problems I need to have a proper sit down about.  These are
 mostly TLS-related problems.  DMD insists on doing something wildly
 different for each target.  I insist on having a common way of doing
 everything.
Yeah, TLS seems to be a recurring problem. I would prefer to have native support. I think it's ok to drop the support for 10.6 now.
 Once builds start succeeding, they will come.
Great. BTW, is http://gdcproject.org/downloads/ a reliable source for downloading GDC? Eventually I would like to add support for GDC to DVM and I need a reliable source to download from, both the latest compiler and older versions. [1] https://github.com/jacob-carlborg/dvm -- /Jacob Carlborg
Jun 05 2014
parent reply Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 5 June 2014 10:47, Jacob Carlborg via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On 2014-06-04 21:25, Iain Buclaw via Digitalmars-d wrote:

 I have an OSX box to start porting.  But there's a couple druntime
 related problems I need to have a proper sit down about.  These are
 mostly TLS-related problems.  DMD insists on doing something wildly
 different for each target.  I insist on having a common way of doing
 everything.
Yeah, TLS seems to be a recurring problem. I would prefer to have native support. I think it's ok to drop the support for 10.6 now.
 Once builds start succeeding, they will come.
Great. BTW, is http://gdcproject.org/downloads/ a reliable source for downloading GDC? Eventually I would like to add support for GDC to DVM and I need a reliable source to download from, both the latest compiler and older versions.
I haven't tried hammering the server - it's a VM hosted on linode. But if you mean if the compiler builds are reliable, then that answer is yes. I know that the Native Linux and ARM builds are passing the testsuite/library unittests (as of the time they were built).
Jun 05 2014
parent reply Jacob Carlborg <doob me.com> writes:
On 2014-06-05 12:27, Iain Buclaw via Digitalmars-d wrote:

 I haven't tried hammering the server - it's a VM hosted on linode.
 But if you mean if the compiler builds are reliable, then that answer
 is yes.

 I know that the Native Linux and ARM builds are passing the
 testsuite/library unittests (as of the time they were built).
I was referring to if I can expect the links to continue to work in the future, say a year from now. -- /Jacob Carlborg
Jun 05 2014
parent Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 5 June 2014 19:59, Jacob Carlborg via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On 2014-06-05 12:27, Iain Buclaw via Digitalmars-d wrote:

 I haven't tried hammering the server - it's a VM hosted on linode.
 But if you mean if the compiler builds are reliable, then that answer
 is yes.

 I know that the Native Linux and ARM builds are passing the
 testsuite/library unittests (as of the time they were built).
I was referring to if I can expect the links to continue to work in the future, say a year from now.
I don't expect them to move either.
Jun 05 2014
prev sibling next sibling parent Russel Winder via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Wed, 2014-06-04 at 20:25 +0100, Iain Buclaw via Digitalmars-d wrote:
[…]
 I have an OSX box to start porting.  But there's a couple druntime
 related problems I need to have a proper sit down about.  These are
 mostly TLS-related problems.  DMD insists on doing something wildly
 different for each target.  I insist on having a common way of doing
 everything.
 
 Once builds start succeeding, they will come.
LDC is (relatively) easy to build: for Git repository, run cmake for each platform to create platform specific builds, run (make clean && make && make install && make clean). Is there a similarly easy way of building GDC? Building and using the very latest version of compilers, and reporting any issues, is a very easy way for me to chip in some effort. (For DMD though I am just lazy, I take whatever is on D-Apt for Debian, manually install release RPMs for Fedora – why isn't there a version of D in RPMFusion? – and whatever is in MacPorts for OSX.) -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Jun 04 2014
prev sibling parent reply Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 5 June 2014 06:30, Russel Winder via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On Wed, 2014-06-04 at 20:25 +0100, Iain Buclaw via Digitalmars-d wrote:
 […]
 I have an OSX box to start porting.  But there's a couple druntime
 related problems I need to have a proper sit down about.  These are
 mostly TLS-related problems.  DMD insists on doing something wildly
 different for each target.  I insist on having a common way of doing
 everything.

 Once builds start succeeding, they will come.
LDC is (relatively) easy to build: for Git repository, run cmake for each platform to create platform specific builds, run (make clean && make && make install && make clean). Is there a similarly easy way of building GDC?
I don't think there exists a *works for all* method of doing it, but there is: http://wiki.dlang.org/GDC/Installation/Generic Which is only good so you understand the general reasoning for the process, what switches mean, etc. The dummies guide to building GDC would be: 1. Install prerequesites: libmpc-dev libmpfr-dev libgmp3-dev flex bison autoconf automake patch git g++ 2. Download GCC (ie: 4.9.0) release sources from: https://gcc.gnu.org/mirrors.html 3. Download stable GDC sources: gdcproject.org/downloads/sources/gdc-4.9-src.tar.xz 4. Extract GCC, then GDC into separate directories. 5. Inside GDC, run ./setup-gcc.sh ../path-to-gcc-xxx 6. Create a new directory for building, eg: mkdir objdir 7. Inside the build directory, run: ../path-to-gcc-xxx/configure --prefix=/usr --enable-languages=d --enable-checking=release --disable-bootstrap --with-bugurl="http://bugzilla.gdcproject.org" 8. Run make 9. Make a coffee 10. Run make install, eg: DESTDIR=~/.local make install 11. Optionally, check your installation with: make check-d The most logic really goes into setting up your environment, obtaining sources, and structuring the folders correctly for building. The *actual* build process itself is painless if it goes through without errors.
 Building and using the very latest version of compilers, and reporting
 any issues, is a very easy way for me to chip in some effort.

 (For DMD though I am just lazy, I take whatever is on D-Apt for Debian,
 manually install release RPMs for Fedora – why isn't there a version of
 D in RPMFusion? – and whatever is in MacPorts for OSX.)
Don't quote me, but the only way distributions can ship DMD is via a script that does a download from dlang.org, extract, install process (like eg: flashplayer). GDC has never landed in Fedora because they have refused to have a 3rd party front-end the last time - using GNU Pascal Compiler (no longer maintained iirc) as a previous example. And I think the macport binaries are ancient? I certainly found it a bit odd to set-up my build environment for building gcc-4.9 on OSX, but then again I'm not an OSX geek, things that seem odd to me might seem the right way to do it for others. :o)
Jun 04 2014
parent reply "John Colvin" <john.loughran.colvin gmail.com> writes:
On Thursday, 5 June 2014 at 06:50:04 UTC, Iain Buclaw via 
Digitalmars-d wrote:
 Don't quote me, but the only way distributions can ship DMD is 
 via a
 script that does a download from dlang.org, extract, install 
 process
 (like eg: flashplayer).
Unless I'm misunderstanding how the arch repositories work, Dicebot has the Arch dmd package setup with dmd hosted on the arch servers/mirrors. I presume this is with Walter's permission. https://www.archlinux.org/packages/community/x86_64/dmd/
Jun 05 2014
parent reply "Dicebot" <public dicebot.lv> writes:
On Thursday, 5 June 2014 at 11:24:47 UTC, John Colvin wrote:
 On Thursday, 5 June 2014 at 06:50:04 UTC, Iain Buclaw via 
 Digitalmars-d wrote:
 Don't quote me, but the only way distributions can ship DMD is 
 via a
 script that does a download from dlang.org, extract, install 
 process
 (like eg: flashplayer).
Unless I'm misunderstanding how the arch repositories work, Dicebot has the Arch dmd package setup with dmd hosted on the arch servers/mirrors. I presume this is with Walter's permission. https://www.archlinux.org/packages/community/x86_64/dmd/
Well it is still not 100% legal because every single mirror owner needs to get that permission too as far as I understand the license. Because mirroring also can be considered redistribution. But I am not most lawful person, especially when it comes to copyright and license issues :)
Jun 05 2014
parent reply "John Colvin" <john.loughran.colvin gmail.com> writes:
On Thursday, 5 June 2014 at 11:35:23 UTC, Dicebot wrote:
 On Thursday, 5 June 2014 at 11:24:47 UTC, John Colvin wrote:
 On Thursday, 5 June 2014 at 06:50:04 UTC, Iain Buclaw via 
 Digitalmars-d wrote:
 Don't quote me, but the only way distributions can ship DMD 
 is via a
 script that does a download from dlang.org, extract, install 
 process
 (like eg: flashplayer).
Unless I'm misunderstanding how the arch repositories work, Dicebot has the Arch dmd package setup with dmd hosted on the arch servers/mirrors. I presume this is with Walter's permission. https://www.archlinux.org/packages/community/x86_64/dmd/
Well it is still not 100% legal because every single mirror owner needs to get that permission too as far as I understand the license. Because mirroring also can be considered redistribution. But I am not most lawful person, especially when it comes to copyright and license issues :)
While I respect your point of view on the matter (and agree with it to a large extent), it's not your head on the line here. Do the mirror owners even know that - if they charge for their services - it could be argued that they are committing a criminal offence under US law by redistributing copyrighted material without a license for commercial advantage?
Jun 05 2014
parent reply "John Colvin" <john.loughran.colvin gmail.com> writes:
On Thursday, 5 June 2014 at 12:45:06 UTC, John Colvin wrote:
 On Thursday, 5 June 2014 at 11:35:23 UTC, Dicebot wrote:
 On Thursday, 5 June 2014 at 11:24:47 UTC, John Colvin wrote:
 On Thursday, 5 June 2014 at 06:50:04 UTC, Iain Buclaw via 
 Digitalmars-d wrote:
 Don't quote me, but the only way distributions can ship DMD 
 is via a
 script that does a download from dlang.org, extract, install 
 process
 (like eg: flashplayer).
Unless I'm misunderstanding how the arch repositories work, Dicebot has the Arch dmd package setup with dmd hosted on the arch servers/mirrors. I presume this is with Walter's permission. https://www.archlinux.org/packages/community/x86_64/dmd/
Well it is still not 100% legal because every single mirror owner needs to get that permission too as far as I understand the license. Because mirroring also can be considered redistribution. But I am not most lawful person, especially when it comes to copyright and license issues :)
While I respect your point of view on the matter (and agree with it to a large extent), it's not your head on the line here. Do the mirror owners even know that - if they charge for their services - it could be argued that they are committing a criminal offence under US law by redistributing copyrighted material without a license for commercial advantage?
sorry, I phrased that badly: obviously it is the mirror owners responsibility to understand the law. What I'm trying to ask is "are the mirror owners aware that they are redistributing copyrighted material without a license because of your decisions?"
Jun 05 2014
parent reply "Dicebot" <public dicebot.lv> writes:
On Thursday, 5 June 2014 at 12:48:04 UTC, John Colvin wrote:
 While I respect your point of view on the matter (and agree 
 with it to a large extent), it's not your head on the line 
 here.
 Do the mirror owners even know that - if they charge for their 
 services - it could be argued that they are committing a 
 criminal offence under US law by redistributing copyrighted 
 material without a license for commercial advantage?
sorry, I phrased that badly: obviously it is the mirror owners responsibility to understand the law. What I'm trying to ask is "are the mirror owners aware that they are redistributing copyrighted material without a license because of your decisions?"
If they care. License is part of the package and package description explicitly says "Licenses: custom". There are no commercial mirrors as far as I know though but if anyone crazy decided to create one, all information to check such stuff is there.
Jun 05 2014
parent reply Johannes Pfau <nospam example.com> writes:
Am Thu, 05 Jun 2014 14:29:38 +0000
schrieb "Dicebot" <public dicebot.lv>:

 On Thursday, 5 June 2014 at 12:48:04 UTC, John Colvin wrote:
 While I respect your point of view on the matter (and agree 
 with it to a large extent), it's not your head on the line 
 here.
 Do the mirror owners even know that - if they charge for their 
 services - it could be argued that they are committing a 
 criminal offence under US law by redistributing copyrighted 
 material without a license for commercial advantage?
sorry, I phrased that badly: obviously it is the mirror owners responsibility to understand the law. What I'm trying to ask is "are the mirror owners aware that they are redistributing copyrighted material without a license because of your decisions?"
If they care. License is part of the package and package description explicitly says "Licenses: custom". There are no commercial mirrors as far as I know though but if anyone crazy decided to create one, all information to check such stuff is there.
archlinux has a 'pragmatic' approach regarding licenses & patents anyway. They also ship libdvdcss, mesa with "--enable-texture-float", all multimedia codec packages are in the standard repos etc.
Jun 05 2014
parent Marco Leise <Marco.Leise gmx.de> writes:
Am Thu, 5 Jun 2014 22:47:15 +0200
schrieb Johannes Pfau <nospam example.com>:

 archlinux has a 'pragmatic' approach regarding licenses & patents
 anyway. They also ship libdvdcss, mesa with "--enable-texture-float",
 all multimedia codec packages are in the standard repos etc.
On Gentoo, due to the compile-from-source mentality the user has the option to enable patented algorithms for their personal use. Enabling these flags comes with a warning, that the resulting binaries must not be redistributed. That way the distribution stays safe from legal issues and the end user doesn't miss out on relevant features. (Unless their hatred for software patents makes them unable to swallow their pride, that is :) ) -- Marco
Jun 06 2014
prev sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 6/4/2014 9:25 AM, Iain Buclaw via Digitalmars-d wrote:
 This likewise gdc too.  All you need to do is look at the downloads
 page on dlang.org !
It still says nothing about doing: sudo apt-get install gdc on Ubuntu! Why keep it a secret? :-)
Jun 04 2014
next sibling parent Iain Buclaw via Digitalmars-d <digitalmars-d puremagic.com> writes:
On 5 June 2014 07:40, Walter Bright via Digitalmars-d
<digitalmars-d puremagic.com> wrote:
 On 6/4/2014 9:25 AM, Iain Buclaw via Digitalmars-d wrote:
 This likewise gdc too.  All you need to do is look at the downloads
 page on dlang.org !
It still says nothing about doing: sudo apt-get install gdc on Ubuntu! Why keep it a secret? :-)
Of course, if you are using D rather than wanting to help out with development. :o)
Jun 05 2014
prev sibling next sibling parent reply "bioinfornatics" <bioinfornatics fedoraproject.org> writes:
On Thursday, 5 June 2014 at 06:40:17 UTC, Walter Bright wrote:
 On 6/4/2014 9:25 AM, Iain Buclaw via Digitalmars-d wrote:
 This likewise gdc too.  All you need to do is look at the 
 downloads
 page on dlang.org !
It still says nothing about doing: sudo apt-get install gdc on Ubuntu! Why keep it a secret? :-)
On Fedora sudo yum install ldc ;-)
Jun 05 2014
next sibling parent reply "Dicebot" <public dicebot.lv> writes:
On Thursday, 5 June 2014 at 14:01:43 UTC, bioinfornatics wrote:
 On Thursday, 5 June 2014 at 06:40:17 UTC, Walter Bright wrote:
 On 6/4/2014 9:25 AM, Iain Buclaw via Digitalmars-d wrote:
 This likewise gdc too.  All you need to do is look at the 
 downloads
 page on dlang.org !
It still says nothing about doing: sudo apt-get install gdc on Ubuntu! Why keep it a secret? :-)
On Fedora sudo yum install ldc ;-)
pacman -Sy dlang-ldc pacman -Sy dlang-gdc ;)
Jun 05 2014
next sibling parent "nazriel" <spam dzfl.pl> writes:
On Thursday, 5 June 2014 at 14:30:46 UTC, Dicebot wrote:
 On Thursday, 5 June 2014 at 14:01:43 UTC, bioinfornatics wrote:
 On Thursday, 5 June 2014 at 06:40:17 UTC, Walter Bright wrote:
 On 6/4/2014 9:25 AM, Iain Buclaw via Digitalmars-d wrote:
 This likewise gdc too.  All you need to do is look at the 
 downloads
 page on dlang.org !
It still says nothing about doing: sudo apt-get install gdc on Ubuntu! Why keep it a secret? :-)
On Fedora sudo yum install ldc ;-)
pacman -Sy dlang-ldc pacman -Sy dlang-gdc ;)
<3 ;)
Jun 05 2014
prev sibling parent Marco Leise <Marco.Leise gmx.de> writes:
Am Thu, 05 Jun 2014 14:30:40 +0000
schrieb "Dicebot" <public dicebot.lv>:

 On Thursday, 5 June 2014 at 14:01:43 UTC, bioinfornatics wrote:
 On Thursday, 5 June 2014 at 06:40:17 UTC, Walter Bright wrote:
 On 6/4/2014 9:25 AM, Iain Buclaw via Digitalmars-d wrote:
 This likewise gdc too.  All you need to do is look at the 
 downloads
 page on dlang.org !
It still says nothing about doing: sudo apt-get install gdc on Ubuntu! Why keep it a secret? :-)
On Fedora sudo yum install ldc ;-)
pacman -Sy dlang-ldc pacman -Sy dlang-gdc ;)
Late for the show! On Gentoo: layman -a dlang emerge dmd ldc2 gcc[d] -- Marco
Jun 05 2014
prev sibling parent Walter Bright <newshound2 digitalmars.com> writes:
On 6/5/2014 7:01 AM, bioinfornatics wrote:
 On Thursday, 5 June 2014 at 06:40:17 UTC, Walter Bright wrote:
 On 6/4/2014 9:25 AM, Iain Buclaw via Digitalmars-d wrote:
 This likewise gdc too.  All you need to do is look at the downloads
 page on dlang.org !
It still says nothing about doing: sudo apt-get install gdc on Ubuntu! Why keep it a secret? :-)
On Fedora sudo yum install ldc ;-)
So, are you going to do a PR to fix the documentation?
Jun 05 2014
prev sibling parent reply "John" <john.joyus gmail.com> writes:
On Thursday, 5 June 2014 at 06:40:17 UTC, Walter Bright wrote:
 On 6/4/2014 9:25 AM, Iain Buclaw via Digitalmars-d wrote:
 This likewise gdc too.  All you need to do is look at the 
 downloads
 page on dlang.org !
It still says nothing about doing: sudo apt-get install gdc on Ubuntu! Why keep it a secret? :-)
Cool! I wish installing ldc is this easy too!
Jun 05 2014
parent "Kai Nacke" <kai redstar.de> writes:
On Thursday, 5 June 2014 at 22:12:04 UTC, John wrote:
 On Thursday, 5 June 2014 at 06:40:17 UTC, Walter Bright wrote:
 On 6/4/2014 9:25 AM, Iain Buclaw via Digitalmars-d wrote:
 This likewise gdc too.  All you need to do is look at the 
 downloads
 page on dlang.org !
It still says nothing about doing: sudo apt-get install gdc on Ubuntu! Why keep it a secret? :-)
Cool! I wish installing ldc is this easy too!
There is an up-to-date Debian package for LDC. Regards, Kai
Jun 05 2014
prev sibling parent reply Benjamin Thaut <code benjamin-thaut.de> writes:
Am 04.06.2014 14:21, schrieb Temtaime:
 The main problem is that ldc is outdated because there is no support
 from community.
 Developers develop dmd so ldc stays alone.

 My project for example uses git head because of bugfixes.
 It cannot even compile with 2.064 or 2.065. And latest ldc is based on
 2.064 frontend. So ldc for me totally useless now.

 Ldc in debug almost fast as dmd does.
 What's will be wrong with dmd if it will be based on llvm ?
 That would be great i think but c'est la vie so ...
Ldc for example still does not support windows 64 bit. And that is just one of the things thats wrong with it on windows.
Jun 04 2014
next sibling parent reply "Kai Nacke" <kai redstar.de> writes:
On Wednesday, 4 June 2014 at 16:20:40 UTC, Benjamin Thaut wrote:
 Am 04.06.2014 14:21, schrieb Temtaime:
 Ldc for example still does not support windows 64 bit. And that 
 is just one of the things thats wrong with it on windows.
Yes, a very well known lack of exception handling support in LLVM. Volunteers are welcome, see here: http://reviews.llvm.org/D3418 Regards, Kai
Jun 04 2014
parent reply Benjamin Thaut <code benjamin-thaut.de> writes:
Am 04.06.2014 18:25, schrieb Kai Nacke:
 On Wednesday, 4 June 2014 at 16:20:40 UTC, Benjamin Thaut wrote:
 Am 04.06.2014 14:21, schrieb Temtaime:
 Ldc for example still does not support windows 64 bit. And that is
 just one of the things thats wrong with it on windows.
Yes, a very well known lack of exception handling support in LLVM. Volunteers are welcome, see here: http://reviews.llvm.org/D3418 Regards, Kai
I already have to contributions planned to dmd as soon as I'm done with my master thesis. Also I don't see ldc beeing to usefull to me. I would mainly use it for optimized release builds. I need it to integrate into Visual Studio, be debuggable using a visual debugger (preferably the visual studio one). So for now I'm going to stick to contributions that will benefit me in the short term. Kind Regards Benjamin Thaut
Jun 04 2014
parent "Yuriy" <yuriy.glukhov gmail.com> writes:
IMHO LDC problems would be addressed much faster, if it 
officially becomes the "reference" D compiler. LLVM would also 
benefit from another community using it. So those unhappy with 
LLVM's performance could also contribute (don't smile here! =) to 
LLVM.
Jun 04 2014
prev sibling parent Walter Bright <newshound2 digitalmars.com> writes:
On 6/4/2014 9:20 AM, Benjamin Thaut wrote:
 Ldc for example still does not support windows 64 bit. And that is just one of
 the things thats wrong with it on windows.
On Windows, it needs to be more than just 64 bit. It needs to work with Visual Studio.
Jun 05 2014
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2014-06-04 11:27, FrankLike wrote:
 Apple's swift comes on,but only use on iOS,so D should develop the
 LDC,let D keep the superiority.
LDC continues to use LLVM, adds support for Objective-C [1] [2] and lives happily ever after. [1] http://wiki.dlang.org/DIP43 [2] https://github.com/jacob-carlborg/dmd/tree/d-objc -- /Jacob Carlborg
Jun 04 2014