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

feature: remove [scheme] from requests #1086

Merged
merged 1 commit into from
Sep 4, 2024

Conversation

rgrinberg
Copy link
Member

This makes it so that [Request.make ~uri |> Request.uri] will no longer return the same URI as [uri]. Also, this property was never preserved with respect to other URI fields.

cc @MisterDA

Signed-off-by: Rudi Grinberg [email protected]

Comment on lines +124 to +125
let empty = Uri.of_string "" in
let empty_base = Uri.of_string "///" in
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A Uri.t is a fairly heavy record - I just noticed both of these can be lifted into constants at the toplevel and not reallocated every request

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed. I wonder if we should just get rid of this function altogether and just introduce separate functions to extract the Uri components that can be safely extracted out of the request.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably just better to 'deallocationise' this library separately. I actually wanted to use it to test out the JS with-extensions tree to see how well local annotations would do in some places here...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, though I think this function cannot be be used in a low allocation context anyway. Many of the components this function is returning can be extracted without any allocation at all. While the Uri.t this function returns will always be allocated - even if it is only done once.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it would need changing the Uri library as well... the accessors there could be more lazy. That library's design hasn't changed for about a decade -- about high time for a refresh!

This makes it so that [Request.make ~uri |> Request.uri] will no longer
return the same URI as [uri]. Also, this property was never preserved
with respect to other URI fields.

Signed-off-by: Rudi Grinberg <[email protected]>

<!-- ps-id: eab21598-332e-4541-9530-fe5ca05e2d06 -->
@rgrinberg rgrinberg force-pushed the ps/rr/feature__remove__scheme__from_requests branch from f2932ca to 47a77bc Compare September 4, 2024 11:32
@rgrinberg rgrinberg merged commit 1568940 into master Sep 4, 2024
9 of 26 checks passed
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.

3 participants