Difference between revisions of "Language design discussions"
(Add initial note about inheriting constructors) |
(Added space between each main heading as they were all running together making it difficult to read.) |
||
Line 2: | Line 2: | ||
Formal improvement proposals can be found on the [[DIPs|main DIP index]]. | Formal improvement proposals can be found on the [[DIPs|main DIP index]]. | ||
+ | |||
== Properties == | == Properties == | ||
Line 17: | Line 18: | ||
* [[Property Discussion Proposal 1]] | * [[Property Discussion Proposal 1]] | ||
* [[DIP21]] | * [[DIP21]] | ||
+ | |||
+ | |||
== Access specifiers and symbol visibility == | == Access specifiers and symbol visibility == | ||
Line 34: | Line 37: | ||
==== Proposal ==== | ==== Proposal ==== | ||
[[DIP22]] | [[DIP22]] | ||
+ | |||
+ | |||
== auto ref == | == auto ref == | ||
Line 45: | Line 50: | ||
==== Description ==== | ==== Description ==== | ||
Present AA implementation has lot of problems and most likely needs to be reworked. [[AA_Implementation_Issues]] | Present AA implementation has lot of problems and most likely needs to be reworked. [[AA_Implementation_Issues]] | ||
+ | |||
+ | |||
== <code>volatile</code> == | == <code>volatile</code> == | ||
Line 65: | Line 72: | ||
** [http://forum.dlang.org/post/k54gc2$428$1@digitalmars.com October 2012 Discussion] | ** [http://forum.dlang.org/post/k54gc2$428$1@digitalmars.com October 2012 Discussion] | ||
* [http://wiki.dlang.org/DIP17 DIP17] - Superceded by [http://wiki.dlang.org/DIP20 DIP20] | * [http://wiki.dlang.org/DIP17 DIP17] - Superceded by [http://wiki.dlang.org/DIP20 DIP20] | ||
+ | |||
+ | |||
== <code>final</code>-by-default == | == <code>final</code>-by-default == | ||
Line 77: | Line 86: | ||
** [http://forum.dlang.org/post/xbbzknslhfrwlwoqfcak@forum.dlang.org Client affected by JSON regression steps forward] encouraging gradual, managed change | ** [http://forum.dlang.org/post/xbbzknslhfrwlwoqfcak@forum.dlang.org Client affected by JSON regression steps forward] encouraging gradual, managed change | ||
* [http://forum.dlang.org/post/lfrdst$oav$1@digitalmars.com Andrei puts his foot down] stating there will be no <code>final</code>-by-default in the D programming language. | * [http://forum.dlang.org/post/lfrdst$oav$1@digitalmars.com Andrei puts his foot down] stating there will be no <code>final</code>-by-default in the D programming language. | ||
+ | |||
+ | |||
== rvalue references == | == rvalue references == | ||
Line 83: | Line 94: | ||
* [http://forum.dlang.org/post/4F84D6DD.5090405@digitalmars.com April 2012 Discussion] | * [http://forum.dlang.org/post/4F84D6DD.5090405@digitalmars.com April 2012 Discussion] | ||
* [http://d.puremagic.com/issues/show_bug.cgi?id=9238 Issue Report] | * [http://d.puremagic.com/issues/show_bug.cgi?id=9238 Issue Report] | ||
+ | |||
Revision as of 01:50, 31 March 2014
D is an evolving and complex language. New features are proposed, unexpected interaction in old ones get found, design issues are raised. All this may involve hard debates in D newsgroup and if often forgotten. This page serves as an index for major design discussions and proposals.
Formal improvement proposals can be found on the main DIP index.
Contents
[hide]Properties
Description
Initial @property design has issues. How can it be changed or even discarded at all?
Thread
- Initial discussion where this topic has rised
- Walters follow-up with proposal to kill property, most info here
Essential moments
Proposals
Access specifiers and symbol visibility
Description
Currently there is feature like "static global" in C or "unnamed namespace" in C++. Access specifiers for module-level symbols control access, not visibility. Ability to hide symbols needs to be added without breaking current access system.
As a result of discussion, Walter has asked for DIP on this topic.
Essential moments
Thread
- Initial thread that has raised this topic
- Follow-up about current state of affairs
- Access specifiers and visibility - combined data to make a decision upon
Proposal
auto ref
Description
Essential moments
Thread
Built-in associative array issues
Description
Present AA implementation has lot of problems and most likely needs to be reworked. AA_Implementation_Issues
volatile
Threads
- October 2013 Discussion
- September 2013 Discussion
- July 2012 Discussion
- July 2004 Discussion
- June 2004 Discussion
- May 2004 Discussion
- March 2002 Discussion
Essential Moments
Proposals
final
-by-default
Threads
Essential Moments
- Manu provides justification for
final
-by-default - Walter concedes
- Walter posts decision citing JSON regression and almost losing a client.
- Client affected by JSON regression steps forward encouraging gradual, managed change
- Andrei puts his foot down stating there will be no
final
-by-default in the D programming language.
rvalue references
Threads
Inherited constructors
Description
When inheriting a class, the new class does not inherit its constructors. Any base class constructors need to be manually forwarded to. A library solution to automatically mix-in forwarding constructors is possible, but a language solution is possible too.
Note that C++11 supports this feature.
Threads
- todo