Difference between revisions of "Beyond D2"

From D Wiki
Jump to: navigation, search
(D questionable design choices)
(Features to add)
Line 21: Line 21:
 
*** supersedes: "feature request: __ARGS__ for logging (cf __FILE__, __LINE__, __FUNC___)"
 
*** supersedes: "feature request: __ARGS__ for logging (cf __FILE__, __LINE__, __FUNC___)"
  
 +
* python style named parameter arguments
  
* python style named parameter arguments
+
* Yield return
 +
 
 +
* R-value references
  
 
----
 
----
 
[1] Related email thread: 'Maintain notes for D's successor? [Was: Re: Why the @ in @safe? & UDAs]'
 
[1] Related email thread: 'Maintain notes for D's successor? [Was: Re: Why the @ in @safe? & UDAs]'

Revision as of 01:16, 10 November 2013

Motivation

This page can be used as a centralized place to discuss parts of D2's design that are controversial, undesirable or that could be improved, including those that are too late to fix in D2. Also discussed here are features that would be worthy of consideration in a hypothetical successor for D2 (D3? E? ). This page came up from email thread [1];

Questionable design choices

  • is virtual by default a good idea with separate compilation model?

Features to improve

  • improved dmd/rdmd command line: [DIP41: dmd/rdmd command line overhaul]

Features to drop

  • can we get rid of C-style expression lists in parenthesis; these would be used for tuples
  • can we get rid of @property?

Features to add

  • AST macros
    • would enable many features; eg:
      • supersedes: "proposal: a new string litteral to embed variables in a string"
      • supersedes: "feature request: __ARGS__ for logging (cf __FILE__, __LINE__, __FUNC___)"
  • python style named parameter arguments
  • Yield return
  • R-value references

[1] Related email thread: 'Maintain notes for D's successor? [Was: Re: Why the @ in @safe? & UDAs]'