Conversation
Qqwy
commented
Mar 27, 2023
These changes are great! I have pointed my local project to the
Would it be possible to extend the Currently it supports only Let me know if this is the right place for such a request, or if you want me to create a separate issue for this. |
tarcieri
commented
Mar 27, 2023
#133 would be very helpful for several of us |
novacrazy
commented
Mar 28, 2023
Yes, quite easily. I'm considering making that the default, as let value = arr![1u8,2,3,4];// GenericArray<u8, U4>let value = arr![1,2,3,4];// GenericArray<i32, U4>, because i32 is the default integer typelet value = arr![1f32;U16];// GenericArray<f32, U16>let value:GenericArray<usize,_> = arr![4,5,6,7];// GenericArray<usize, U4> |
novacrazy
commented
Mar 28, 2023
I have changed the If there is opposition to this change, I can always revert it, but I feel like it's an improvement. |
I've been experimenting with implementing It does turn out I can cheat and use a |
novacrazy
commented
Mar 29, 2023
After some testing, it seems safe enough to expose Could possibly provide a solution to #108 by avoiding the stack entirely for very large (but fixed-size) arrays. Diminishing returns in usefulness of |
novacrazy
commented
Aug 26, 2023
After idly looking through the docs, I've decided to remove |
novacrazy
commented
Sep 1, 2023
Would anyone else subscribed to this PR care to look over the code? More eyes the better. |
I thought I'd fixed this years ago, but as it was there were some obvious autovectorization misses with For example, before my latest commits, this code: pubfnadd64(x:GenericArray<f32,U64>,y:GenericArray<f32,U64>) -> GenericArray<f32,U64>{
x.zip(y, |a, b| a + b)}would result in 64 serial Now it correctly autovectorizes to 8 EDIT: This may have been a regression in Rust/LLVM itself, as Rust 1.65.0 generates basically the same assembly for both |
fizyk20
left a comment
There was a problem hiding this comment.
Looks good to me in general, just a few small comments. Thanks again for all your hard work on this crate!
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
With #137, this opens up the opportunity for a full 1.0 release with much-improved ergonomics.
CHANGELOG.md
What other changes should we make while we can?
Closes#145
Closes#140
Closes#137
Closes#135
Closes#132
Closes#119
Closes#117
Closes#109
Closes#107
Closes#101
Additional tweaks:
N <= 1024rather thanN < 1024fn main(), etc.)min_const_genericstransmutefunction to verify type sizes.ArrayTypeimplementations Sealed + unreachable Clone methodsFromIteratorand deserialization routinestry_from_slice)GenericArray::len()associated method without&selfRemaining todos:
Update DESIGN.mdMoved into main docs.