On Tuesday, 25 February 2014 at 05:01:30 UTC, Manu wrote:
What are yours?
The stuff listed on the wiki agenda
(http://wiki.dlang.org/Agenda) is nice and will definitely make
the language cleaner. However for me there are two elephants in
the room.
A major argument in favor of Go tends to be focused around its
straightforward parallelism support. D's support is good but not
yet as straightforward. I like ranges. But I would also like to
be able to use yield (a la coroutines) + async/await (from .NET).
Making this work seamlessly with std.parallelism and integrating
it directly into the language (similar to how threads currently
are) would really make D a slam dunk. Along with this,
std.parallelism's performance could be improved to the point
where there is no more concern about it being as fast as
green-thread implementations in other languages.
Here are two recent threads that discuss this topic.
http://forum.dlang.org/thread/[email protected]
http://forum.dlang.org/thread/[email protected]
The second elephant is memory usage. Based on recent discussions
on the possible use of ARC/scopebuffer/std.allocator/etc. it
seems that soon Phobos will get some major assistance in this
regard. Awesome. Really looking forward too to the GC
improvements and integration of the up-and-coming allocator
module.
Here are two threads talking about memory usage.
scopebuffer -
http://forum.dlang.org/thread/[email protected]
tracing api -
http://forum.dlang.org/thread/[email protected]
The following links are encouraging. They show Andrei's
statements on the need to focus on memory allocation right now.
http://forum.dlang.org/thread/[email protected]?page=11#post-lclta7:241rdg:241:40digitalmars.com
http://forum.dlang.org/thread/[email protected]?page=14#post-lcoskl:241g8t:241:40digitalmars.com
I think of the following foci for the first half of 2014:
1. Add @nullable and provide a -nullable compiler flag to
verify it. The attribute is inferred locally and for white-box
functions (lambdas, templates), and required as annotation
otherwise. References not annotated with @nullable are
statically enforced to never be null.
2. Work on Phobos to see what can be done about avoiding
unnecessary allocation. Most likely we'll need to also add a
@nogc flag.
3. Work on adding tracing capabilities to allocators and see
how to integrate them with the language and Phobos.
4. Work on the core language and druntime to see how to
seamlessly accommodate alternate GC mechanisms such as
reference counting.
Andrei
These are the two big things that I am hoping will get some
attention.
Thanks
Joseph