|
|
DescriptionMake ComputedStyle generation deterministic.
Since Python dicts are unordered, it is possible that, when we generate
ComputedStyle with no changes to CSSProperties, the generated code is
different (e.g. different order of enum declarations). This is bad
when we start showing diffs for generated code.
This patch enforces an ordering on the generate code so that the
generated code should always be the same given the same input. Namely:
- Enum type declarations are ordered in alphabetical order by name.
- Fields are ordered first by size (for packing), and then in
alphabetical order by name when there's a tie.
BUG=628043
Review-Url: https://codereview.chromium.org/2686473004
Cr-Commit-Position: refs/heads/master@{#461956}
Committed: https://chromium.googlesource.com/chromium/src/+/fe7b8a3b74de1097ffc1ff819c6b2109dcb6800b
Patch Set 1 #Patch Set 2 : rebase #Patch Set 3 : Rebase #Patch Set 4 : Rebase #Patch Set 5 : Rebase #Patch Set 6 : Rebase #Messages
Total messages: 58 (50 generated)
The CQ bit was checked by shend@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds...) ios-device-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device-xcode-...) mac_chromium_compile_dbg_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_comp...) mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
shend@chromium.org changed reviewers: + sashab@chromium.org
Hi Sasha, PTAL
The CQ bit was checked by shend@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
On 2017/02/09 at 21:30:57, shend wrote: > Hi Sasha, PTAL Hmm, lots of tests fail -- we may still have hidden dependencies on enum order
Good find. Let's fix these one-by-one. Maybe we can find someone to help you with this in parallel.
On 2017/02/10 at 01:07:12, sashab wrote: > Good find. Let's fix these one-by-one. Maybe we can find someone to help you with this in parallel. Culprit was EListStyleType: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/core/css/resol...
Oh, sweet. That was easy lol. LGTM if there are no more culprits, lets land this ASAP so it blocks future patches
The CQ bit was checked by shend@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by shend@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
The CQ bit was checked by shend@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
The CQ bit was checked by shend@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
Description was changed from ========== Make ComputedStyle generation deterministic. Since Python dicts are unordered, it is possible that, when we generate ComputedStyle with no changes to CSSProperties, the generated code is different (e.g. different order of enum declarations). This is bad when we start showing diffs for generated code. This patch enforces an ordering on the generate code so that the generated code should always be the same given the same input. Namely: - Enum declarations are ordered in alphabetical order by name. - Fields are ordered first by size (for packing), and then in alphabetical order by name when there's a tie. BUG=628043 ========== to ========== Make ComputedStyle generation deterministic. Since Python dicts are unordered, it is possible that, when we generate ComputedStyle with no changes to CSSProperties, the generated code is different (e.g. different order of enum declarations). This is bad when we start showing diffs for generated code. This patch enforces an ordering on the generate code so that the generated code should always be the same given the same input. Namely: - Enum type declarations are ordered in alphabetical order by name. - Fields are ordered first by size (for packing), and then in alphabetical order by name when there's a tie. BUG=628043 ==========
The CQ bit was checked by shend@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-device-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device-xcode-...) mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by shend@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
The CQ bit was checked by shend@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by shend@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by shend@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
On 2017/02/20 at 00:37:08, sashab wrote: > Oh, sweet. That was easy lol. LGTM if there are no more culprits, lets land this ASAP so it blocks future patches Landing this patch without sorting keywords because they're ordered anyway. This patch is purely to make code generation deterministic, not to prevent ordering dependencies.
The CQ bit was checked by shend@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from sashab@chromium.org Link to the patchset: https://codereview.chromium.org/2686473004/#ps100001 (title: "Rebase")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 100001, "attempt_start_ts": 1491360475669080, "parent_rev": "0d3b75cb632ce1f29f9888afe995e35caf1a7fe6", "commit_rev": "fe7b8a3b74de1097ffc1ff819c6b2109dcb6800b"}
Message was sent while issue was closed.
Description was changed from ========== Make ComputedStyle generation deterministic. Since Python dicts are unordered, it is possible that, when we generate ComputedStyle with no changes to CSSProperties, the generated code is different (e.g. different order of enum declarations). This is bad when we start showing diffs for generated code. This patch enforces an ordering on the generate code so that the generated code should always be the same given the same input. Namely: - Enum type declarations are ordered in alphabetical order by name. - Fields are ordered first by size (for packing), and then in alphabetical order by name when there's a tie. BUG=628043 ========== to ========== Make ComputedStyle generation deterministic. Since Python dicts are unordered, it is possible that, when we generate ComputedStyle with no changes to CSSProperties, the generated code is different (e.g. different order of enum declarations). This is bad when we start showing diffs for generated code. This patch enforces an ordering on the generate code so that the generated code should always be the same given the same input. Namely: - Enum type declarations are ordered in alphabetical order by name. - Fields are ordered first by size (for packing), and then in alphabetical order by name when there's a tie. BUG=628043 Review-Url: https://codereview.chromium.org/2686473004 Cr-Commit-Position: refs/heads/master@{#461956} Committed: https://chromium.googlesource.com/chromium/src/+/fe7b8a3b74de1097ffc1ff819c6b... ==========
Message was sent while issue was closed.
Committed patchset #6 (id:100001) as https://chromium.googlesource.com/chromium/src/+/fe7b8a3b74de1097ffc1ff819c6b... |