Re: Should LLVM become the default D-lang platform?

2014-01-13 Thread Iain Buclaw
On 13 January 2014 05:01, Manu turkey...@gmail.com wrote:
 On 11 January 2014 23:04, Iain Buclaw ibuc...@gdcproject.org wrote:

 On 11 January 2014 00:24, Manu turkey...@gmail.com wrote:
  On 11 January 2014 06:59, Iain Buclaw ibuc...@gdcproject.org wrote:
 
  On 10 January 2014 20:54, John Colvin john.loughran.col...@gmail.com
  wrote:
   On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:
  
   This might have been brought up before but I couldn't find any
   thread
   about this. As things has progressed I wonder if Digital Mars DMD
   should
   move over to use LLVM instead of its own code generation and
   compiler
   framework.
  
   As I see it with the small amount of contributors D-language has,
   DMD
   will
   never support anything beyond x86 as there are no resources for
   this.
   Also,
   why spend time on recreating the the code generation which has
   already
   been
   done with LLVM? This enables this community to focus on the language
   which
   is the most important part as well as supporting more and future
   processor
   targets.
  
  
   This comes up regularly. It's already been done. Ldc *is* dmd with
   llvm
   backend. Gdc is the same idea but with the gcc framework.
 
  Indeed. But naturally I'd suggest they move to GCC.  ;-)
 
 
  Is it possible that GDC will ever produce binaries that will link
  against
  the microsoft libs without problems?
  In my experience, GDC produces intrinsic calls to its own runtime all
  over
  the place, and it's not compatible with the microsoft runtime. I also
  recall
  library format mismatch, but that was a long time ago, and I think we
  discussed it again since deciding that GDC is now using the same format
  as
  VisualC in windows...?
  Can GDC write PDB debuginfo into the objects (CV8 I think it is)?

 As I understand, neither GCC nor LLVM are capable of producing PDB.
 Has Microsoft even release any documentation or code necessary to
 produce files in their PDB format?


 Walter did it for DMD. I think CV8 is more or less documented, but he found
 some Microsoft tweaks to the format, or something like that.

Yes, however Walter has *ehem* ties with Microsoft, so he may have
access to information the Free Software community don't. ;)


Re: Should LLVM become the default D-lang platform?

2014-01-13 Thread Joseph Rushton Wakeling
On Saturday, 11 January 2014 at 20:38:32 UTC, Jacob Carlborg 
wrote:

On 2014-01-10 23:16, Joseph Rushton Wakeling wrote:

Yes, but there's a difference between restrictive and 
intrusive.
Using GDC doesn't intrude into anything -- the standard 
libraries are
still Boost-licensed and simply _using_ a GPL'd piece of 
software

doesn't place any obligations on you.


The way Apple has integrated Clang into Xcode would never be 
possible with GCC since that would require Apple to release 
Xcode under the GPL license.


Right, but they are not merely using -- they are redistributing 
(and distributing derivative works).  The GPL places certain 
constraints here, I think we can all agree, but it can hardly be 
described as intrusive; there's no obligation to base one's 
work on GPL-licensed code.


Re: Should LLVM become the default D-lang platform?

2014-01-13 Thread Iain Buclaw
On 13 January 2014 08:07, Joseph Rushton Wakeling
joseph.wakel...@webdrake.net wrote:
 On Saturday, 11 January 2014 at 20:38:32 UTC, Jacob Carlborg wrote:

 On 2014-01-10 23:16, Joseph Rushton Wakeling wrote:

 Yes, but there's a difference between restrictive and intrusive.
 Using GDC doesn't intrude into anything -- the standard libraries are
 still Boost-licensed and simply _using_ a GPL'd piece of software
 doesn't place any obligations on you.


 The way Apple has integrated Clang into Xcode would never be possible with
 GCC since that would require Apple to release Xcode under the GPL license.


 Right, but they are not merely using -- they are redistributing (and
 distributing derivative works).  The GPL places certain constraints here, I
 think we can all agree, but it can hardly be described as intrusive;
 there's no obligation to base one's work on GPL-licensed code.

Yah, but s/constraints/freedoms/.  :-)


Re: Should LLVM become the default D-lang platform?

2014-01-13 Thread Joseph Rushton Wakeling

On 13/01/14 09:13, Iain Buclaw wrote:

Yah, but s/constraints/freedoms/.  :-)


Quite. :-)



Re: Should LLVM become the default D-lang platform?

2014-01-13 Thread Jacob Carlborg

On 2014-01-13 09:07, Joseph Rushton Wakeling wrote:


Right, but they are not merely using -- they are redistributing (and
distributing derivative works).  The GPL places certain constraints
here, I think we can all agree, but it can hardly be described as
intrusive; there's no obligation to base one's work on GPL-licensed code.


I think the intrusive part referrers to, if you use GPL licensed code 
your own coded need to be GPL licensed as well.


--
/Jacob Carlborg


Re: Should LLVM become the default D-lang platform?

2014-01-13 Thread Jacob Carlborg

On 2014-01-13 09:11, Iain Buclaw wrote:


Yes, however Walter has *ehem* ties with Microsoft, so he may have
access to information the Free Software community don't. ;)


It doesn't hurt to ask ;)

--
/Jacob Carlborg


Re: Should LLVM become the default D-lang platform?

2014-01-13 Thread Kai Nacke

On Monday, 13 January 2014 at 05:04:46 UTC, Manu wrote:

On 12 January 2014 00:35, Kai Nacke k...@redstar.de wrote:


On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:

This might have been brought up before but I couldn't find 
any thread
about this. As things has progressed I wonder if Digital Mars 
DMD should
move over to use LLVM instead of its own code generation and 
compiler

framework.

As I see it with the small amount of contributors D-language 
has, DMD
will never support anything beyond x86 as there are no 
resources for this.
Also, why spend time on recreating the the code generation 
which has
already been done with LLVM? This enables this community to 
focus on the
language which is the most important part as well as 
supporting more and

future processor targets.



You currently can't get the best of all worlds in a single 
compiler.


LLVM does not support exceptions on native Win32. (Same is 
true for Win64
but I hope to change this.) LLVM does not support CodeView 
debug symbols.

Not in the format embedded in object file and not as PDB.
In short, you loose the complete native Windows tool chain.



Is there any progress on any of these things BTW?
At some point, sooner or later, we're REALLY going to need a 
performance

compiler on Windows...


My patch for exceptions on Win64 is finally in review. I hope to 
commit it soon.


The Google guys are adding COFF line number support right now.

Regards,
Kai



With LDC, you can use other platforms. E.g. it runs on 
Linux/PPC64. But you

can't ignore the backend because it has bugs and is incomplete.

E.g. on Linux/ARM I have a linker error when I enable 
generation of debug
symbols. LLVM for arm-apple-darwin does not support TLS. LLVM 
for PPC
supports only 2 of the 4 TLS models. In addition, the 
assembler for
PPC/PPC64 does not support all instructions I need for 
std.math.


Regards,
Kai




Re: Should LLVM become the default D-lang platform?

2014-01-13 Thread Manu
On 13 January 2014 21:40, Kai Nacke k...@redstar.de wrote:

 On Monday, 13 January 2014 at 05:04:46 UTC, Manu wrote:

 On 12 January 2014 00:35, Kai Nacke k...@redstar.de wrote:

  On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:

  This might have been brought up before but I couldn't find any thread
 about this. As things has progressed I wonder if Digital Mars DMD should
 move over to use LLVM instead of its own code generation and compiler
 framework.

 As I see it with the small amount of contributors D-language has, DMD
 will never support anything beyond x86 as there are no resources for
 this.
 Also, why spend time on recreating the the code generation which has
 already been done with LLVM? This enables this community to focus on the
 language which is the most important part as well as supporting more and
 future processor targets.


 You currently can't get the best of all worlds in a single compiler.

 LLVM does not support exceptions on native Win32. (Same is true for Win64
 but I hope to change this.) LLVM does not support CodeView debug symbols.
 Not in the format embedded in object file and not as PDB.
 In short, you loose the complete native Windows tool chain.


 Is there any progress on any of these things BTW?
 At some point, sooner or later, we're REALLY going to need a performance
 compiler on Windows...


 My patch for exceptions on Win64 is finally in review. I hope to commit it
 soon.

 The Google guys are adding COFF line number support right now.

 Regards,
 Kai


Oooohh yeah, this is exciting! :D
How about Win32? That's really important too, particularly since DMD
doesn't support Win32 :/


Re: Should LLVM become the default D-lang platform?

2014-01-13 Thread David Nadlinger

On Monday, 13 January 2014 at 12:47:09 UTC, Manu wrote:

Oooohh yeah, this is exciting! :D
How about Win32? That's really important too, particularly 
since DMD

doesn't support Win32 :/


You mean the 32 bit MSVC toolchain? SEH support is unlikely to 
happen until that Borland patent expires.


David


Re: Should LLVM become the default D-lang platform?

2014-01-13 Thread John Colvin

On Monday, 13 January 2014 at 12:47:09 UTC, Manu wrote:

On 13 January 2014 21:40, Kai Nacke k...@redstar.de wrote:


On Monday, 13 January 2014 at 05:04:46 UTC, Manu wrote:


On 12 January 2014 00:35, Kai Nacke k...@redstar.de wrote:

 On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:


 This might have been brought up before but I couldn't find 
any thread
about this. As things has progressed I wonder if Digital 
Mars DMD should
move over to use LLVM instead of its own code generation 
and compiler

framework.

As I see it with the small amount of contributors 
D-language has, DMD
will never support anything beyond x86 as there are no 
resources for

this.
Also, why spend time on recreating the the code generation 
which has
already been done with LLVM? This enables this community to 
focus on the
language which is the most important part as well as 
supporting more and

future processor targets.


You currently can't get the best of all worlds in a single 
compiler.


LLVM does not support exceptions on native Win32. (Same is 
true for Win64
but I hope to change this.) LLVM does not support CodeView 
debug symbols.

Not in the format embedded in object file and not as PDB.
In short, you loose the complete native Windows tool chain.



Is there any progress on any of these things BTW?
At some point, sooner or later, we're REALLY going to need a 
performance

compiler on Windows...



My patch for exceptions on Win64 is finally in review. I hope 
to commit it

soon.

The Google guys are adding COFF line number support right now.

Regards,
Kai



Oooohh yeah, this is exciting! :D
How about Win32? That's really important too, particularly 
since DMD

doesn't support Win32 :/


Genuine question, I have never done any windows specific 
development: Why is Win32 a concern? Where is the overlap between 
requiring Win32 and high performance? Isn't 64 where it's at now?


Is it windows tablets/phones???


Re: Should LLVM become the default D-lang platform?

2014-01-13 Thread Paulo Pinto

On Monday, 13 January 2014 at 12:59:53 UTC, John Colvin wrote:

On Monday, 13 January 2014 at 12:47:09 UTC, Manu wrote:

On 13 January 2014 21:40, Kai Nacke k...@redstar.de wrote:


On Monday, 13 January 2014 at 05:04:46 UTC, Manu wrote:


On 12 January 2014 00:35, Kai Nacke k...@redstar.de wrote:

On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:


This might have been brought up before but I couldn't find 
any thread
about this. As things has progressed I wonder if Digital 
Mars DMD should
move over to use LLVM instead of its own code generation 
and compiler

framework.

As I see it with the small amount of contributors 
D-language has, DMD
will never support anything beyond x86 as there are no 
resources for

this.
Also, why spend time on recreating the the code generation 
which has
already been done with LLVM? This enables this community 
to focus on the
language which is the most important part as well as 
supporting more and

future processor targets.


You currently can't get the best of all worlds in a single 
compiler.


LLVM does not support exceptions on native Win32. (Same is 
true for Win64
but I hope to change this.) LLVM does not support CodeView 
debug symbols.

Not in the format embedded in object file and not as PDB.
In short, you loose the complete native Windows tool chain.



Is there any progress on any of these things BTW?
At some point, sooner or later, we're REALLY going to need a 
performance

compiler on Windows...



My patch for exceptions on Win64 is finally in review. I hope 
to commit it

soon.

The Google guys are adding COFF line number support right now.

Regards,
Kai



Oooohh yeah, this is exciting! :D
How about Win32? That's really important too, particularly 
since DMD

doesn't support Win32 :/


Genuine question, I have never done any windows specific 
development: Why is Win32 a concern? Where is the overlap 
between requiring Win32 and high performance? Isn't 64 where 
it's at now?


Is it windows tablets/phones???


The 64 bit version of Windows API is still called Win32, there 
was no change like the Win16, Win32, Win32s days.


--
Paulo




Re: Should LLVM become the default D-lang platform?

2014-01-13 Thread David Nadlinger
On Monday, 13 January 2014 at 08:07:42 UTC, Joseph Rushton 
Wakeling wrote:
Right, but they are not merely using -- they are redistributing 
(and distributing derivative works).  The GPL places certain 
constraints here, I think we can all agree, but it can hardly 
be described as intrusive; there's no obligation to base 
one's work on GPL-licensed code.


If the whole topic is basing one project on another, as in the 
current discussion, than that's utterly besides the point.


Don't get me wrong, I'm rather sympathetic with the Free Software 
philosophy, and in fact I consider (A)GPL for all my projects. 
But if the fear of tainting a commercial product (such as the DMC 
backend) with code under an incompatible license is a concern, 
then intrusive is precisely the right word to describe GPL. 
There is a reason that many bigger companies outright ban it, 
whether that is ultimately a sane thing to do or not.


David


Re: Should LLVM become the default D-lang platform?

2014-01-12 Thread luminousone

On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:
This might have been brought up before but I couldn't find any 
thread about this. As things has progressed I wonder if Digital 
Mars DMD should move over to use LLVM instead of its own code 
generation and compiler framework.


As I see it with the small amount of contributors D-language 
has, DMD will never support anything beyond x86 as there are no 
resources for this. Also, why spend time on recreating the the 
code generation which has already been done with LLVM? This 
enables this community to focus on the language which is the 
most important part as well as supporting more and future 
processor targets.


LLVM is also the finalizer for HSAIL, AMD is using it for their 
linux port of C++AMP. But I would assume that ldc probably 
wouldn't have any issues generating HSA compatible code with 
minor modifications as is(as the LLVM backend will support it).


I have no idea if GCC will support HSA or not however Microsoft 
is fully supporting it, as is ARM. So I wouldn't think that GCC 
would be to far behind on that one.


Re: Should LLVM become the default D-lang platform?

2014-01-12 Thread Manu
On 11 January 2014 23:04, Iain Buclaw ibuc...@gdcproject.org wrote:

 On 11 January 2014 00:24, Manu turkey...@gmail.com wrote:
  On 11 January 2014 06:59, Iain Buclaw ibuc...@gdcproject.org wrote:
 
  On 10 January 2014 20:54, John Colvin john.loughran.col...@gmail.com
  wrote:
   On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:
  
   This might have been brought up before but I couldn't find any thread
   about this. As things has progressed I wonder if Digital Mars DMD
   should
   move over to use LLVM instead of its own code generation and compiler
   framework.
  
   As I see it with the small amount of contributors D-language has, DMD
   will
   never support anything beyond x86 as there are no resources for this.
   Also,
   why spend time on recreating the the code generation which has
 already
   been
   done with LLVM? This enables this community to focus on the language
   which
   is the most important part as well as supporting more and future
   processor
   targets.
  
  
   This comes up regularly. It's already been done. Ldc *is* dmd with
 llvm
   backend. Gdc is the same idea but with the gcc framework.
 
  Indeed. But naturally I'd suggest they move to GCC.  ;-)
 
 
  Is it possible that GDC will ever produce binaries that will link against
  the microsoft libs without problems?
  In my experience, GDC produces intrinsic calls to its own runtime all
 over
  the place, and it's not compatible with the microsoft runtime. I also
 recall
  library format mismatch, but that was a long time ago, and I think we
  discussed it again since deciding that GDC is now using the same format
 as
  VisualC in windows...?
  Can GDC write PDB debuginfo into the objects (CV8 I think it is)?

 As I understand, neither GCC nor LLVM are capable of producing PDB.
 Has Microsoft even release any documentation or code necessary to
 produce files in their PDB format?


Walter did it for DMD. I think CV8 is more or less documented, but he found
some Microsoft tweaks to the format, or something like that.


Re: Should LLVM become the default D-lang platform?

2014-01-12 Thread Manu
On 12 January 2014 00:35, Kai Nacke k...@redstar.de wrote:

 On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:

 This might have been brought up before but I couldn't find any thread
 about this. As things has progressed I wonder if Digital Mars DMD should
 move over to use LLVM instead of its own code generation and compiler
 framework.

 As I see it with the small amount of contributors D-language has, DMD
 will never support anything beyond x86 as there are no resources for this.
 Also, why spend time on recreating the the code generation which has
 already been done with LLVM? This enables this community to focus on the
 language which is the most important part as well as supporting more and
 future processor targets.


 You currently can't get the best of all worlds in a single compiler.

 LLVM does not support exceptions on native Win32. (Same is true for Win64
 but I hope to change this.) LLVM does not support CodeView debug symbols.
 Not in the format embedded in object file and not as PDB.
 In short, you loose the complete native Windows tool chain.


Is there any progress on any of these things BTW?
At some point, sooner or later, we're REALLY going to need a performance
compiler on Windows...

With LDC, you can use other platforms. E.g. it runs on Linux/PPC64. But you
 can't ignore the backend because it has bugs and is incomplete.

 E.g. on Linux/ARM I have a linker error when I enable generation of debug
 symbols. LLVM for arm-apple-darwin does not support TLS. LLVM for PPC
 supports only 2 of the 4 TLS models. In addition, the assembler for
 PPC/PPC64 does not support all instructions I need for std.math.

 Regards,
 Kai



Re: Should LLVM become the default D-lang platform?

2014-01-12 Thread Paulo Pinto

On Monday, 13 January 2014 at 05:04:46 UTC, Manu wrote:

On 12 January 2014 00:35, Kai Nacke k...@redstar.de wrote:


On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:

This might have been brought up before but I couldn't find 
any thread
about this. As things has progressed I wonder if Digital Mars 
DMD should
move over to use LLVM instead of its own code generation and 
compiler

framework.

As I see it with the small amount of contributors D-language 
has, DMD
will never support anything beyond x86 as there are no 
resources for this.
Also, why spend time on recreating the the code generation 
which has
already been done with LLVM? This enables this community to 
focus on the
language which is the most important part as well as 
supporting more and

future processor targets.



You currently can't get the best of all worlds in a single 
compiler.


LLVM does not support exceptions on native Win32. (Same is 
true for Win64
but I hope to change this.) LLVM does not support CodeView 
debug symbols.

Not in the format embedded in object file and not as PDB.
In short, you loose the complete native Windows tool chain.



Is there any progress on any of these things BTW?
At some point, sooner or later, we're REALLY going to need a 
performance

compiler on Windows...



Only recently LLVM developers really started caring about 
Windows, so it will take awhile until LLVM is a first class 
citizen.


http://blog.llvm.org/2013/09/a-path-forward-for-llvm-toolchain-on.html

--
Paulo


Re: Should LLVM become the default D-lang platform?

2014-01-11 Thread David Nadlinger

On Friday, 10 January 2014 at 21:00:24 UTC, Paulo Pinto wrote:
Because Walter wouldn't be able to work on his current job any 
longer if he looks into other compiler vendors source code.


IP laws are always a complicated issue.


Unless you have an actual explanation as to why this would be the 
case, I'd simply regard this as FUD. I see how the viral nature 
of the GCC license might be a problem for that, but as far as 
LLVM is concerned, Walter would even be able to just rebrand 
Clang as DMC and ship it as a closed-source package. LLVM also 
doesn't require any copyright assignments, which might be an 
impediment for contributing any fixes back to GCC.


David


Re: Should LLVM become the default D-lang platform?

2014-01-11 Thread Iain Buclaw
On 11 January 2014 00:24, Manu turkey...@gmail.com wrote:
 On 11 January 2014 06:59, Iain Buclaw ibuc...@gdcproject.org wrote:

 On 10 January 2014 20:54, John Colvin john.loughran.col...@gmail.com
 wrote:
  On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:
 
  This might have been brought up before but I couldn't find any thread
  about this. As things has progressed I wonder if Digital Mars DMD
  should
  move over to use LLVM instead of its own code generation and compiler
  framework.
 
  As I see it with the small amount of contributors D-language has, DMD
  will
  never support anything beyond x86 as there are no resources for this.
  Also,
  why spend time on recreating the the code generation which has already
  been
  done with LLVM? This enables this community to focus on the language
  which
  is the most important part as well as supporting more and future
  processor
  targets.
 
 
  This comes up regularly. It's already been done. Ldc *is* dmd with llvm
  backend. Gdc is the same idea but with the gcc framework.

 Indeed. But naturally I'd suggest they move to GCC.  ;-)


 Is it possible that GDC will ever produce binaries that will link against
 the microsoft libs without problems?
 In my experience, GDC produces intrinsic calls to its own runtime all over
 the place, and it's not compatible with the microsoft runtime. I also recall
 library format mismatch, but that was a long time ago, and I think we
 discussed it again since deciding that GDC is now using the same format as
 VisualC in windows...?
 Can GDC write PDB debuginfo into the objects (CV8 I think it is)?

As I understand, neither GCC nor LLVM are capable of producing PDB.
Has Microsoft even release any documentation or code necessary to
produce files in their PDB format?


Re: Should LLVM become the default D-lang platform?

2014-01-11 Thread Paulo Pinto

On 11.01.2014 12:58, David Nadlinger wrote:

On Friday, 10 January 2014 at 21:00:24 UTC, Paulo Pinto wrote:

Because Walter wouldn't be able to work on his current job any longer
if he looks into other compiler vendors source code.

IP laws are always a complicated issue.


Unless you have an actual explanation as to why this would be the case,
I'd simply regard this as FUD. I see how the viral nature of the GCC
license might be a problem for that, but as far as LLVM is concerned,
Walter would even be able to just rebrand Clang as DMC and ship it as a
closed-source package. LLVM also doesn't require any copyright
assignments, which might be an impediment for contributing any fixes
back to GCC.

David



As far as I remember he already had a few court cases caused by such 
kind of issues.


He is the best person to explain such issues, I would say.

--
Paulo


Re: Should LLVM become the default D-lang platform?

2014-01-11 Thread Iain Buclaw
On 11 January 2014 11:58, David Nadlinger c...@klickverbot.at wrote:
 On Friday, 10 January 2014 at 21:00:24 UTC, Paulo Pinto wrote:

 Because Walter wouldn't be able to work on his current job any longer if
 he looks into other compiler vendors source code.

 IP laws are always a complicated issue.


 Unless you have an actual explanation as to why this would be the case, I'd
 simply regard this as FUD. I see how the viral nature of the GCC license
 might be a problem for that, but as far as LLVM is concerned, Walter would
 even be able to just rebrand Clang as DMC and ship it as a closed-source
 package. LLVM also doesn't require any copyright assignments, which might be
 an impediment for contributing any fixes back to GCC.


Remember when I told you that LLVM devs reverted commits made by core
GCC developers because apparently there was no explicit contribution
by them to LLVM?  :-)


Re: Should LLVM become the default D-lang platform?

2014-01-11 Thread David Nadlinger

On Saturday, 11 January 2014 at 13:22:52 UTC, Iain Buclaw wrote:
Remember when I told you that LLVM devs reverted commits made 
by core
GCC developers because apparently there was no explicit 
contribution by them to LLVM?  :-)


I don't recall the details, but I don't see how this is relevant 
to this discussion. There is a difference between requiring 
copyright assignment from contributors and being cautious about 
including code that you suspect to be incompatible with the (more 
liberal) license of your project.


David


Re: Should LLVM become the default D-lang platform?

2014-01-11 Thread David Nadlinger

On Saturday, 11 January 2014 at 13:16:40 UTC, Paulo Pinto wrote:

He is the best person to explain such issues, I would say.


…which is precisely why I found it odd that you posted such an 
unqualified umbrella statement here in the first place. ;)


No offense intended, but just speculating about Walter's motives 
doesn't really help the discussion at all.


If I remember correctly, Walter joined the last bigger discussion 
on this issue here on the NG a year ago or so, and licensing 
issues were *not* one of the arguments that lasted.


David


Re: Should LLVM become the default D-lang platform?

2014-01-11 Thread Kai Nacke

On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:
This might have been brought up before but I couldn't find any 
thread about this. As things has progressed I wonder if Digital 
Mars DMD should move over to use LLVM instead of its own code 
generation and compiler framework.


As I see it with the small amount of contributors D-language 
has, DMD will never support anything beyond x86 as there are no 
resources for this. Also, why spend time on recreating the the 
code generation which has already been done with LLVM? This 
enables this community to focus on the language which is the 
most important part as well as supporting more and future 
processor targets.


You currently can't get the best of all worlds in a single 
compiler.


LLVM does not support exceptions on native Win32. (Same is true 
for Win64 but I hope to change this.) LLVM does not support 
CodeView debug symbols. Not in the format embedded in object file 
and not as PDB.

In short, you loose the complete native Windows tool chain.

With LDC, you can use other platforms. E.g. it runs on 
Linux/PPC64. But you can't ignore the backend because it has bugs 
and is incomplete.


E.g. on Linux/ARM I have a linker error when I enable generation 
of debug symbols. LLVM for arm-apple-darwin does not support TLS. 
LLVM for PPC supports only 2 of the 4 TLS models. In addition, 
the assembler for PPC/PPC64 does not support all instructions I 
need for std.math.


Regards,
Kai


Re: Should LLVM become the default D-lang platform?

2014-01-11 Thread Marco Leise
Am Fri, 10 Jan 2014 13:44:52 -0800
schrieb Andrei Alexandrescu seewebsiteforem...@erdani.org:

 We plan to rig Facebook's build system to use dmd in debug mode and gdc 
 in release mode by default. Best of both worlds.
 
 Andrei

I do that too, and part of the reason why I hacked something
together for the Gentoo Linux package manager, so I could
install libraries for multiple compilers at once.
It seems so trivial to use dmd and a companion compiler gdc
or ldc, but once shared libraries and multiple D releases come
into the mix, it means patching up dmd, make files and dealing
with rpath to load the correct .so (compiler using a
specific compiler vendor/version combination).

-- 
Marco



Re: Should LLVM become the default D-lang platform?

2014-01-11 Thread Benjamin Thaut

Am 10.01.2014 21:56, schrieb John Colvin:


also, the digital mars backend is very fast, which is actually good
selling point for some use-cases where compilation speed is important.


I would also prefer to keep the digital mars backend for exactly that 
reason. The GCC and LLVM backends are just way to slow.


Kind Regards
Benjamin Thaut


Re: Should LLVM become the default D-lang platform?

2014-01-11 Thread Peter Alexander

On Saturday, 11 January 2014 at 13:04:13 UTC, Iain Buclaw wrote:
As I understand, neither GCC nor LLVM are capable of producing 
PDB.
Has Microsoft even release any documentation or code necessary 
to

produce files in their PDB format?


There are plenty of PDB parsers available, so it should be 
possible to uncover the format from there.


Here's one.

https://code.google.com/p/pdbparse/


Re: Should LLVM become the default D-lang platform?

2014-01-11 Thread Iain Buclaw
On 11 Jan 2014 16:55, Peter Alexander peter.alexander...@gmail.com
wrote:

 On Saturday, 11 January 2014 at 13:04:13 UTC, Iain Buclaw wrote:

 As I understand, neither GCC nor LLVM are capable of producing PDB.
 Has Microsoft even release any documentation or code necessary to
 produce files in their PDB format?


 There are plenty of PDB parsers available, so it should be possible to
uncover the format from there.

 Here's one.

 https://code.google.com/p/pdbparse/

But just to clarify, that is a reverse engineering effort?


Re: Should LLVM become the default D-lang platform?

2014-01-11 Thread Adam Wilson
On Sat, 11 Jan 2014 05:04:03 -0800, Iain Buclaw ibuc...@gdcproject.org  
wrote:



On 11 January 2014 00:24, Manu turkey...@gmail.com wrote:

On 11 January 2014 06:59, Iain Buclaw ibuc...@gdcproject.org wrote:


On 10 January 2014 20:54, John Colvin john.loughran.col...@gmail.com
wrote:
 On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:

 This might have been brought up before but I couldn't find any  
thread

 about this. As things has progressed I wonder if Digital Mars DMD
 should
 move over to use LLVM instead of its own code generation and  
compiler

 framework.

 As I see it with the small amount of contributors D-language has,  
DMD

 will
 never support anything beyond x86 as there are no resources for  
this.

 Also,
 why spend time on recreating the the code generation which has  
already

 been
 done with LLVM? This enables this community to focus on the language
 which
 is the most important part as well as supporting more and future
 processor
 targets.


 This comes up regularly. It's already been done. Ldc *is* dmd with  
llvm

 backend. Gdc is the same idea but with the gcc framework.

Indeed. But naturally I'd suggest they move to GCC.  ;-)



Is it possible that GDC will ever produce binaries that will link  
against

the microsoft libs without problems?
In my experience, GDC produces intrinsic calls to its own runtime all  
over
the place, and it's not compatible with the microsoft runtime. I also  
recall

library format mismatch, but that was a long time ago, and I think we
discussed it again since deciding that GDC is now using the same format  
as

VisualC in windows...?
Can GDC write PDB debuginfo into the objects (CV8 I think it is)?


As I understand, neither GCC nor LLVM are capable of producing PDB.
Has Microsoft even release any documentation or code necessary to
produce files in their PDB format?


This is no longer true of LLVM, they've got Windows specific builds that  
output PDB and link with COFF natively. See: http://llvm.org/builds/


--
Adam Wilson
IRC: LightBender
Aurora Project Coordinator


Re: Should LLVM become the default D-lang platform?

2014-01-11 Thread Jacob Carlborg

On 2014-01-10 23:16, Joseph Rushton Wakeling wrote:


Yes, but there's a difference between restrictive and intrusive.
Using GDC doesn't intrude into anything -- the standard libraries are
still Boost-licensed and simply _using_ a GPL'd piece of software
doesn't place any obligations on you.


The way Apple has integrated Clang into Xcode would never be possible 
with GCC since that would require Apple to release Xcode under the GPL 
license.


--
/Jacob Carlborg


Re: Should LLVM become the default D-lang platform?

2014-01-10 Thread John Colvin

On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:
This might have been brought up before but I couldn't find any 
thread about this. As things has progressed I wonder if Digital 
Mars DMD should move over to use LLVM instead of its own code 
generation and compiler framework.


As I see it with the small amount of contributors D-language 
has, DMD will never support anything beyond x86 as there are no 
resources for this. Also, why spend time on recreating the the 
code generation which has already been done with LLVM? This 
enables this community to focus on the language which is the 
most important part as well as supporting more and future 
processor targets.


This comes up regularly. It's already been done. Ldc *is* dmd 
with llvm backend. Gdc is the same idea but with the gcc 
framework.


Re: Should LLVM become the default D-lang platform?

2014-01-10 Thread Iain Buclaw
On 10 January 2014 20:54, John Colvin john.loughran.col...@gmail.com wrote:
 On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:

 This might have been brought up before but I couldn't find any thread
 about this. As things has progressed I wonder if Digital Mars DMD should
 move over to use LLVM instead of its own code generation and compiler
 framework.

 As I see it with the small amount of contributors D-language has, DMD will
 never support anything beyond x86 as there are no resources for this. Also,
 why spend time on recreating the the code generation which has already been
 done with LLVM? This enables this community to focus on the language which
 is the most important part as well as supporting more and future processor
 targets.


 This comes up regularly. It's already been done. Ldc *is* dmd with llvm
 backend. Gdc is the same idea but with the gcc framework.

Indeed. But naturally I'd suggest they move to GCC.  ;-)


Re: Should LLVM become the default D-lang platform?

2014-01-10 Thread John Colvin

On Friday, 10 January 2014 at 20:54:06 UTC, John Colvin wrote:

On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:
This might have been brought up before but I couldn't find any 
thread about this. As things has progressed I wonder if 
Digital Mars DMD should move over to use LLVM instead of its 
own code generation and compiler framework.


As I see it with the small amount of contributors D-language 
has, DMD will never support anything beyond x86 as there are 
no resources for this. Also, why spend time on recreating the 
the code generation which has already been done with LLVM? 
This enables this community to focus on the language which is 
the most important part as well as supporting more and future 
processor targets.


This comes up regularly. It's already been done. Ldc *is* dmd 
with llvm backend. Gdc is the same idea but with the gcc 
framework.


also, the digital mars backend is very fast, which is actually 
good selling point for some use-cases where compilation speed is 
important.


Re: Should LLVM become the default D-lang platform?

2014-01-10 Thread Dwhatever

On Friday, 10 January 2014 at 20:59:35 UTC, Iain Buclaw wrote:
On 10 January 2014 20:54, John Colvin 
john.loughran.col...@gmail.com wrote:

On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:


This might have been brought up before but I couldn't find 
any thread
about this. As things has progressed I wonder if Digital Mars 
DMD should
move over to use LLVM instead of its own code generation and 
compiler

framework.

As I see it with the small amount of contributors D-language 
has, DMD will
never support anything beyond x86 as there are no resources 
for this. Also,
why spend time on recreating the the code generation which 
has already been
done with LLVM? This enables this community to focus on the 
language which
is the most important part as well as supporting more and 
future processor

targets.



This comes up regularly. It's already been done. Ldc *is* dmd 
with llvm

backend. Gdc is the same idea but with the gcc framework.


Indeed. But naturally I'd suggest they move to GCC.  ;-)


I see LLVM as a better choice because the license is less 
intrusive.


Re: Should LLVM become the default D-lang platform?

2014-01-10 Thread Paulo Pinto

Am 10.01.2014 21:51, schrieb Dwhatever:

This might have been brought up before but I couldn't find any thread
about this. As things has progressed I wonder if Digital Mars DMD should
move over to use LLVM instead of its own code generation and compiler
framework.

As I see it with the small amount of contributors D-language has, DMD
will never support anything beyond x86 as there are no resources for
this. Also, why spend time on recreating the the code generation which
has already been done with LLVM? This enables this community to focus on
the language which is the most important part as well as supporting more
and future processor targets.


Because Walter wouldn't be able to work on his current job any longer if 
he looks into other compiler vendors source code.


IP laws are always a complicated issue.

--
Paulo


Re: Should LLVM become the default D-lang platform?

2014-01-10 Thread Dwhatever

On Friday, 10 January 2014 at 20:54:06 UTC, John Colvin wrote:

On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:
This might have been brought up before but I couldn't find any 
thread about this. As things has progressed I wonder if 
Digital Mars DMD should move over to use LLVM instead of its 
own code generation and compiler framework.


As I see it with the small amount of contributors D-language 
has, DMD will never support anything beyond x86 as there are 
no resources for this. Also, why spend time on recreating the 
the code generation which has already been done with LLVM? 
This enables this community to focus on the language which is 
the most important part as well as supporting more and future 
processor targets.


This comes up regularly. It's already been done. Ldc *is* dmd 
with llvm backend. Gdc is the same idea but with the gcc 
framework.


Picking LLVM as the default development platform also means that 
it will tested in this environment instead of porting it all the 
time which introduce new bugs. The support is also different 
among the different backends, picking one would harmonize this 
and make it more complete.


Re: Should LLVM become the default D-lang platform?

2014-01-10 Thread John Colvin

On Friday, 10 January 2014 at 21:00:47 UTC, Dwhatever wrote:

On Friday, 10 January 2014 at 20:54:06 UTC, John Colvin wrote:

On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:
This might have been brought up before but I couldn't find 
any thread about this. As things has progressed I wonder if 
Digital Mars DMD should move over to use LLVM instead of its 
own code generation and compiler framework.


As I see it with the small amount of contributors D-language 
has, DMD will never support anything beyond x86 as there are 
no resources for this. Also, why spend time on recreating the 
the code generation which has already been done with LLVM? 
This enables this community to focus on the language which is 
the most important part as well as supporting more and future 
processor targets.


This comes up regularly. It's already been done. Ldc *is* dmd 
with llvm backend. Gdc is the same idea but with the gcc 
framework.


Picking LLVM as the default development platform also means 
that it will tested in this environment instead of porting it 
all the time which introduce new bugs. The support is also 
different among the different backends, picking one would 
harmonize this and make it more complete.



Hopefully, when the ddmd changeover happens (translating the 
frontend to D) the frontend will be truly shared between the 
different compilers.


Re: Should LLVM become the default D-lang platform?

2014-01-10 Thread Iain Buclaw
On 10 January 2014 21:02, Dwhatever n...@real.com wrote:

 I see LLVM as a better choice because the license is less intrusive.

That is a rather ignorant assumption.


Re: Should LLVM become the default D-lang platform?

2014-01-10 Thread John Colvin

On Friday, 10 January 2014 at 21:12:21 UTC, Iain Buclaw wrote:

On 10 January 2014 21:02, Dwhatever n...@real.com wrote:


I see LLVM as a better choice because the license is less 
intrusive.


That is a rather ignorant assumption.


I've got some pretty strong sympathies with the gpl, but really? 
In most practical circumstances gpl is on the more restrictive 
end of common open-source licences.


Re: Should LLVM become the default D-lang platform?

2014-01-10 Thread Andrei Alexandrescu

On 1/10/14 12:56 PM, John Colvin wrote:

On Friday, 10 January 2014 at 20:54:06 UTC, John Colvin wrote:

On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:

This might have been brought up before but I couldn't find any thread
about this. As things has progressed I wonder if Digital Mars DMD
should move over to use LLVM instead of its own code generation and
compiler framework.

As I see it with the small amount of contributors D-language has, DMD
will never support anything beyond x86 as there are no resources for
this. Also, why spend time on recreating the the code generation
which has already been done with LLVM? This enables this community to
focus on the language which is the most important part as well as
supporting more and future processor targets.


This comes up regularly. It's already been done. Ldc *is* dmd with
llvm backend. Gdc is the same idea but with the gcc framework.


also, the digital mars backend is very fast, which is actually good
selling point for some use-cases where compilation speed is important.


We plan to rig Facebook's build system to use dmd in debug mode and gdc 
in release mode by default. Best of both worlds.


Andrei



Re: Should LLVM become the default D-lang platform?

2014-01-10 Thread Brian Schott
On Friday, 10 January 2014 at 21:44:52 UTC, Andrei Alexandrescu 
wrote:
We plan to rig Facebook's build system to use dmd in debug mode 
and gdc in release mode by default. Best of both worlds.


Andrei


Speaking of Facebook, I'd be interested in seeing how your lexer 
generator ended up compared to mine. Did you ever get permission 
to release that code?


Re: Should LLVM become the default D-lang platform?

2014-01-10 Thread Joseph Rushton Wakeling

On 10/01/14 22:24, John Colvin wrote:

I've got some pretty strong sympathies with the gpl, but really? In most
practical circumstances gpl is on the more restrictive end of common open-source
licences.


Yes, but there's a difference between restrictive and intrusive.  Using GDC 
doesn't intrude into anything -- the standard libraries are still Boost-licensed 
and simply _using_ a GPL'd piece of software doesn't place any obligations on you.


Re: Should LLVM become the default D-lang platform?

2014-01-10 Thread Paulo Pinto

Am 10.01.2014 22:24, schrieb John Colvin:

On Friday, 10 January 2014 at 21:12:21 UTC, Iain Buclaw wrote:

On 10 January 2014 21:02, Dwhatever n...@real.com wrote:


I see LLVM as a better choice because the license is less intrusive.


That is a rather ignorant assumption.


I've got some pretty strong sympathies with the gpl, but really? In most
practical circumstances gpl is on the more restrictive end of common
open-source licences.


Restrictive to whom?

One reason why my open source code is under GPL, is due to my
experience in projects in the enterprise world, where other more
free licenses are taken as free beer and as a mean of avoiding paying 
licenses.


No contribution is ever done, in any form.

--
Paulo


Re: Should LLVM become the default D-lang platform?

2014-01-10 Thread Andrei Alexandrescu

On 1/10/14 1:58 PM, Brian Schott wrote:

On Friday, 10 January 2014 at 21:44:52 UTC, Andrei Alexandrescu wrote:

We plan to rig Facebook's build system to use dmd in debug mode and
gdc in release mode by default. Best of both worlds.

Andrei


Speaking of Facebook, I'd be interested in seeing how your lexer
generator ended up compared to mine. Did you ever get permission to
release that code?


Yes, it's in the pipeline.

Andrei


Re: Should LLVM become the default D-lang platform?

2014-01-10 Thread Manu
On 11 January 2014 06:59, Iain Buclaw ibuc...@gdcproject.org wrote:

 On 10 January 2014 20:54, John Colvin john.loughran.col...@gmail.com
 wrote:
  On Friday, 10 January 2014 at 20:51:19 UTC, Dwhatever wrote:
 
  This might have been brought up before but I couldn't find any thread
  about this. As things has progressed I wonder if Digital Mars DMD should
  move over to use LLVM instead of its own code generation and compiler
  framework.
 
  As I see it with the small amount of contributors D-language has, DMD
 will
  never support anything beyond x86 as there are no resources for this.
 Also,
  why spend time on recreating the the code generation which has already
 been
  done with LLVM? This enables this community to focus on the language
 which
  is the most important part as well as supporting more and future
 processor
  targets.
 
 
  This comes up regularly. It's already been done. Ldc *is* dmd with llvm
  backend. Gdc is the same idea but with the gcc framework.

 Indeed. But naturally I'd suggest they move to GCC.  ;-)


Is it possible that GDC will ever produce binaries that will link against
the microsoft libs without problems?
In my experience, GDC produces intrinsic calls to its own runtime all over
the place, and it's not compatible with the microsoft runtime. I also
recall library format mismatch, but that was a long time ago, and I think
we discussed it again since deciding that GDC is now using the same format
as VisualC in windows...?
Can GDC write PDB debuginfo into the objects (CV8 I think it is)?