Comments (4)
Thanks for the feedback.
The entire point of the crate is to make the determination of software vs. hardware and abstract that via the top-level func. I'll admit there is some internal mess around unsafe, which I'll address.
I'm not sure I follow why a top-level type is necessary in this case. Could you elaborate as to why your proposed SSE42
type is necessary?
from crc32c.
My suggestion is one possible solution. What's necessary is to ensure that you do not define a safe function that can be called that doesn't satisfy the assumptions that its use of unsafe
requires.
from crc32c.
Another possible solution is to make every function that transitively uses intrinsics in std::arch
unsafe, with the exception of your public functions, which are themselves responsible for satisfying the assumptions that std::arch
requires.
from crc32c.
Gotcha. That was my initial thought on fixing the unsafe behavior.
from crc32c.
Related Issues (20)
- Set a description / topics for the repository
- Set up continuous integration
- Build crc32c for ARM HOT 2
- Doesn't build on x86
- UB in build script HOT 2
- Software crc32c produces wrong results on big endian CPUs HOT 7
- UB when `util::split` returns zero-length slices HOT 1
- Maintain a CHANGELOG file
- Hasher Trait HOT 2
- 0.6.4 release? HOT 1
- Why ARM hardware acceleration is guarded by nightly HOT 4
- Crc32cHasher initial value should apply effect of refin
- Nightly build fails due to removal of the unstable `stdsimd` feature
- Fail to build on macOS M2 HOT 3
- Crate does not build on latest nightly due to stabilization of stdarch_arm_crc32
- Fail to build on macOS M1 HOT 4
- stdarch_arm_crc32 block nightly build, please release a new version HOT 2
- Rust 1.76: unsupported output in build script of `crc32c v0.6.6`: `cargo::rerun-if-changed=build.rs` HOT 9
- BROKEN BUILD HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from crc32c.