Difference between revisions of "Vision/2017H1"

From D Wiki
Jump to: navigation, search
(H2 2016 Review)
 
(8 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 22: Line 22:
  
 
:Sebastian Wilzbach, Martin Nowak, and Vladimir Panteleev have improved automation in the process of creating, reviewing, and integrating contributions.
 
: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:
 
:Contributions on github have declined compared to last year, as shown in this table:
Line 50: Line 52:
 
|}
 
|}
  
 
:Scholarship recipients started contributing to the codebase
 
  
 
;Safety and Memory Management
 
;Safety and Memory Management
  
:We are on track for pulling [https://github.com/dlang/DIPs/blob/master/DIPs/DIP1000.md DIP1000] by the end of the year
+
: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.
  
== H2 2016 Priorities ==
+
== 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