ID
|
Title
|
Status
|
Description
|
DIP1
|
Template DIP
|
Draft
|
This is a DIP template that can be used as a model to start a new proposal.
|
DIP2
|
Const code bloat
|
Approved
|
proposed solution for bug 1961.
|
DIP3
|
Remove inheritance protection
|
Approved
|
non-public inheritance in a single inheritance language that has a single root object hierarchy makes little sense.
|
DIP4
|
Properties
|
Superseded by DIP6
|
an alternate usage/definition syntax for properties.
|
DIP5
|
Properties 2
|
Superseded by DIP6
|
a variant of DIP4.
|
DIP6
|
Annotations
|
Approved
|
extend the D programming language with annotations.
|
DIP7
|
Operator overloading
|
Approved
|
Revamped operator overloading.
|
DIP8
|
Improving Runtime Type Info
|
Draft
|
Templating RTTI.
|
DIP9
|
Redo toString API
|
Draft
|
Replace inefficient aggregate toString API with efficient delegate-based version that supports formatting.
|
DIP10
|
Qualified constructors and destructors for structs
|
Draft
|
|
DIP11
|
Automatic downloading of imports
|
Draft
|
Support automatically downloading imported files via new import path specifications or pragmas.
|
DIP12
|
C API Headers
|
Approved
|
Collection of D headers for common C libraries.
|
DIP13
|
Import path binding
|
Draft
|
Allow to bind an import path to a package.
|
DIP14
|
Import path binding in source code
|
Draft
|
Allow to bind an import path to a package from within sources.
|
DIP15
|
Import of packages
|
Superseded by DIP37
|
Improve imports of packages with submodules.
|
DIP16
|
Transparently substitute module with package
|
Superseded by DIP37
|
|
DIP17
|
Sane volatile statement
|
Superseded by DIP20
|
|
DIP18
|
Non-GC Threads
|
Draft
|
|
DIP20
|
Volatile read/write intrinsics
|
Implemented
|
Intrinsics to perform C-style volatile loads/stores from/to memory.
|
DIP21
|
Fixing property
|
Draft
|
|
DIP22
|
Private symbol visibility
|
Draft
|
Modification of private & Co symbol rules to reduce name clashes. Add internal linkage storage class.
|
DIP23
|
Fixing property redux
|
Draft
|
Initial
|
DIP24
|
Fixing properties and optional parens.
|
Draft
|
Fixing properties and optional parens. Only those. In a general and straightforward way. (counter proposal to DIP23)
|
DIP25
|
Sealed references
|
Implemented 2.067
|
|
DIP26
|
Properties the other way round
|
Draft
|
|
DIP27
|
Function definition
|
Draft
|
|
DIP28
|
Property definition
|
Draft
|
|
DIP29
|
Unique pointers
|
Draft
|
Unique pointers can be implicitly cast to/from immutable and shared.
|
DIP30
|
Delegate definition
|
Draft
|
|
DIP31
|
Defined compile time paradox resolution
|
Draft
|
|
DIP32
|
Uniform tuple syntax
|
Draft
|
|
DIP33
|
A standard exception hierarchy
|
Draft
|
|
DIP34
|
Static array literals
|
Draft
|
|
DIP35
|
Sealed References Amendment
|
Draft
|
|
DIP36
|
Rvalue References
|
Rejected
|
|
DIP37
|
Importing Packages as if They Were Modules
|
Implemented
|
Allow for packages to be imported as if they were modules by providing a package.d file.
|
|
DIP38
|
Safe references without runtime checks
|
Draft
|
|
DIP39
|
Safe rvalue references: backwards compatible, safe against ref/nonref code evolution, compatible with UFCS and DIP38.
|
Draft
|
|
DIP40
|
Template parameter deduction for constructors.
|
Draft
|
|
DIP41
|
dmd/rdmd command line overhaul.
|
Draft
|
|
DIP42
|
Support enum E(T) = expression; for manifest constants
|
Implemented
|
|
DIP43
|
D/Objective-C
|
Draft
|
Adds language extensions to make D ABI compatible with Objective-C.
|
DIP44
|
scope(this)
|
Draft
|
Extends scope guards to class / struct lifetime.
|
DIP45
|
making export an attribute
|
Draft
|
Turn export into an attribute and fix various shortcomings of its current implementation.
|
DIP46
|
region based storage allocation
|
Draft
|
Library addition to GC to allow for region based allocation strategies
|
DIP47
|
Outline Member Functions of Aggregates
|
Draft
|
Allow class/struct member function definitions to be placed outside of the class/struct declaration.
|
DIP48
|
Interface specifications for aggregate types
|
Draft
|
|
DIP49
|
Define qualified postblit
|
Draft
|
Fix D2 type-system hole.
|
DIP50
|
AST Macros
|
Draft
|
Abstract Syntax Tree macros. A general solution for language extensions.
|
DIP51
|
not-virtual-by-default
|
Draft
|
Change the behaviour of class methods so they are not virtual by default.
|
DIP52
|
Implicit conversions
|
Draft
|
Add more implicit conversion options for user-defined types.
|
DIP53
|
Qualified constructor revisited
|
Draft
|
Make qualified constructor definition more simple and understandable.
|
DIP54
|
Revamp of Phobos tuple types
|
Draft
|
Address frequent informational confusion around std.typetuple & friends, initiate transition to std.meta.* package
|
DIP55
|
Access Data Items In Ancestor Stack Frames
|
Draft
|
Support for *caller pointer in functions and adding class features to functions
|
DIP56
|
Provide Pragma to control function inlining
|
Draft
|
Add pragma(inline,true); and pragma(inline,false);
|
DIP57
|
static foreach
|
Draft
|
|
DIP58
|
Make ".." a binary operator
|
Draft
|
|
DIP59
|
??
|
Draft
|
|
DIP60
|
Add @nogc function attribute
|
Implemented
|
|
DIP61
|
Add namespace scopes to support calling external C++ functions in C++ namespaces
|
Implemented
|
|
DIP62
|
Volatile type qualifier for unoptimizable variables in embedded programming
|
Rejected
|
|
DIP63
|
Operator overloading for raw templates
|
Draft
|
|
DIP64
|
Attribute Cleanup
|
Draft
|
|
DIP65
|
Exception handling syntax cleanup
|
Rejected
|
|
DIP66
|
(Multiple) alias this
|
Conditionally Approved
|
|
DIP67
|
Associative Ranges
|
Rejected
|
|
DIP68
|
Add @nogc attribute on types
|
Draft
|
|
DIP69
|
Implement scope for escape proof references
|
Draft
|
|
DIP70
|
@api/extern(noinfer) attribute
|
Draft
|
|
DIP71
|
'noscope' and 'out!param' attributes
|
Draft
|
|
DIP72
|
Provide a Uniform Compiler Info Syntax
|
Draft
|
|
DIP73
|
D Drafting Library
|
Draft
|
|
DIP74
|
Reference Counted Class Objects
|
Draft
|
|
DIP75
|
Release Process
|
Approved experimentally for 2.068
|
|
DIP76
|
Autodecode should not throw
|
Draft
|
Like std.utf.byDchar, it should emit Replacement Character instead
|
|
DIP77
|
Fix Unsafe RC Pass By Ref
|
Draft
|
Fix memory safety issue in DIP25
|
DIP78
|
AST Macros Lite
|
Draft
|
Abstract Syntax Tree macros without syntax extensions in the language.
|
DIP79
|
Negation of attributes
|
Draft
|
Negation of attributes without the need for new keywords.
|
DIP80
|
Phobos additions
|
Draft
|
Additions that would make phobos even more useful.
|
DIP81
|
Writing files at compile time
|
Draft
|
DIP82
|
static unittest blocks
|
Draft
|
Allow for unittest blocks to be declared inside of templates which are compiled and run exactly once rather than once per instantiation.
|
DIP83
|
Configurable Assert Diagnostics
|
Draft
|
Allow for assert's to do pretty printing of its failing expression. This printing will be library-level type-configurable.
|