This document discusses the high-level vision for D with semestrial granularity. It is released in January and July of each year.

Note: This document focuses on goals the D leadership will personally enable or make happen, or strongly believes are important for the success of the D language. Other contributions are always welcome and do not need to be necessarily aligned with this document.

H2 2016 Review

The D Language Foundation

Since 2016 we are a 501(c) public charity organization.

Since November the Foundation has granted 4 scholarships to MSc students at University "Politehnica" Bucharest.

The Foundation has a positive balance sheet from DConf 2016 and a number of speaking and training engagements. We have two years of autonomy with the current balance and expense structure.

Organization

Martin Nowak has improved the release model and integration of fixes.

Raising participation

Sebastian Wilzbach, Martin Nowak, and Vladimir Panteleev have improved automation in the process of creating, reviewing, and integrating contributions.

Scholarship recipients started contributing to the codebase

Contributions on github have declined compared to last year, as shown in this table:

Year Pull Requests Created 2011 1134 2012 1846 2013 2891 2014 2954 2015 3246 2016 3074





Safety and Memory Management

We merged DIP1000 as an opt-in feature

PR4878 is the first safe reference counted buffer of bytes. It is not general enough because it does not offer reference to its elements.

Walter Bright has fixed many bugs that allow unsafe behavior in @safe code.

H1 2017 Priorities

Technical

We have decided to focus on three overarching goals in the first six months of 2017:

1. @safe ty: we aim to enable large-scale uses of D with safety guarantees.

2. @nogc : Use of D without a garbage collector, most likely by using reference counting and related methods Unique/Weak references) for reclamation of resources. This task is made challenging by the safety requirement.

3. Static introspection: We believe this is an important strategic advantage of D and we should continue to improve both compiler support and library support.

All other goals are secondary or adjunct to the above. Such include:

Infrastructure: Rework CI infrastructure Overhaul dub registry

Compiler (including paying technical debt and supporting collaboration on compiler work): Redoing compiler code into lowerings and __traits -based introspection that leverage client code, thus moving compiler smarts into simpler library facilities Templatize dmd <-> druntime API Better support for C-style libraries with light or no runtime Better information hiding and encapsulation in dmd Refactoring of overloads in dmd

Performance and Scalability: Improved support for vector instructions in the front- and back-end New CTFE engine 1.0 (w/o classes & exceptions) Address compile time/resource issues (compilation model, template instantiation & template instance emission)

Library: High-level shared library wrapper C++ stdlib interface



Non-Technical