e10a34635628fab3bd383e2d17c89dcd6be75b15
memcmp for speed
I saw that in other parts of the `string` module iterations over `usize` were used to increase iteration speed. In this patch I apply the same logic to `memcmp`. With this change I measured a 7x speedup for `memcmp` on a ~1MB buffer (comparing two buffers with the same content) on my machine (i7-7500U), but I did not do any real world benchmarking for the change. The increase in speed comes with the tradeoff of both increased complexity and larger generated assembly code for the function. I tested the correctness of the implementation by generating two randomly filled buffers and comparing the `memcmp` result of the old implementation against this new one. I ran the tests and currently currently three of them fail: - netdb (fails to run) - stdio/rename (fails to verify) - unistd/pipe (fails to verify) They do so though regardless of this change, so I don't think they are related.
relibc 
relibc is a portable POSIX C standard library written in Rust. It is under heavy development, and currently supports Redox and Linux.
The motivation for this project is twofold: Reduce issues the redox crew was having with newlib, and create a safer alternative to a C standard library written in C. It is mainly designed to be used under redox, as an alternative to newlib, but it also supports linux syscalls via the sc crate.
Contributing
Supported OSes
- Redox OS
- Linux
Supported architectures
- x86_64
- Aarch64
Description
RedBear Operating System, based on RedoxOS. Licenced under MIT license.
https://redbearos.org
Languages
Rust
98.8%
Assembly
0.6%
Linker Script
0.5%
Makefile
0.1%