This Week in D December 18, 2016

Welcome to This Week in D! Each week, we'll summarize what's been going on in the D community and write brief advice columns to help you get the most out of the D Programming Language.

The D Programming Language is a general purpose programming language that offers modern convenience, modeling power, and native efficiency with a familiar C-style syntax.

This Week in D has an RSS feed.

This Week in D is edited by Adam D. Ruppe. Contact me with any questions, comments, or contributions.

Statistics

In the community

Major Threads

After a few relatively quiet weeks, there was a flurry of activity on the forums with announcements, DIPs, and library strategies discussed. Here are a few more the bigger ones:

DIP1005: Dependency-Carrying Declarations is now available for community feedback where Andrei Alexandrescu tried to convince the community to back his proposal for local imports that still work in function argument and template constraint lists. Much of the crowd was skeptical of the value, but Andrei continued to refine his case. It is possible something will come from this.

DIP 1007 - keywords as identifiers with an escape symbol - feedback was also discussed, and likely shot down because you can use _ as an escape symbol now, changing the keyword. But, it is still possible a compelling case will arise.

A betterC modular standard library? comes from the Mir library team, wishing druntime and Phobos were more "pay as you go" than they are now. The term "betterC" is controversial since it comes from a barely implemented and nearly undocumented dmd switch and thus doesn't have an agreed upon definition. So much of the thread is trying to figure that out, and the rest is about how that'd apply to the library situation. I expect some kind of compromise will be reached eventually.

CTFE Status is Stefan Koch's ongoing blog thread about his CTFE improvements. It has been around for a while, and he continues to make progress in massive performance boosts in CTFE in his private compiler fork, hoping to get it merged once it is stable.

ModuleInfo, factories, and unittesting takes us back down the betterC road, looking at a specific proposal: just what good is ModuleInfo? I will have to weigh in on that thread, because I fear some of the commentators aren't totally familiar with the issues, but it shows there's a decent amount of interest in overhauling this glue between the compiler and runtime libraries and I think we can work it out as part of the betterC win/win compromise.

Making preconditions better specified and faster comes out of the assert thread last week, wondering if we can improve its use in in contracts. The topic of moving the calls of these contracts to calling code instead of the current position of part of the function being called in generated object code was brought up - this would result in better user errors and compiles. It may also lead to a speed optimization and allowing assert through @nogc's static checks.

Our students could use your reviews! is Andrei exhorting people to review the PRs of the scholarship students, discussed in the blog last week. A good refresher of what the D foundation is doing with its funding now.

[WIP] A Big O notation and algebra for D previews the technical work Andrei has been working on lately, making performance complexity a part of a function's statically analyzed signature.

Community announcements

See more at the announce forum.

Learn more about D

To learn more about D and what's happening in D: