Difference between revisions of "Vision/2017H1"
(→H1 2017 Priorities) |
|||
Line 55: | Line 55: | ||
;Safety and Memory Management | ;Safety and Memory Management | ||
− | :We | + | :We merged [https://github.com/dlang/DIPs/blob/master/DIPs/DIP1000.md DIP1000] as an opt-in feature |
:[https://github.com/dlang/phobos/pull/4878 PR4878] is the first safe reference counted buffer of bytes. It is not general enough because it does not offer reference to its elements. | :[https://github.com/dlang/phobos/pull/4878 PR4878] is the first safe reference counted buffer of bytes. It is not general enough because it does not offer reference to its elements. | ||
Line 67: | Line 67: | ||
1. '''<tt>@safe</tt>ty:''' we aim to enable large-scale uses of D with safety guarantees. | 1. '''<tt>@safe</tt>ty:''' we aim to enable large-scale uses of D with safety guarantees. | ||
− | 2. '''<tt>@nogc</tt>:''' Use of D without a garbage collector, most likely by using reference counting and related methods for reclamation of resources. This task is made challenging by the safety requirement. | + | 2. '''<tt>@nogc</tt>:''' 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. | 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. | ||
Line 73: | Line 73: | ||
All other goals are secondary or adjunct to the above. Such include: | All other goals are secondary or adjunct to the above. Such include: | ||
− | * | + | * Infrastructure: |
− | * | + | ** Rework CI infrastructure |
− | * Redoing compiler code into lowerings and <tt>__traits</tt>-based introspection that leverage client code, thus moving compiler smarts into simpler library facilities | + | ** Overhaul dub registry |
− | * | + | * Compiler (including paying technical debt and supporting collaboration on compiler work): |
+ | ** Redoing compiler code into lowerings and <tt>__traits</tt>-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 |
Revision as of 00:06, 4 January 2017
Meta
This document discusses the high-level vision for D with semestrial granularity. It is released in 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.
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
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