Difference between revisions of "Vision/2017H1"
(→H2 2016 Review) |
|||
(7 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
== Meta == | == Meta == | ||
− | This document discusses the high-level vision for D with semestrial granularity. It is released in January and July. | + | 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. | 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. | ||
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 61: | Line 61: | ||
:Walter Bright has fixed many bugs that allow unsafe behavior in <tt>@safe</tt> code. | :Walter Bright has fixed many bugs that allow unsafe behavior in <tt>@safe</tt> code. | ||
− | == | + | == H1 2017 Priorities == |
+ | |||
+ | === Technical === | ||
+ | |||
+ | We have decided to focus on three overarching goals in the first six months of 2017: | ||
+ | |||
+ | 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 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 <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 | ||
+ | ** 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 | ||
+ | |||
+ | [[Category:Vision Statements]] |
Latest revision as of 20:32, 2 June 2018
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