Vision/2016H2

From D Wiki
Jump to: navigation, search

Meta

This document discusses the high-level vision for D. It is revised every six months (January and July).

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.

H1 2016 Review

The D Language Foundation
We failed to apply for nonprofit status before the end of H1. Currently the application has been drafted and is under review by a CPA and an attorney.
Raising participation
Participation during 2016H1 has been steady but has been below expectations. Of the 2000 PRs planned for H1 we achieved 1711.
Foster brand awareness
We have had good results in this area. DConf 2016 has been a success with over 140 participants, a solid program, and an enthusiastic atmosphere. D has been featured in talks at ACCU and NDC Oslo. A number of local meetups (Bay Area, Boston, Berlin etc) took place.
The official D Blog has been created under the care of Michael Parker and already has good content.
A formalization of the DIP process has been initiated by Dicebot.
Tooling

DUB will be deployed with dmd starting with the next release.

Other

Other topics from H1 underwent only little development and will be copied as ongoing topics for H2: safety, memory management, tooling, improve language stability and specification, C++ and Objective C integration, library additions, smartphone support.

H2 2016 Priorities

  • Improve or replace the GC with a more efficient one
  • Eliminate Phobos dependency on GC (in other words, make GC opt out a viable and simple option).
  • Flesh out and solidify std.experimental.allocator
  • Improve compiler support so ref counting can be done @safely.
  • Improve C++ inter-operability: struct mangling, Windows exceptions
  • Fix problems with excessively long mangled names
  • Improve internal memory management of compiler
  • Continue improving DMD front end internals
  • Low-hanging GC allocator optimization (thread cache, better data structures)
  • Fast CTFE interpretation (rather simple mem leakage fix now, new architecture later)
  • Usable/useful escape reference analysis (finished DIP25, scope methods to avoid escaping of this, in = const scope, D variadic arguments) to enable more efficient resource management (see example)
  • More stable release model, better integration of fixes, maintaining LTS releases for professional users
  • Better management of language and phobos development, consensus on strategies, basic project management for bigger features, better administration of DIPs and module review queue (see proposal to use Github and WIP status)