mir.array.primitives and mir.bitmanip were added

9il via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sun Apr 23 22:56:40 PDT 2017


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,
Ilya



More information about the Digitalmars-d-announce mailing list