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

src: use std::array for passing argv in node::url #47035

Merged
merged 1 commit into from
Mar 13, 2023

Conversation

addaleax
Copy link
Member

Implements a review suggestion from 72e971e.

Refs: #47001 (comment)

@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/url

@addaleax addaleax added the request-ci Add this label to start a Jenkins CI on a PR. label Mar 10, 2023
@nodejs-github-bot nodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. needs-ci PRs that need a full CI run. whatwg-url Issues and PRs related to the WHATWG URL implementation. labels Mar 10, 2023
@github-actions github-actions bot added request-ci-failed An error occurred while starting CI via request-ci label, and manual interventon is needed. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Mar 10, 2023
@github-actions
Copy link
Contributor

Failed to start CI
- Validating Jenkins credentials
✔  Jenkins credentials valid
- Starting PR CI job
✘  Failed to start PR CI: 403 Forbidden
https://github.com/nodejs/node/actions/runs/4385645549

@anonrig
Copy link
Member

anonrig commented Mar 10, 2023

Can you run and share the benchmark?

@addaleax
Copy link
Member Author

addaleax commented Mar 10, 2023

@anonrig Sure (why does this change differ from #47001 in that regard tho?):

$ node benchmark/compare.js --old ./node-before --new ./node --filter url-parse url | Rscript benchmark/compare.R
[00:25:29|% 100| 2/2 files | 60/60 runs | 2/2 configs]: Done
                                                                                          confidence improvement accuracy (*)   (**)  (***)
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='auth' withBase='false'                      -1.62 %       ±2.61% ±3.48% ±4.53%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='auth' withBase='true'                       -1.92 %       ±3.42% ±4.55% ±5.92%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='dot' withBase='false'                       -1.48 %       ±2.39% ±3.18% ±4.14%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='dot' withBase='true'                        -0.59 %       ±2.90% ±3.86% ±5.04%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='file' withBase='false'                       0.21 %       ±1.82% ±2.42% ±3.15%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='file' withBase='true'                       -0.25 %       ±2.10% ±2.80% ±3.64%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='idn' withBase='false'                        1.24 %       ±1.33% ±1.78% ±2.31%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='idn' withBase='true'                         0.28 %       ±1.61% ±2.15% ±2.80%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='javascript' withBase='false'                -1.71 %       ±1.97% ±2.62% ±3.41%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='javascript' withBase='true'                 -0.80 %       ±2.19% ±2.91% ±3.79%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='long' withBase='false'                      -1.69 %       ±2.83% ±3.77% ±4.91%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='long' withBase='true'                       -0.63 %       ±2.68% ±3.58% ±4.67%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='percent' withBase='false'                   -1.85 %       ±2.05% ±2.73% ±3.56%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='percent' withBase='true'                     0.56 %       ±1.89% ±2.52% ±3.28%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='short' withBase='false'               *      1.93 %       ±1.87% ±2.51% ±3.29%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='short' withBase='true'                      -1.39 %       ±1.81% ±2.40% ±3.13%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='wpt' withBase='false'                        0.73 %       ±0.80% ±1.07% ±1.40%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='wpt' withBase='true'                ***      1.32 %       ±0.72% ±0.96% ±1.25%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='ws' withBase='false'                        -0.94 %       ±3.00% ±4.00% ±5.20%
url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='ws' withBase='true'                          1.35 %       ±3.83% ±5.10% ±6.65%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='auth' withBase='false'                       0.72 %       ±1.87% ±2.49% ±3.24%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='auth' withBase='true'                       -0.52 %       ±1.58% ±2.11% ±2.74%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='dot' withBase='false'                 *      2.27 %       ±1.92% ±2.56% ±3.33%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='dot' withBase='true'                        -1.18 %       ±1.35% ±1.79% ±2.34%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='file' withBase='false'                       0.87 %       ±1.90% ±2.53% ±3.29%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='file' withBase='true'                        1.08 %       ±1.58% ±2.10% ±2.73%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='idn' withBase='false'                       -0.09 %       ±1.25% ±1.67% ±2.17%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='idn' withBase='true'                         0.80 %       ±1.44% ±1.91% ±2.49%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='javascript' withBase='false'                -0.83 %       ±1.52% ±2.03% ±2.64%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='javascript' withBase='true'                  0.71 %       ±1.79% ±2.39% ±3.11%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='long' withBase='false'                       1.08 %       ±1.45% ±1.93% ±2.51%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='long' withBase='true'                        0.36 %       ±1.06% ±1.41% ±1.84%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='percent' withBase='false'                    0.83 %       ±1.71% ±2.28% ±2.96%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='percent' withBase='true'                     0.07 %       ±1.88% ±2.51% ±3.28%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='short' withBase='false'                      0.23 %       ±1.54% ±2.06% ±2.68%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='short' withBase='true'                       0.25 %       ±1.60% ±2.13% ±2.78%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='wpt' withBase='false'                        0.59 %       ±0.66% ±0.88% ±1.15%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='wpt' withBase='true'                        -0.02 %       ±1.19% ±1.58% ±2.06%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='ws' withBase='false'                ***      2.95 %       ±1.60% ±2.13% ±2.78%
url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='ws' withBase='true'                   *     -1.63 %       ±1.59% ±2.12% ±2.76%
url/url-parse.js n=10000000 type='escaped'                                                      ***     -1.19 %       ±0.53% ±0.71% ±0.92%
url/url-parse.js n=10000000 type='normal'                                                       ***     -1.79 %       ±0.86% ±1.15% ±1.50%

Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case, there are 42 comparisons, you can thus
expect the following amount of false-positive results:
  2.10 false positives, when considering a   5% risk acceptance (*, **, ***),
  0.42 false positives, when considering a   1% risk acceptance (**, ***),
  0.04 false positives, when considering a 0.1% risk acceptance (***)

(That's more significant changes than one should see, both positive and negative. You can run a benchmark CI if you want reliable results.)

@addaleax addaleax added request-ci Add this label to start a Jenkins CI on a PR. and removed request-ci-failed An error occurred while starting CI via request-ci label, and manual interventon is needed. labels Mar 10, 2023
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Mar 10, 2023
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@addaleax addaleax added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Mar 12, 2023
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@addaleax addaleax added the commit-queue Add this label to land a pull request using GitHub Actions. label Mar 13, 2023
@nodejs-github-bot nodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label Mar 13, 2023
@nodejs-github-bot nodejs-github-bot merged commit f95d7c0 into nodejs:main Mar 13, 2023
@nodejs-github-bot
Copy link
Collaborator

Landed in f95d7c0

@addaleax addaleax deleted the url-stdarray-argv branch March 13, 2023 20:45
targos pushed a commit that referenced this pull request Mar 14, 2023
Implements a review suggestion from 72e971e.

Refs: #47001 (comment)
PR-URL: #47035
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
@danielleadams
Copy link
Contributor

blocked by #46736

@danielleadams danielleadams added the backport-blocked-v18.x PRs that should land on the v18.x-staging branch but are blocked by another PR's pending backport. label Apr 3, 2023
anonrig pushed a commit to anonrig/node that referenced this pull request Jun 5, 2023
Implements a review suggestion from 72e971e.

Refs: nodejs#47001 (comment)
PR-URL: nodejs#47035
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
@anonrig anonrig added backport-open-v18.x Indicate that the PR has an open backport. and removed backport-blocked-v18.x PRs that should land on the v18.x-staging branch but are blocked by another PR's pending backport. labels Jun 5, 2023
anonrig pushed a commit to anonrig/node that referenced this pull request Jun 23, 2023
Implements a review suggestion from 72e971e.

Refs: nodejs#47001 (comment)
PR-URL: nodejs#47035
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
anonrig pushed a commit to anonrig/node that referenced this pull request Jun 23, 2023
Implements a review suggestion from 72e971e.

Refs: nodejs#47001 (comment)
PR-URL: nodejs#47035
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
anonrig pushed a commit to anonrig/node that referenced this pull request Jun 26, 2023
Implements a review suggestion from 72e971e.

Refs: nodejs#47001 (comment)
PR-URL: nodejs#47035
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
anonrig pushed a commit to anonrig/node that referenced this pull request Jul 6, 2023
Implements a review suggestion from 72e971e.

Refs: nodejs#47001 (comment)
PR-URL: nodejs#47035
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
anonrig pushed a commit to anonrig/node that referenced this pull request Jul 9, 2023
Implements a review suggestion from 72e971e.

Refs: nodejs#47001 (comment)
PR-URL: nodejs#47035
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
anonrig pushed a commit to anonrig/node that referenced this pull request Jul 9, 2023
Implements a review suggestion from 72e971e.

Refs: nodejs#47001 (comment)
PR-URL: nodejs#47035
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
danielleadams pushed a commit that referenced this pull request Jul 12, 2023
Implements a review suggestion from 72e971e.

Refs: #47001 (comment)
PR-URL: #47035
Backport-PR-URL: #48345
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
@danielleadams danielleadams added backported-to-v18.x PRs backported to the v18.x-staging branch. and removed backport-open-v18.x Indicate that the PR has an open backport. labels Jul 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. backported-to-v18.x PRs backported to the v18.x-staging branch. c++ Issues and PRs that require attention from people who are familiar with C++. needs-ci PRs that need a full CI run. whatwg-url Issues and PRs related to the WHATWG URL implementation.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants