Skip to content

Releases: V0ldek/aligners

v0.0.9

25 Jul 19:57
v0.0.9
9842bc1
Compare
Choose a tag to compare

[0.0.9] - 2022-07-25

Features

Rework TwoSimdBlocks into Twice

  • TwoSimdBlocks got removed
  • Twice<A> gives an alignment guarantee of two blocks of A
  • halves on aligned block of Twice<A> splits a block into two smaller alignments

v0.0.8

09 Jul 00:42
078859d
Compare
Choose a tag to compare

[0.0.8] - 2022-07-09

Features

Make Default conform to strict provenance.

Related: #34

Made Alignment types empty.

Related: #31

Bug Fixes

Invalid Hash impl for AlignedBytes.

Related: #33

v0.0.7

03 Jun 12:15
5e3f725
Compare
Choose a tag to compare

[0.0.7] - 2022-06-03

Features

alignment_size function for aligned types.

  • Allows getting the alignment size as a method instead of static.

Related: #29

v0.0.6

28 May 23:26
3d9af84
Compare
Choose a tag to compare

[0.0.6] - 2022-05-28

Bug Fixes

Take FnMut in new_initialize.

  • Fn is unnecessarily prohibitive, FnMut allows more initialisation functions.

v0.0.5

26 May 23:54
e563dd5
Compare
Choose a tag to compare

[0.0.5] - 2022-05-27

Features

Add support for AVX512.

  • When the avx512f target feature is enabled the SimdBlock is set to 64 bytes.

Reliability

Enable local simd-size-matrix tests.

  • One can use the test_simd_sizes.py script to run the simd-size test matrix locally.

v0.0.4

25 May 21:30
33783d2
Compare
Choose a tag to compare

[0.0.4] - 2022-05-25

Features

Support sse target feature.

  • When the sse target feature is enabled
    on x86/x86_64 the SimdBlock size is 16 bytes,
    unless a target feature with a larger vector is also enabled.

Related: #18

Reliability

Miri test on windows targets.

Added simd_alignment_test.

  • Test whether the size of SimdBlock agrees with the expected one
    for a given target.

Added simd-size-matrix test.

  • Use simd_alignment_test to check whether SimdBlock sizes
    remain consistent across targets.

v0.0.3

18 May 00:50
5aa17e6
Compare
Choose a tag to compare

[0.0.3] - 2022-05-18

Bug Fixes

Impl of Default returning unaligned ptrs.

  • Implementations of Default for
  • AlignedBytes
  • &AlignedSlice
  • &mut AlignedSlice
  • were incorrect by using NonNull::dangling as the pointer.
  • That pointer need not be aligned to the specified Alignment.
  • This was fixed by using std's dangling implementation tweaked to
  • the required alignment, while still not allocating.

Related: #11

Reliability

Allow miri symbolic-alignment-check.

  • Miri's -Zmiri-symbolic-alignment-check breaks align_offset to always return usize::MAX (that is by design), so we need to fallback to regular cast-then-modulo alignment check for tests when running under Miri.

Related: #12

v0.0.2

17 May 17:19
431e183
Compare
Choose a tag to compare

[0.0.2] - 2022-05-17

Features

Added alignment::TwoTo<N>.

v0.0.1

17 May 11:35
v0.0.1
62bbfa5
Compare
Choose a tag to compare

[0.0.1] - 2022-05-17

Features

Initial API.

  • Alignment types driven by the alignment module.
  • AlignedBytes -- aligned container
  • AlignedSlice -- type guarantee on alignment of &[u8]
  • AlignedBlockIterator -- iterate aligned blocks of a slice.
  • Quality of life implementations of Deref and std::cmp traits.

Reliability

Automatically generate changelog (#1).

Related: #1

Use cargo-hack for feature powerset.