CTFE and DI: The Crossroads of D

Adam Wilson flyboynw at gmail.com
Wed May 9 15:41:11 PDT 2012


On Wed, 09 May 2012 15:29:23 -0700, Adam D. Ruppe  
<destructionator at gmail.com> wrote:

> On Wednesday, 9 May 2012 at 22:15:02 UTC, Adam Wilson wrote:
>> Sure, but a lot of software developers, particularly those with money,  
>> don't want their source getting out, and in a lot of cases, there is no  
>> good reason to distribute the source.
>
> Yeah, you're preaching to the choir... which is why I'm
> against changing anything for druntime's sake.
>
> Your path for the .di files does the right thing. Don't
> change that just because it breaks druntime.
>
> druntime is open source, so there's no need for it to
> be using .di generation in the first place, whether it
> is a shared library or not

Actually there is a need for a shared library DRT, and that is when there  
are other multiple libraries that depend on DRT (anything made with D)  
being linked into the same executable. Specifically, what is happening is  
that static libraries that are compiled with two different versions of the  
DRT will crash on start due to conflicts between the two codebases. This  
was particularly noticeable anytime the GC changed between two releases.

But if both are compiled against a shared library, and the DRT API hasn't  
changed then it doesn't matter which version of the DRT is used, both  
shared libs are dynamically linked to the same version of the DRT. This  
was discussed a few months ago and it was agreed that DRT needs a shared  
library variant. IIRC that was actually the impetus for much of the shared  
library work that went into 2.058.

-- 
Adam Wilson
IRC: LightBender
Project Coordinator
The Horizon Project
http://www.thehorizonproject.org/


More information about the Digitalmars-d mailing list