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

Reply via email to