Difference between revisions of "Vision/2017H1"
m (AndreiAlexandrescu moved page Vision/2017H1 draft to Vision/2017H1) |
|||
Line 90: | Line 90: | ||
* Library: | * Library: | ||
** High-level shared library wrapper | ** High-level shared library wrapper | ||
+ | ** C++ stdlib interface | ||
=== Non-Technical === | === Non-Technical === |
Revision as of 15:58, 7 January 2017
Meta
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. @safety: 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
- Organize DConf 2017
- Get scholarship recipients working on high-impact research projects
- Continue enhancing the Foundation's financials, which will allow it to:
- Expand scholarship program
- Hire consultants
- Possibly hire statutory employees
- Fund more projects
- Help organizing more events and conferences
- Improve process (release, DIPs, deprecations/enhancements)
- Improve operational efficiency
- Improve publications, education, and PR:
- Books and articles
- Academic papers
- Blog posts (notably: The Official D Blog)
- Presence in social media