Skip to content

Prototype stateful Unicode decoding #8981

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

Merged
merged 1 commit into from
Apr 25, 2017
Merged

Conversation

dabrahams
Copy link
Contributor

Having looked at the old transcoding code, it's very clear that no stateless
scheme has a hope of competing with it on performance. We just need reverse
transcoding and a way to hook up indices (I believe we can use IndexingIterator
for this, that's coming).

This code demonstrates UTF-8 (the hard one) and is competitive on performance
with the existing code. I believe it could be even better-performing if the
cases that do parsing were connected directly with the cases that do decoding.

Finally, tatoo this on your forehead: Dmitri Shall Not Be Underestimated

Having looked at the old transcoding code, it's very clear that no stateless
scheme has a hope of competing with it on performance.  We just need reverse
transcoding and a way to hook up indices (I believe we can use IndexingIterator
for this, that's coming).

This code demonstrates UTF-8 (the hard one) and is competitive on performance
with the existing code.  I believe it could be even better-performing if the
cases that do parsing were connected directly with the cases that do decoding.

Finally, tatoo this on your forehead: Dmitri Shall Not Be Underestimated
@dabrahams dabrahams force-pushed the stateful-unicode-decoding branch from efb6524 to c2a92a6 Compare April 25, 2017 00:58
@dabrahams
Copy link
Contributor Author

@swift-ci Please smoke test and merge

@swift-ci swift-ci merged commit 355b7c1 into master Apr 25, 2017
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.

2 participants