Last update August 5, 2010

Language Devel



There is a lot of discussion about where D is heading and how it is going to get there. And what you should know is all this discussion occurs on the newsgroup. Don't expect the content on the Discussion and Ideas page to be the most up-to-date. The D Conference page contains information related to past and possible future conferences related to D.

If you are interested in keeping a general idea about what is happening you will find the Planet D's RSS feed to be very nice as it follows many D related blogs. Another area that has been getting some movement has been on reddit D_Language and reddit D_Programming

Table of contents of this page
History   
Future Directions   
Contributing   
Specification   
DMD   
Related   

History    

"D was conceived starting in December 1999 by Walter Bright of DigitalMars as a successor to C and C++, and has grown and evolved with helpful suggestions and critiques by friends and colleagues. Take a look at the D language." (from Dan Liebgold's DWiki)

Future Directions    

The following list of major issues dates from July 2009. These are issues which Walter at one time agreed will happen.

Known D1.0, applies to D2 as well:

  • [done, DMD1.048 and 2.033] Unimplemented features -- contract inheritance.
  • Most operations should work in CTFE (classes, exceptions, scope).
  • Private, protected, package must work!
Known D2.0, Language ( To be implemented before Andrei's book "The D programming Language" (TDPL) is published on 28 May 2010):
  • [DMD 2.036] Pass static arrays by value.
  • [DMD 2.036] Move AAs from language into library.
  • [DMD 2.037] Safe D (@safe, @trusted, @system)
  • [DMD 2.037] Bugs in Bugzilla marked with [tdpl].
  • [DMD 2.037] opDispatch() (based on Bugzilla:2868)
  • [DMD 2.037] Property syntax using @property.
  • [DMD 2.041] Operator overloading: opBinary!("+"), opUnary!("--"), opIndexAssign!("*").
  • [DMD 2.041] Remove "length" from array index expressions ( Bugzilla:3474).
  • [DMD 2.043] Fix the array stomping issue.
  • opDollar (Patch in Bugzilla:3474).
  • [DMD 2.044] Create complex types in std.complex.
  • Remove complex and imaginary types from language.
  • Remove C-style declarations.
  • Remove typedef.
  • Remove floating point NCEG operators.
  • All unit tests from TDPL must pass. ( TDPL Bugs)
Known D2.0, Phobos (Longer timescale):
  • [std.concurrency, added DMD 2.042] Message passing for Phobos. It will be limited but safe.
  • [std.container, designed late May] Collections
  • Phobos I/O: The intent is to make all of I/O range-based such that e.g. files and other streams can be combined through std.range and std.algorithm in various ways.
Pending decision from Walter:
  • Remove C-style struct initializers.
  • Clean up is(XXX) and __traits(XXX) syntax (eg via meta.XXX proposal, Bugzilla:3702).
  • toString() needs to be improved (Eg, change signature to void toString(void delegate(const char[] s) put, const char[] formatstr))
  • Inheriting constructors.
  • postconditions with exceptions
  • array operations for user-defined types
  • Move 'delete' from language to library. Possibly even get rid of 'new'.
Areas which need to be fixed:
  • construction of immutable and const objects.
  • a solid approach to unicity, moving, duplication, and marshaling.
  • unification of overloading across templates and non-templates.
  • Attempt to simplify the language, moving features to the standard library where possible.
Unknown status:
  • [Done 30 April -- Tango code is off-limits for Phobos] The Tango license issue needs to be sorted to the extent that Andrei and Walter feel they can safely look at the Tango code; OR we can decide that's not going to happen, and change the strategy for the Tango/Phobos? relationship.
  • removing "Substitution failure is not an error" (? Does D still have it?)
Known to be deferred to D3.0:
  • AST macros.
  • Bartosz Milewski's race-free type system.
Previously proposed, but now dropped: Some old lists. Neither of these appear to stayed up-to-date with the latest happenings.

Contributing    

Specification    

DMD    

DMD is the Digital Mars D compiler, the official reference compiler.

Related    


FrontPage | News | TestPage | MessageBoard | Search | Contributors | Folders | Index | Help | Preferences | Edit

Edit text of this page (date of last change: August 5, 2010 15:32 (diff))