Difference between revisions of "DIPs"
(Added DIP 70 to the table & added the missing cells for a few rows above it.) |
(Added DIP 71) |
||
Line 348: | Line 348: | ||
| [[DIP70]] | | [[DIP70]] | ||
| @api/extern(noinfer) attribute | | @api/extern(noinfer) attribute | ||
+ | | Draft | ||
+ | | | ||
+ | |- | ||
+ | | [[DIP71]] | ||
+ | | 'noscope' and 'out!param' attributes | ||
| Draft | | Draft | ||
| | | |
Revision as of 07:13, 26 January 2015
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 | Draft | ||
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 | Draft | ||
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 |