D is a modern C-style programming language, declarative, object-oriented, and with inferred static typing, somewhat inspired by Python, Java, Eiffel, C# and Ruby. It provides many conveniences, like automatic memory management, concurrency-awareness, contractual design, or first class arrays and dictionaries, built-in macro and meta programming features. It still permits inline assembler, and produces fast and native binaries.
Homepage
Download
Recent Releases
2.107.002 Feb 2024 22:54
major feature:
D 2.107.0 introduces a new @standalone attribute which allows two modules, which both contain module constructors, to import each other (previously druntime would error not knowing which to run first). Other notable changes include a new "core.stdc.stdatomic" module, and a change in behaviour to ignore unknown pragmas. See the full changelog for more information.
2.105.015 Aug 2023 09:33
major feature:
Assignment-style syntax is now allowed for `alias this` after being previously deprecated. A "catch" clauses must take only "const" or mutable exceptions. Functions can no longer have "enum" storage class (use "auto" instead). Overloading "extern(C)" functions is now an error. The deprecation phase for accessing to private method when overloaded with public method has ended. Finally, integration with the Valgrind memcheck tool has been added to the garbage collector.
2.067.027 Mar 2015 01:05
major feature:
Destructors for structs allocated on the heap are now invoked.
ASM statements can now be used in pure, nothrow, @nogc, or @trusted code.
Package protection attribute can be optionally bound to specified package.
The garbage collector got faster.
volatileLoad and volatileStore intrinsics were added.
Experimental: The garbage collector can now be configured.
byKeyValue was added.
initOnce was added to perform thread-safe lazy initialization.