-
Notifications
You must be signed in to change notification settings - Fork 30.2k
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
deps: cherry-pick a51f429 from V8 upstream #7833
Conversation
cc @nodejs/v8 |
Can you cherry-pick the full commit (including the test change) ? I think the version bump can be squashed with it too. |
Original commit message: [regexp] Fix case-insensitive matching for one-byte subjects. The bug occurs because we do not canonicalize character class ranges before adding case equivalents. While adding case equivalents, we abort early for one-byte subject strings, assuming that the ranges are sorted. Which they are not. R=marja@chromium.org BUG=v8:5199 Review-Url: https://codereview.chromium.org/2159683002 Cr-Commit-Position: refs/heads/master@{nodejs#37833} Fixes: nodejs#7708
Added test and squashed. Sorry about forgetting the test. |
LGTM |
LGTM. I am going to somewhat disagree with the opinion on squashing version bumps into the commit now that we are doing the bumps. The negatives I see are:
|
@ofrobots What would you do differently?
That's no different when the version bump is a separate commit, isn't it? A revert is also a patch level bump. Single commits are somewhat superior in that respect because most reverts are going to cause a merge conflict in v8-version.h that will forcefully remind the reverter to make the version bump. (Solving it with tooling is still more superior, of course.)
Can you explain why that bothers you? There is going to be a conflict that needs to be resolved anyway. Does it really matter in what commit that is? |
+1 for what @bnoordhuis said. Putting the version bump in the same commit will more often result in a conflict that will remind the person landing it to update the patch level. |
The point about the merge conflict is a good one. The case where it won't occur is when the commit at the tip-of-tree is reverted. The version number going backwards in that case would be mildly unfortunate, but not the end of the world. The reason I don't like editing the primary commit is because it makes cherry-picking to older Node branches harder. I think you can make the same merge conflict argument, which I agree will happen in most cases, but not all. I personally would like some tooling to do the version bumps rather than humans. Until such tooling exists, I guess it is fine to pick a solution (squashing is fine) and see how it goes. |
@ofrobots I'd be interested in exploring adding some tooling to the repo to automate the process of backporting these commits. Is there any prior art in the chromium project that is grokable? |
@thealphanerd +1. I have a TODO to write up follow-up proposal from nodejs/Release#111. The gist of the process I am thinking of is: 1) maintain patches in a V8 fork. 2) Have tooling to automate the updating of V8 into nodejs/node. The version bump could happen as part of the roll process. |
To chime in: V8 has also moved away of updating the version in each merge. We have a bot/service running which takes care of this automatically for half a year now and it makes a lot of things easier (less merge race-conditions, reverts, enables cherry-picks, ...). |
CI for ppcbe-ubuntu1404 failed, but we don't have the console output anymore. Could somebody run the CI again? Thanks! |
Thanks, FreeBSD failed, not sure what the problem is:
https://ci.nodejs.org/job/node-test-commit-freebsd/nodes=freebsd10-64/3464/console |
/cc @nodejs/build I’m pretty sure I’ve seen that before, so it’s probably unrelated. FreeBSD CI again: https://ci.nodejs.org/job/node-test-commit-freebsd/3466/nodes=freebsd10-64/ (Edit: green) |
Yes, we've definitely had FreeBSD builds fail like that. Subsequent re-run by @addaleax is green. I think this is good to land, yeah? |
Original commit message: [regexp] Fix case-insensitive matching for one-byte subjects. The bug occurs because we do not canonicalize character class ranges before adding case equivalents. While adding case equivalents, we abort early for one-byte subject strings, assuming that the ranges are sorted. Which they are not. R=marja@chromium.org BUG=v8:5199 Review-Url: https://codereview.chromium.org/2159683002 Cr-Commit-Position: refs/heads/master@{#37833} Fixes: #7708 PR-URL: #7833 Reviewed-By: targos - Michaël Zasso <mic.besace@gmail.com> Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: ofrobots - Ali Ijaz Sheikh <ofrobots@google.com>
Landed as 60d46b4. |
Original commit message: [regexp] Fix case-insensitive matching for one-byte subjects. The bug occurs because we do not canonicalize character class ranges before adding case equivalents. While adding case equivalents, we abort early for one-byte subject strings, assuming that the ranges are sorted. Which they are not. R=marja@chromium.org BUG=v8:5199 Review-Url: https://codereview.chromium.org/2159683002 Cr-Commit-Position: refs/heads/master@{#37833} Fixes: #7708 PR-URL: #7834 Ref: #7833 Reviewed-By: targos - Michaël Zasso <mic.besace@gmail.com> Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: jasnell - James M Snell <jasnell@gmail.com> Reviewed-By: ofrobots - Ali Ijaz Sheikh <ofrobots@google.com>
Original commit message: [regexp] Fix case-insensitive matching for one-byte subjects. The bug occurs because we do not canonicalize character class ranges before adding case equivalents. While adding case equivalents, we abort early for one-byte subject strings, assuming that the ranges are sorted. Which they are not. R=marja@chromium.org BUG=v8:5199 Review-Url: https://codereview.chromium.org/2159683002 Cr-Commit-Position: refs/heads/master@{#37833} Fixes: nodejs/node#7708 PR-URL: nodejs/node#7834 Ref: nodejs/node#7833 Reviewed-By: targos - Michaël Zasso <mic.besace@gmail.com> Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: jasnell - James M Snell <jasnell@gmail.com> Reviewed-By: ofrobots - Ali Ijaz Sheikh <ofrobots@google.com>
Original commit message: [regexp] Fix case-insensitive matching for one-byte subjects. The bug occurs because we do not canonicalize character class ranges before adding case equivalents. While adding case equivalents, we abort early for one-byte subject strings, assuming that the ranges are sorted. Which they are not. R=marja@chromium.org BUG=v8:5199 Review-Url: https://codereview.chromium.org/2159683002 Cr-Commit-Position: refs/heads/master@{nodejs#37833} Fixes: nodejs#7708 PR-URL: nodejs#7833 Reviewed-By: targos - Michaël Zasso <mic.besace@gmail.com> Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: ofrobots - Ali Ijaz Sheikh <ofrobots@google.com>
Checklist
make -j4 test
(UNIX)Affected core subsystem(s)
deps V8
Description of change
deps: cherry-pick a51f429 from V8 upstream that fixex case-insensitive regex problem