Skip to content

Implemented Codspeed testing and no_std functionality#14

Open
jurskidl wants to merge 20 commits into
marciorvneto:mainfrom
jurskidl:main
Open

Implemented Codspeed testing and no_std functionality#14
jurskidl wants to merge 20 commits into
marciorvneto:mainfrom
jurskidl:main

Conversation

@jurskidl

@jurskidl jurskidl commented Jul 25, 2025

Copy link
Copy Markdown
Contributor

Codspeed allows for regression testing in a sanitized and standardized environment. It allows speed improvements to be directly compared. You may need to create your own account (it is free and easy with a github account) to perform it. If you want to see the how it would look, feel free to look at mine for this library. You can compare runs via the 'runs' tab and selecting the ones you want to compare. You can also set minimum thresholds that it will identify as a change (mine is set to 10% which appears to sometimes allow noise in this library since it the times are so small).

The no_std functionality right now is relatively simply implemented by pulling the intrinsics library directly. This is what the std library uses, but further upstream. This may be able to be improved, but this is an initial implementation with an immeasurable impact on performance.

@jurskidl

Copy link
Copy Markdown
Contributor Author

I believe the CodSpeed failed to run since you don't have a codspeed token associated with your library. As stated before, please look at my implementation as an example.

@jurskidl

jurskidl commented Aug 7, 2025

Copy link
Copy Markdown
Contributor Author

I have added a feature to allow the flag --nightly to be used. This enables Simd at the users discretion. If no feature is passed, it defaults to not using this. This does technically move the library to the nightly branch until Simd is fully stable. If this is not desired, We can create a nightly fork that does this until the feature is stable. For this, We can utilize the functionality until [Reworked Regional coefficients to match the nightly fork for easier merging] (9b02639). This will allow the fork to be easily implemented.

Conditionally add portable_simd feature if --feature nightly is passed. This should allow the crate to be compiled via the stable and nightly toolchains
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant