Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(166)

Issue 2963463002: [Zucchini] Generic suffix array algorithms. (Closed)

Created:
3 years, 5 months ago by etiennep1
Modified:
3 years, 4 months ago
CC:
chromium-reviews, grt+watch_chromium.org, pennymac+watch_chromium.org, wfh+watch_chromium.org, chrisha
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

[Zucchini] Generic suffix array algorithms. This introduces interface, implementation and unittests for: - suffix array construction using naive sort - suffix array construction using SA-IS - binary search in a suffix array BUG=729154 Review-Url: https://codereview.chromium.org/2963463002 Cr-Commit-Position: refs/heads/master@{#485769} Committed: https://chromium.googlesource.com/chromium/src/+/a1b45802a88101e23d1c0e485165255807702ca7

Patch Set 1 #

Patch Set 2 : Make gcc happy #

Total comments: 13

Patch Set 3 : CR-huangs #

Patch Set 4 : Fix SearchExact performance #

Total comments: 7

Patch Set 5 : Make ustring conversions pretty #

Total comments: 29

Patch Set 6 : CR-huangs-34 #

Patch Set 7 : NIT corrections in comments #

Total comments: 60

Patch Set 8 : CR-huangs-79 #

Patch Set 9 : Fix comment issue #

Total comments: 2

Patch Set 10 : Fix comment #

Patch Set 11 : Rebase #

Patch Set 12 : Fix trybots #

Patch Set 13 : Rebase #

Total comments: 6
Unified diffs Side-by-side diffs Delta from patch set Stats (+797 lines, -0 lines) Patch
M chrome/installer/zucchini/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +2 lines, -0 lines 0 comments Download
A chrome/installer/zucchini/suffix_array.h View 1 2 3 4 5 6 7 8 9 1 chunk +472 lines, -0 lines 6 comments Download
A chrome/installer/zucchini/suffix_array_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +323 lines, -0 lines 0 comments Download

Messages

Total messages: 67 (41 generated)
etiennep1
self review https://codereview.chromium.org/2963463002/diff/20001/chrome/installer/zucchini/suffix_array_unittest.cc File chrome/installer/zucchini/suffix_array_unittest.cc (right): https://codereview.chromium.org/2963463002/diff/20001/chrome/installer/zucchini/suffix_array_unittest.cc#newcode7 chrome/installer/zucchini/suffix_array_unittest.cc:7: #include <string> #include <initializer_list>
3 years, 5 months ago (2017-06-27 18:07:09 UTC) #9
huangs
Superficial comments, and comments to add more tests. To be thorough, might be worthwhile to ...
3 years, 5 months ago (2017-06-27 20:31:21 UTC) #12
etiennep1
Regarding test coverage using IAmHere, I'm not sure if you mean I should do this ...
3 years, 5 months ago (2017-06-28 19:26:09 UTC) #14
etiennep1
On 2017/06/28 19:26:09, etiennep1 wrote: > Regarding test coverage using IAmHere, I'm not sure if ...
3 years, 5 months ago (2017-06-28 19:59:42 UTC) #15
huangs
Re. IAmHere: Just local hack to ensure test coverage, to guide finding examples to cover ...
3 years, 5 months ago (2017-06-28 20:02:44 UTC) #16
huangs
https://codereview.chromium.org/2963463002/diff/20001/chrome/installer/zucchini/suffix_array.h File chrome/installer/zucchini/suffix_array.h (right): https://codereview.chromium.org/2963463002/diff/20001/chrome/installer/zucchini/suffix_array.h#newcode419 chrome/installer/zucchini/suffix_array.h:419: std::vector<typename StrRng::size_type> MakeSuffixArray(Algorithm algorithm, I think the first form ...
3 years, 5 months ago (2017-06-28 20:02:56 UTC) #17
etiennep1
On 2017/06/28 20:02:56, huangs wrote: > https://codereview.chromium.org/2963463002/diff/20001/chrome/installer/zucchini/suffix_array.h > File chrome/installer/zucchini/suffix_array.h (right): > > https://codereview.chromium.org/2963463002/diff/20001/chrome/installer/zucchini/suffix_array.h#newcode419 > ...
3 years, 5 months ago (2017-06-28 21:51:21 UTC) #18
huangs
Comments on tests. I think you accidentally changed Courgette file. https://codereview.chromium.org/2963463002/diff/60001/chrome/installer/zucchini/suffix_array_unittest.cc File chrome/installer/zucchini/suffix_array_unittest.cc (right): https://codereview.chromium.org/2963463002/diff/60001/chrome/installer/zucchini/suffix_array_unittest.cc#newcode230 ...
3 years, 5 months ago (2017-06-28 22:30:35 UTC) #19
etiennep1
courgette BUILD was definitely a mistake. I tried to make ustring conversions more elegant. https://codereview.chromium.org/2963463002/diff/60001/chrome/installer/zucchini/suffix_array_unittest.cc ...
3 years, 5 months ago (2017-06-28 23:03:48 UTC) #20
huangs
I haven't grokked the algorithm yet. Meanwhile, here are some NITs. Please also format all ...
3 years, 5 months ago (2017-06-30 04:57:33 UTC) #21
etiennep1
PTAnL https://codereview.chromium.org/2963463002/diff/70005/chrome/installer/zucchini/suffix_array.h File chrome/installer/zucchini/suffix_array.h (right): https://codereview.chromium.org/2963463002/diff/70005/chrome/installer/zucchini/suffix_array.h#newcode21 chrome/installer/zucchini/suffix_array.h:21: // |str| must be a random access input ...
3 years, 5 months ago (2017-06-30 17:18:18 UTC) #22
huangs
More comments. It seems SearchSuffixArray() is broken? https://codereview.chromium.org/2963463002/diff/110001/chrome/installer/zucchini/suffix_array.h File chrome/installer/zucchini/suffix_array.h (right): https://codereview.chromium.org/2963463002/diff/110001/chrome/installer/zucchini/suffix_array.h#newcode21 chrome/installer/zucchini/suffix_array.h:21: // |str| ...
3 years, 5 months ago (2017-07-05 05:51:59 UTC) #23
huangs
https://codereview.chromium.org/2963463002/diff/110001/chrome/installer/zucchini/suffix_array.h File chrome/installer/zucchini/suffix_array.h (right): https://codereview.chromium.org/2963463002/diff/110001/chrome/installer/zucchini/suffix_array.h#newcode457 chrome/installer/zucchini/suffix_array.h:457: return it; For a more realistic example: Query "aaaam" ...
3 years, 5 months ago (2017-07-05 15:46:36 UTC) #24
huangs
https://codereview.chromium.org/2963463002/diff/110001/chrome/installer/zucchini/suffix_array.h File chrome/installer/zucchini/suffix_array.h (right): https://codereview.chromium.org/2963463002/diff/110001/chrome/installer/zucchini/suffix_array.h#newcode112 chrome/installer/zucchini/suffix_array.h:112: std::vector<SLType>::reverse_iterator sl_partition) { NIT: |sl_partition| is actually an interator, ...
3 years, 5 months ago (2017-07-10 02:45:29 UTC) #25
etiennep1
Updated. Should I wait for this CL to land before committing integration in google3? https://codereview.chromium.org/2963463002/diff/110001/chrome/installer/zucchini/suffix_array.h ...
3 years, 5 months ago (2017-07-10 17:51:09 UTC) #26
huangs
LGTM % comments. Will look again if prompted. https://codereview.chromium.org/2963463002/diff/110001/chrome/installer/zucchini/suffix_array.h File chrome/installer/zucchini/suffix_array.h (right): https://codereview.chromium.org/2963463002/diff/110001/chrome/installer/zucchini/suffix_array.h#newcode404 chrome/installer/zucchini/suffix_array.h:404: label_count, ...
3 years, 5 months ago (2017-07-10 20:01:18 UTC) #27
etiennep1
Rebasing and landing. https://codereview.chromium.org/2963463002/diff/110001/chrome/installer/zucchini/suffix_array.h File chrome/installer/zucchini/suffix_array.h (right): https://codereview.chromium.org/2963463002/diff/110001/chrome/installer/zucchini/suffix_array.h#newcode404 chrome/installer/zucchini/suffix_array.h:404: label_count, suffix_array); On 2017/07/10 20:01:18, huangs ...
3 years, 5 months ago (2017-07-10 22:57:09 UTC) #34
huangs
https://codereview.chromium.org/2963463002/diff/110001/chrome/installer/zucchini/suffix_array.h File chrome/installer/zucchini/suffix_array.h (right): https://codereview.chromium.org/2963463002/diff/110001/chrome/installer/zucchini/suffix_array.h#newcode404 chrome/installer/zucchini/suffix_array.h:404: label_count, suffix_array); Oh I see, the full signature is ...
3 years, 5 months ago (2017-07-11 14:52:55 UTC) #42
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2963463002/210001
3 years, 5 months ago (2017-07-11 16:11:03 UTC) #45
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/485794)
3 years, 5 months ago (2017-07-11 16:18:17 UTC) #47
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2963463002/230001
3 years, 5 months ago (2017-07-11 16:46:34 UTC) #50
commit-bot: I haz the power
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_rel_ng/builds/498113)
3 years, 5 months ago (2017-07-11 18:46:42 UTC) #52
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2963463002/230001
3 years, 5 months ago (2017-07-12 00:03:44 UTC) #61
commit-bot: I haz the power
Committed patchset #13 (id:230001) as https://chromium.googlesource.com/chromium/src/+/a1b45802a88101e23d1c0e485165255807702ca7
3 years, 5 months ago (2017-07-12 01:28:47 UTC) #64
grt (UTC plus 2)
https://codereview.chromium.org/2963463002/diff/230001/chrome/installer/zucchini/suffix_array.h File chrome/installer/zucchini/suffix_array.h (right): https://codereview.chromium.org/2963463002/diff/230001/chrome/installer/zucchini/suffix_array.h#newcode52 chrome/installer/zucchini/suffix_array.h:52: class Sais { "Names should be descriptive; avoid abbreviation." ...
3 years, 5 months ago (2017-07-24 09:09:42 UTC) #66
etiennep1
3 years, 4 months ago (2017-07-27 17:26:03 UTC) #67
Message was sent while issue was closed.
Publishing comments. Corrections are found at 590189.

https://codereview.chromium.org/2963463002/diff/230001/chrome/installer/zucch...
File chrome/installer/zucchini/suffix_array.h (right):

https://codereview.chromium.org/2963463002/diff/230001/chrome/installer/zucch...
chrome/installer/zucchini/suffix_array.h:52: class Sais {
On 2017/07/24 09:09:42, grt (UTC plus 2) wrote:
> "Names should be descriptive; avoid abbreviation."
> (https://google.github.io/styleguide/cppguide.html#General_Naming_Rules)

Done.

https://codereview.chromium.org/2963463002/diff/230001/chrome/installer/zucch...
chrome/installer/zucchini/suffix_array.h:102: struct Implementation {
On 2017/07/24 09:09:42, grt (UTC plus 2) wrote:
> should this be in a private: section of Sais?

It would make sense to have this private, but it is convenient to have it public
for unittest, and since everything is wrapped in Implementation class, it makes
it pretty obvious this is an implementation detail. I also have a feeling
friendship for unittest is frowned upon. Let me know if there's a better way to
to this.

https://codereview.chromium.org/2963463002/diff/230001/chrome/installer/zucch...
chrome/installer/zucchini/suffix_array.h:427: };
On 2017/07/24 09:09:42, grt (UTC plus 2) wrote:
> ?
>    private:
>     DISALLOW_IMPLICIT_CONSTRUCTORS(Implementation);
>   };

Done.

Powered by Google App Engine
This is Rietveld 408576698