Release D 2.087.0

Seb seb at wilzba.ch
Mon Jul 15 17:59:25 UTC 2019


On Monday, 15 July 2019 at 14:00:23 UTC, Mike Franklin wrote:
> On Monday, 15 July 2019 at 13:00:08 UTC, Vladimir Panteleev 
> wrote:
>
>>> We are trying to implement many of those `extern(C)` runtime 
>>> hooks as templates.  Those templates need to be implicitly 
>>> imported through object.d.  That means code that was in `rt` 
>>> is converted to a template, and then moved to object.d.  
>>> However, as we do more and more of them object.d becomes 
>>> unwieldy.
>>>
>>> I took the initiative to prevent object.d from turning into a 
>>> more of a monstrosity that it already is, and moved those 
>>> runtime templates (which used to reside in `rt`) back into 
>>> `rt`.
>>
>> This is not a problem, and not at all related to the issue 
>> we're discussing. The problem is that you chose to move them 
>> into `rt` instead of somewhere under `core`, which would 
>> respect existing conventions and avoid breakages like the ones 
>> we've seen reported in this thread.
>
> It is related.  If I follow your suggestion to move these 
> implementations to `core.internal` and continue with the 
> objective of converting all runtime hooks to templates, the 
> vast majority of `rt` will end up being moved to 
> `core.internal`.  Is that what you're suggesting?
>
> `rt` is the language implementation.  `core.internal` contains 
> the utilities used internally by druntime and "privately" 
> imported by Phobos.  Following that established convention, I 
> made the right decision.
>
> I'm sorry it broke digger, but digger is not how we typically 
> build DMD, druntime, and Phobos.
>
> Mike

The point is that we don't ship the sources of rt to the user. 
That's the separation. With templates sources must be made 
available to the user, s.t. the compiler can instantiate them. 
However, rt doesn't get shipped to the user as it is compiled 
only.

As probably more tools and distributions are affected I suggest 
we move all source code that needs to be instantiated by the user 
to core.internal.


More information about the Digitalmars-d-announce mailing list