Required DMD changes for Mir and few thoughts about D future

Ilya Yaroshenko via Digitalmars-d digitalmars-d at puremagic.com
Mon Sep 26 11:43:38 PDT 2016


> I think we need to make it a point to support Mir in dmd. -- 
> Andrei

Required features for Level 3:
1. https://issues.dlang.org/show_bug.cgi?id=16489
2. https://issues.dlang.org/show_bug.cgi?id=16488
3. AVX & AVX2 floating point vector arithmetic
4. Generic unaligned load/store like (like LDC loadUnaligned and 
storeUnaligned)
5. Generic routine to pack and unpack real and imaginary parts. 
For usage example, see 
https://github.com/libmir/mir/blob/master/source/mir/glas/internal/copy.d#L699

Level 1 and Level 2 requires additional features like automatic 
loop unrolling with associative math.

In the same time, I don't think that DMD support is important for 
D and Mir. The following features are _much_ more important:

1. Lightweight `nothrow @nogc` threads, implemented using 
`struct`s
2. Lightweight `nothrow @nogc` mutexes and barriers, implemented 
using `struct`s
3. Low level and detailed CPUID with proper cache sizes (already 
implemented for x86 here: https://github.com/libmir/cpuid)
4. Ability to use some phobos modules like std.traits, std.meta, 
std.complex.Complex (without ^^), std.experimental.ndslice, 
std.allocator without current (old) DRuntime, "module info" and 
other harmful for "better C" feature.
5. LDC compiler support for ARM, MIPS, MIPS64, Alpha
6. LDC SDK, which can work out of the box (including windows). It 
is required for D to be popular for scientists

This features are good not only for Mir, but for the D future. I 
think that D can not be more popular then Go and Rust. This is 
reality and I don't think that it is bad. Why? Because D can be a 
backend language fo Go and Rust. It can replace C/C++/Fortran in 
following fields:

1. Low level high performance computation libraries like BLAS, 
Eigen, Intel MKL, MAGMA, scaLAPACK, and many others
2. Close to metal drivers
3. OS kernels
4. Aerospace and related software
5. The Khronos Group software (!)

We have not new concurrents in this fields, but C/C++/Fortran. 
Our problem is that we trying to be more hight level language 
than the IT industry needs. Lets forget about Go and Rust 
"concurrents" and remember about the initial D goal, which is 
more actual then ever: replace C/C++ in the IT industry.

Best regards,
Ilya


More information about the Digitalmars-d mailing list