Mir release v0.4.12 comes with simple but powerful API additions.

mir.array.primitives [1]
Added empty, front, back pop*[N/Exactly], length primitives.

Difference with Phobos:

1. Do not break LDC fastmath optimisations. (because they marked @fastmath) This is important for sci and numeric code.

2. Strings are just common arrays without decoding. std.uni.byCodePoint should be used explicitly to operate strings as ranges of chars.

3. Has ndslice-like API, e.g. `auto l = arr.length!0;` and `auto x = arr.front!0`. This is useful for generic multidimensional code that should work with arrays as with 1-dimensional ndslices.

mir.bitmanip [2]

Contains modified bitfields, taggedClassRef, taggedPointer from std.bitmanip. Authors are Walter Bright, Andrei Alexandrescu, Amaury SECHET. Ping me please if I missed someone.

Difference with Phobos:

1. Generated mixins are templates. This awesome for writing source libraries and betterC code. For examples size of Mir CPUID compiled in betterC mode was reduced few times after migration to mir.

[1] http://docs.algorithm.dlang.io/latest/mir_array_primitives.html
[2] http://docs.algorithm.dlang.io/latest/mir_bitmanip.html

Best reagards,

Reply via email to