Release D 2.087.0

David Nadlinger code at klickverbot.at
Mon Jul 15 21:46:05 UTC 2019


On Monday, 15 July 2019 at 20:57:59 UTC, Johannes Pfau wrote:
> I don't see how "should be made public" can be interpreted as 
> "should be installed", especially considering that templates 
> need source code installed (core.internal), but that's 
> completely orthogonal to what functions should be private 
> (core.internal) / public to users of druntime.
>
> However, I'll open a PR to clarify that paragraph.

Yes, clarifying that paragraph is a good idea. The intended 
meaning used to be unambiguous especially given this part:

"If a public module consists of a header file and an 
implementation file (which are both maintained by hand) then it 
is OK to import private modules in the implementation file."

This refers to the fact that some modules (object, core.thread) 
used to have hand-written .di files to separate the public 
interface from the implementations (which made use of rt.* 
imports).

Now that those duplicate .di files have (fortunately!) been done 
away with, I can see how the wording could be unclear without 
that prior knowledge. And in either case, avoiding to use heavily 
overloaded terms ("private"/"public") without further explanation 
is a good idea.


>> This split has been in place since back in the D1/Tango days.
>
> Sure, the core vs rt split did. But core.internal did not exist 
> in D1.

How core is organised internally has little do with whether rt is 
public or not.

  — David


More information about the Digitalmars-d-announce mailing list