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

Please support arm64 #51

Open
lizthegrey opened this issue Dec 1, 2021 · 7 comments
Open

Please support arm64 #51

lizthegrey opened this issue Dec 1, 2021 · 7 comments

Comments

@lizthegrey
Copy link

Hi! We'd love to use this library, but we're currently all in on arm64. Is there a chance you'll do an arm64 version of this port?

@harshavardhana
Copy link
Member

Hi! We'd love to use this library, but we're currently all in on arm64. Is there a chance you'll do an arm64 version of this port?

That is a significant effort @lizthegrey - we are open to pull requests.

@lizthegrey
Copy link
Author

Ah, I see, it's not a mechanical translation, it's a hand port? Will take that under consideration. Thanks!

@fwessels
Copy link
Contributor

fwessels commented Dec 1, 2021

There is arm64 support in the original simdjson project -- so it is definitely possible to port this over, but it will be a significant effort.

@klauspost
Copy link
Collaborator

A more manageable (and possibly also more useful) would be Go fallback. That would probably also make porting easier.

Stage 2 only uses SIMD for string parsing, so that should be rather trivial, but obviously stage 1 is a bit more involved. Though I don't understand enough of it to do it.

I would also like to get rid of the remaining allocs, but I currently don't have the bandwidth for it.

That said, with the latest clean up it looks like a decent v1.

@martin-sucha
Copy link
Contributor

Go fallback would be useful indeed.

I needed a workaround for arm64 machines for simple things like running small tests and debugging, so I hacked together https://github.com/kiwicom/fakesimdjson . By the way, the tape is exported from the simdjson package, is the tape format considered part of the stable API?

Would simdjson-go project consider something like fakesimdjson useful enough to be included or are you interested only in more direct implementations of stages 1 and 2? Obviously something like my hack can't be used to guide ports to new architectures.

@klauspost
Copy link
Collaborator

@martin-sucha Not guaranteed, which is why we are still at v0.x. We have no plans to change it, but only API and the serialized format can be considered stable.

You are welcome to send your repo code as a PR, if it makes sense to add.

@stokito
Copy link
Contributor

stokito commented Nov 22, 2022

the original simdjson has some support of the arm64 https://github.com/simdjson/simdjson/tree/master/src/arm64

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

No branches or pull requests

6 participants