@api: One attribute to rule them All
Atila Neves via Digitalmars-d
digitalmars-d at puremagic.com
Sat Jan 10 03:11:39 PST 2015
Very interesting, looking forward to reading the DIP.
Atila
On Friday, 9 January 2015 at 11:40:28 UTC, Dicebot wrote:
> I think that push for more inference / WPO is an important goal
> for D. However I had somewhat more radical and generic changes
> in mind, ones that don't add new keywords or semantics but
> rather strictly define what existing ones mean. This was
> supposed to be turned into a DIP at some point (possibly after
> consulting with Walter) but here is the draft outline:
>
> - separate compilation in basic C sense becomes illegal
> - minimal legal unit of separate compilation is defined as
> static library
> - any time library gets built, it _must_ be distributed with
> matching .di interfaces. If there are original .d files
> imported, one must not try to link prebuilt library.
> - .di generation is split in two modes:
> 1) 'minimal' (API) which only writes exported symbols and
> ignores even public ones. All inferred attributes gets written
> explicitly there. This is what gets recommended for public
> distribution (even if it is source-only distribution) and what
> defines stable API.
> 2) 'full' mode which is similar to existing .di generation
> but with all attributes explicitly written to all functions. It
> is approach recommended for creating intermediate built
> artifacts (such as dub building of dependencies).
>
> Stability of (1) headers can be validated mechanically by
> compiler / external tool in such scenario. As you may notice no
> new keywords / language concepts are proposed, it is only about
> more strict definition of standard development flow. It also
> opens well-defined borderline for any WPO.
>
> Needs a lot of work before any serious destruction of course
> but should give some overall feeling of what I am going at.
More information about the Digitalmars-d
mailing list