Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Workflows to Ensure Portability? #20

Closed
Alexhuszagh opened this issue Sep 5, 2021 · 1 comment · Fixed by #21
Closed

Add Workflows to Ensure Portability? #20

Alexhuszagh opened this issue Sep 5, 2021 · 1 comment · Fixed by #21

Comments

@Alexhuszagh
Copy link
Contributor

Alexhuszagh commented Sep 5, 2021

Currently, there seems to be no cross-compilation to ensure support for ARM, as well as OSes like Windows and macOS. It may be wise to add tests for ARM 32-bit and 64-bit, as well as a big-endian target (PowerPC64 could be a good example). Windows and macOS support are native to workflows, so it's a simple matter of adding configurations. There's a few available options to ensure quick cross-compilation for different:

  • Dockcross Supports many different ARM targets, but lacks support for PowerPC64 and requires Docker.
  • zig cc A drop-in replacement for GCC/Clang, but supports extensive cross-compilation, including all our desired targets.

Use Dockcross would be a drop-in replacement, while zig cc would only require a toolchain file for the configurations.

These would make sure the intrinsics, such as those in #11, are supported properly. If desired, I'd gladly submit a PR with the additional workflows. Would any other targets, such as MIPS64, or RISC-V be desired?

@jk-jeon
Copy link
Owner

jk-jeon commented Sep 7, 2021

@Alexhuszagh That sounds great!

To be honest, I do not eagerly aim to super-optimize this library for every relevant platform because that's simply out of my ability. After all, this repo is just a reference implementation of the algorithm, and I consider myself a researcher rather than a developer anyway; the main reason why performance of this library is important to me is because it is a proof that a very performant implementation of the algorithm is possible, but what I ultimately want is that my algorithm is adapted for other libraries and optimized by people with better skill than me. (Thank you so much for adapting Dragonbox to your wonderful library!) But anyway there is no reason not to have better support for other platforms if that does not add much complexity to the code.

Looking forward to your PR, thanks a lot!

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 a pull request may close this issue.

2 participants