kbobyrev (Kirill Bobyrev)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 19 2018, 7:14 AM (4 w, 2 d)

Recent Activity

Today

kbobyrev updated the summary of D50894: Pull google/benchmark library to the LLVM tree.
Sat, Aug 18, 4:45 AM
kbobyrev added a comment to D50703: [clangd] NFC: Mark Workspace Symbol feature complete in the documentation.

I hadn't marked it as done because without symbols in main files I found it quite lacking.

Sat, Aug 18, 1:09 AM · Restricted Project

Yesterday

kbobyrev planned changes to D50337: [clangd] DexIndex implementation prototype.

I should create another patch with True iterator to address the last comment.

Fri, Aug 17, 8:55 AM · Restricted Project
kbobyrev updated the diff for D50337: [clangd] DexIndex implementation prototype.

Address all the comment, except the one about True iterators.

Fri, Aug 17, 8:55 AM · Restricted Project
kbobyrev updated the diff for D50839: [llvm] Optimize YAML::isNumeric.

Thank you for the feedback! I will fuzz over the weekend just in case and update the benchmark before submitting.

Fri, Aug 17, 8:43 AM
kbobyrev updated the diff for D50337: [clangd] DexIndex implementation prototype.

Address another round of comments.

Fri, Aug 17, 7:57 AM · Restricted Project
kbobyrev updated the diff for D50897: [clangd] Allow using experimental Dex index.

Fix anonymous namespace beginning placement in Clangd driver.

Fri, Aug 17, 7:19 AM · Restricted Project
kbobyrev added a dependent revision for D50337: [clangd] DexIndex implementation prototype: D50897: [clangd] Allow using experimental Dex index.
Fri, Aug 17, 7:17 AM · Restricted Project
kbobyrev added a dependency for D50897: [clangd] Allow using experimental Dex index: D50337: [clangd] DexIndex implementation prototype.
Fri, Aug 17, 7:17 AM · Restricted Project
kbobyrev created D50897: [clangd] Allow using experimental Dex index.
Fri, Aug 17, 7:17 AM · Restricted Project
kbobyrev updated the diff for D50337: [clangd] DexIndex implementation prototype.

Address another round of comments.

Fri, Aug 17, 6:56 AM · Restricted Project
kbobyrev created D50894: Pull google/benchmark library to the LLVM tree.
Fri, Aug 17, 6:26 AM
kbobyrev updated subscribers of D50839: [llvm] Optimize YAML::isNumeric.
Fri, Aug 17, 6:02 AM
kbobyrev abandoned D50700: [clangd] Generate better incomplete bigrams for the Dex index.

As Eric suggested, such change might reduce the quality of code completion. A more generic approach is yet to be investigated and requires significantly more time resources, we should try it after we get other parts of the index to work as expected.

Fri, Aug 17, 4:00 AM · Restricted Project
kbobyrev removed reviewers for D50700: [clangd] Generate better incomplete bigrams for the Dex index: ioeric, ilya-biryukov.
Fri, Aug 17, 4:00 AM · Restricted Project
kbobyrev updated the diff for D50839: [llvm] Optimize YAML::isNumeric.

Add couple tests, fix formatting issues, use __builtin_trap() instead of assert in fuzzer so that it's more transparent.

Fri, Aug 17, 3:55 AM
kbobyrev updated the diff for D50337: [clangd] DexIndex implementation prototype.

Address a round of comments.

Fri, Aug 17, 3:51 AM · Restricted Project
kbobyrev updated the diff for D50839: [llvm] Optimize YAML::isNumeric.

I tried to rewrite the loop, but IMO it looks even worse now.

Fri, Aug 17, 2:47 AM
kbobyrev added inline comments to D50839: [llvm] Optimize YAML::isNumeric.
Fri, Aug 17, 2:44 AM
kbobyrev updated the diff for D50839: [llvm] Optimize YAML::isNumeric.

Upload version which is IMO readable.

Fri, Aug 17, 2:44 AM

Thu, Aug 16

kbobyrev edited reviewers for D50839: [llvm] Optimize YAML::isNumeric, added: majnemer; removed: ioeric, javed.absar.
Thu, Aug 16, 8:09 AM
kbobyrev updated the diff for D50839: [llvm] Optimize YAML::isNumeric.

Use consistent Regex matchers naming: don't append "Matcher" at the end.

Thu, Aug 16, 8:03 AM
kbobyrev added a reviewer for D50839: [llvm] Optimize YAML::isNumeric: zturner.
Thu, Aug 16, 7:47 AM
kbobyrev updated the diff for D50839: [llvm] Optimize YAML::isNumeric.

Very good point by @lebedev.ri! I have added a very simple fuzzer for the parser. So far, there were no issues with the current implementation. I have not exposed the regexp matcher to the header, though, because it won't be used anywhere.

Thu, Aug 16, 7:46 AM
kbobyrev added inline comments to D50700: [clangd] Generate better incomplete bigrams for the Dex index.
Thu, Aug 16, 6:33 AM · Restricted Project
kbobyrev updated the diff for D50337: [clangd] DexIndex implementation prototype.

Sorry, the last diff was the old one. Should be correct now.

Thu, Aug 16, 6:28 AM · Restricted Project
kbobyrev updated the diff for D50689: [clangd] NFC: Improve Dex Iterators debugging traits.

Improved wording to prevent confusion: no more IDX (which is the one pointed to by the iterator) and IDN; just mention that the element being pointed to is the one enclosed in {} braces.

Thu, Aug 16, 6:18 AM · Restricted Project
kbobyrev updated the summary of D50839: [llvm] Optimize YAML::isNumeric.
Thu, Aug 16, 6:03 AM
kbobyrev updated the summary of D50839: [llvm] Optimize YAML::isNumeric.
Thu, Aug 16, 6:02 AM
kbobyrev updated the summary of D50839: [llvm] Optimize YAML::isNumeric.
Thu, Aug 16, 6:02 AM
kbobyrev updated the summary of D50839: [llvm] Optimize YAML::isNumeric.
Thu, Aug 16, 6:02 AM
kbobyrev updated the summary of D50839: [llvm] Optimize YAML::isNumeric.
Thu, Aug 16, 6:01 AM
kbobyrev created D50839: [llvm] Optimize YAML::isNumeric.
Thu, Aug 16, 6:00 AM

Tue, Aug 14

kbobyrev updated the diff for D50707: NFC: Enforce good formatting across multiple clang-tools-extra files.

I have updated the patch so that it only affects comments, header guards and inserts few newlines. Actual source code is not affected so that git blame log could be less cryptic.

Tue, Aug 14, 8:53 AM · Restricted Project
kbobyrev created D50707: NFC: Enforce good formatting across multiple clang-tools-extra files.
Tue, Aug 14, 8:01 AM · Restricted Project
kbobyrev updated the diff for D50337: [clangd] DexIndex implementation prototype.

Don't separate the logic for "long" and "short" queries: D50517 (rCTE339548) introduced incomplete trigrams which can be used on for "short" queries, too.

Tue, Aug 14, 7:10 AM · Restricted Project
kbobyrev created D50703: [clangd] NFC: Mark Workspace Symbol feature complete in the documentation.
Tue, Aug 14, 6:33 AM · Restricted Project
kbobyrev created D50702: [clangd] NFC: Cleanup clangd help message.
Tue, Aug 14, 4:55 AM · Restricted Project
kbobyrev updated the diff for D50700: [clangd] Generate better incomplete bigrams for the Dex index.

Treat leading underscores as additional signals and don't extract two heads in that case.

Tue, Aug 14, 4:51 AM · Restricted Project
kbobyrev created D50700: [clangd] Generate better incomplete bigrams for the Dex index.
Tue, Aug 14, 4:50 AM · Restricted Project
kbobyrev updated the summary of D50689: [clangd] NFC: Improve Dex Iterators debugging traits.
Tue, Aug 14, 1:21 AM · Restricted Project
kbobyrev created D50689: [clangd] NFC: Improve Dex Iterators debugging traits.
Tue, Aug 14, 1:20 AM · Restricted Project

Mon, Aug 13

kbobyrev planned changes to D50337: [clangd] DexIndex implementation prototype.

As discussed offline, I should update the patch to reflect changes accepted in https://reviews.llvm.org/D50517.

Mon, Aug 13, 11:16 AM · Restricted Project
kbobyrev abandoned D50576: [clangd] Allow consumption of DocIDs without overhead.

As discussed, this is not a very clean API for the user interaction and it's OK to leave consume() as is.

Mon, Aug 13, 5:02 AM
kbobyrev removed reviewers for D50576: [clangd] Allow consumption of DocIDs without overhead: ioeric, ilya-biryukov.
Mon, Aug 13, 4:31 AM
kbobyrev updated the diff for D50517: [clangd] Generate incomplete trigrams for the Dex index.

Address the post-LGTM comment.

Mon, Aug 13, 1:20 AM

Fri, Aug 10

kbobyrev created D50576: [clangd] Allow consumption of DocIDs without overhead.
Fri, Aug 10, 11:35 AM
kbobyrev updated the diff for D50517: [clangd] Generate incomplete trigrams for the Dex index.

Address a round of comments.

Fri, Aug 10, 11:16 AM
kbobyrev updated the diff for D50337: [clangd] DexIndex implementation prototype.

Store symbol qualities (so that it's not computed each time when requested which might be expensive). Use operator[] to construct the value for inverted index when key is not inserted yet.

Fri, Aug 10, 10:51 AM · Restricted Project
kbobyrev updated the diff for D50517: [clangd] Generate incomplete trigrams for the Dex index.

Address issues we have discussed with Eric.

Fri, Aug 10, 10:11 AM
kbobyrev updated the diff for D50337: [clangd] DexIndex implementation prototype.

Address most comments.

Fri, Aug 10, 7:24 AM · Restricted Project
kbobyrev updated the diff for D50517: [clangd] Generate incomplete trigrams for the Dex index.

Address issues we discussed with Eric.

Fri, Aug 10, 5:31 AM
kbobyrev updated the diff for D50500: [clangd] Allow consuming limited number of items.
Fri, Aug 10, 4:47 AM · Restricted Project
kbobyrev added a comment to D50517: [clangd] Generate incomplete trigrams for the Dex index.

As discussed offline with @ilya-biryukov, the better approach would be to prefix match first symbols of each distinct identifier piece instead of prefix matching (just looking at the first letter of the identifier) the whole identifier.

Example:

  • Query: "u"
  • Symbols: "unique_ptr", "user", "super_user"

    Current implementation would match "unique_ptr" and "user" only. Proposed implementation would match all three symbols, because the second piece of "super_user" starts with u.

And in the case where users want to match super_user, I think it's reasonable to have users type two more characters and match it with use.

Fri, Aug 10, 3:17 AM
kbobyrev added inline comments to D50517: [clangd] Generate incomplete trigrams for the Dex index.
Fri, Aug 10, 3:13 AM
kbobyrev updated the diff for D50517: [clangd] Generate incomplete trigrams for the Dex index.

Address a round of comments.

Fri, Aug 10, 3:12 AM
kbobyrev updated the diff for D50517: [clangd] Generate incomplete trigrams for the Dex index.

@ilya-biryukov I have changed the approach to the one we discussed before.

Fri, Aug 10, 2:32 AM
kbobyrev planned changes to D50517: [clangd] Generate incomplete trigrams for the Dex index.

As discussed offline with @ilya-biryukov, the better approach would be to prefix match first symbols of each distinct identifier piece instead of prefix matching (just looking at the first letter of the identifier) the whole identifier.

Fri, Aug 10, 2:24 AM
kbobyrev updated the diff for D50517: [clangd] Generate incomplete trigrams for the Dex index.

Complete the tests, finish the implementation.

Fri, Aug 10, 1:48 AM

Thu, Aug 9

kbobyrev updated the diff for D50500: [clangd] Allow consuming limited number of items.

Fix the implementation and add test coverage.

Thu, Aug 9, 11:00 AM · Restricted Project
kbobyrev planned changes to D50500: [clangd] Allow consuming limited number of items.

Oops, I thought I pushed "Plan Changes" for this one.

Thu, Aug 9, 9:52 AM · Restricted Project
kbobyrev planned changes to D50517: [clangd] Generate incomplete trigrams for the Dex index.

This patch is in preview mode and can be useful for the discussion. It's not functional yet, but this will be changed in the future.

Thu, Aug 9, 9:44 AM
kbobyrev created D50517: [clangd] Generate incomplete trigrams for the Dex index.
Thu, Aug 9, 9:15 AM
kbobyrev updated the diff for D50337: [clangd] DexIndex implementation prototype.

Address a round of comments. Also put FIXMEs where appropriate for the future changes.

Thu, Aug 9, 6:14 AM · Restricted Project
kbobyrev added a dependency for D50337: [clangd] DexIndex implementation prototype: D50500: [clangd] Allow consuming limited number of items.
Thu, Aug 9, 2:44 AM · Restricted Project
kbobyrev added a dependent revision for D50500: [clangd] Allow consuming limited number of items: D50337: [clangd] DexIndex implementation prototype.
Thu, Aug 9, 2:44 AM · Restricted Project
kbobyrev created D50500: [clangd] Allow consuming limited number of items.
Thu, Aug 9, 2:43 AM · Restricted Project

Wed, Aug 8

kbobyrev updated the diff for D50337: [clangd] DexIndex implementation prototype.

Minor code cleanup. This is now a fully functional symbol index.

Wed, Aug 8, 2:27 AM · Restricted Project

Tue, Aug 7

kbobyrev planned changes to D50337: [clangd] DexIndex implementation prototype.
Tue, Aug 7, 8:24 AM · Restricted Project
kbobyrev updated the diff for D50337: [clangd] DexIndex implementation prototype.

Continue implementing Proof of Concept Dex-based static index replacement.

Tue, Aug 7, 8:23 AM · Restricted Project
kbobyrev added a comment to D50337: [clangd] DexIndex implementation prototype.

As discussed offline, incomplete trigrams (unigrams and bigrams generation) should be a blocker for this patch, because otherwise it isn't functional. Once incomplete trigrams are in, MemIndex tests can be reused for DexIndex to ensure stability.

Tue, Aug 7, 2:52 AM · Restricted Project
kbobyrev planned changes to D50337: [clangd] DexIndex implementation prototype.
Tue, Aug 7, 1:26 AM · Restricted Project
kbobyrev updated the diff for D50337: [clangd] DexIndex implementation prototype.

Don't resize retrieved symbols vector, simply let callback process at most MaxCandidateCount items.

Tue, Aug 7, 1:26 AM · Restricted Project

Mon, Aug 6

kbobyrev planned changes to D50337: [clangd] DexIndex implementation prototype.

The patch is currently in preview-mode; I have to make few changes:

Mon, Aug 6, 8:19 AM · Restricted Project
kbobyrev created D50337: [clangd] DexIndex implementation prototype.
Mon, Aug 6, 8:16 AM · Restricted Project

Thu, Jul 26

kbobyrev updated the diff for D49546: [clangd] Proof-of-concept query iterators for Dex symbol index.

Address post-lg round of comments.

Thu, Jul 26, 3:35 AM · Restricted Project
kbobyrev updated the diff for D49546: [clangd] Proof-of-concept query iterators for Dex symbol index.

Rebase on top of https://reviews.llvm.org/rL337901

Thu, Jul 26, 3:21 AM · Restricted Project
kbobyrev updated the diff for D49546: [clangd] Proof-of-concept query iterators for Dex symbol index.

Addressed a round of comments: cleaned up the code, improved documentation and properly introduced such terms like Posting List and Query Tree. Tests are now more modular and each specific piece tests a certain part of implementation.

Thu, Jul 26, 2:27 AM · Restricted Project
kbobyrev updated the diff for D49546: [clangd] Proof-of-concept query iterators for Dex symbol index.

Typo: "Returns false if ..., false otherwise" ->"Returns false if ..., true otherwise".

Thu, Jul 26, 2:27 AM · Restricted Project

Wed, Jul 25

kbobyrev updated the diff for D49785: [clangd] Give an example for global-symbol-builder usage.

Addressed two comments, added an example of running the tool over a number of source files without providing compile_commands.json; added a note about collecting files from headers only.

Wed, Jul 25, 7:31 AM · Restricted Project
kbobyrev created D49785: [clangd] Give an example for global-symbol-builder usage.
Wed, Jul 25, 4:40 AM · Restricted Project
kbobyrev retitled D49591: [clangd] Introduce Dex symbol index search tokens from [clangd] Introduce search Tokens and trigram generation algorithms to [clangd] Introduce Dex symbol index search tokens.
Wed, Jul 25, 3:07 AM · Restricted Project
kbobyrev updated subscribers of D49546: [clangd] Proof-of-concept query iterators for Dex symbol index.
Wed, Jul 25, 2:56 AM · Restricted Project
kbobyrev updated the diff for D49546: [clangd] Proof-of-concept query iterators for Dex symbol index.

Choose better wording in a couple of places.

Wed, Jul 25, 2:56 AM · Restricted Project
kbobyrev updated the diff for D49546: [clangd] Proof-of-concept query iterators for Dex symbol index.

Slightly refactored the code, improved documentation. This patch is ready for review.

Wed, Jul 25, 2:44 AM · Restricted Project
kbobyrev added inline comments to D49546: [clangd] Proof-of-concept query iterators for Dex symbol index.
Wed, Jul 25, 2:02 AM · Restricted Project
kbobyrev updated the diff for D49546: [clangd] Proof-of-concept query iterators for Dex symbol index.

Address the last round of comments.

Wed, Jul 25, 2:02 AM · Restricted Project

Tue, Jul 24

kbobyrev added inline comments to D49591: [clangd] Introduce Dex symbol index search tokens.
Tue, Jul 24, 11:12 PM · Restricted Project
kbobyrev updated the diff for D49591: [clangd] Introduce Dex symbol index search tokens.

Address last round of comments.

Tue, Jul 24, 11:12 PM · Restricted Project
kbobyrev added inline comments to D49591: [clangd] Introduce Dex symbol index search tokens.
Tue, Jul 24, 6:52 AM · Restricted Project
kbobyrev updated the diff for D49591: [clangd] Introduce Dex symbol index search tokens.

Address all comments, refine tests.

Tue, Jul 24, 6:51 AM · Restricted Project
kbobyrev updated the diff for D49546: [clangd] Proof-of-concept query iterators for Dex symbol index.

Refactored unit tests in few places.

Tue, Jul 24, 4:34 AM · Restricted Project
kbobyrev added inline comments to D49546: [clangd] Proof-of-concept query iterators for Dex symbol index.
Tue, Jul 24, 4:00 AM · Restricted Project
kbobyrev updated the diff for D49546: [clangd] Proof-of-concept query iterators for Dex symbol index.

As discussed offline: I simplified the implementation and cleaned up unit tests. Should look better now.

Tue, Jul 24, 4:00 AM · Restricted Project

Mon, Jul 23

kbobyrev added a reviewer for D49546: [clangd] Proof-of-concept query iterators for Dex symbol index: ilya-biryukov.
Mon, Jul 23, 8:54 AM · Restricted Project
kbobyrev updated the diff for D49591: [clangd] Introduce Dex symbol index search tokens.

Wrong diff, should be correct now.

Mon, Jul 23, 7:07 AM · Restricted Project
kbobyrev updated the diff for D49591: [clangd] Introduce Dex symbol index search tokens.

Address all comments from the last iteration.

Mon, Jul 23, 7:06 AM · Restricted Project
kbobyrev updated the diff for D49546: [clangd] Proof-of-concept query iterators for Dex symbol index.
  • Implemented convenient dumping via llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, QueryIterator &Iterator), which dumps iterator tree in human-readable format, e.g. (&& [1, 2, 3] (|| [3, 4, 5] []))
  • Implemented rather straightforward iterator cost for more efficient AndIterator iterations
Mon, Jul 23, 1:33 AM · Restricted Project

Fri, Jul 20

kbobyrev planned changes to D49546: [clangd] Proof-of-concept query iterators for Dex symbol index.

Upcoming changes:

Fri, Jul 20, 7:26 AM · Restricted Project
kbobyrev updated the diff for D49546: [clangd] Proof-of-concept query iterators for Dex symbol index.
  • Switched from std::shared_ptr to std::unique_ptr for iterator's children: iterators own their subtrees, the lifetime should depend on the root
  • Store PostingListRefin DocumentIterator: the lifetime of underlying PostingList should be longer than the DocumentIterator anyway, DocumentIterator can not retrieve results from an incomplete inverted index
  • Refined API of different iterators: wipe getIndex(), reset() from DocumentIterator, getChildren from AndIterator and OrIterator
  • Not exposing DocumentIterator, AndIterator, OrIterator to the User API anymore: helper functions like std::unique_ptr<QueryIterator> constructDocumentIterator which return a unique pointer and perform type erasure are provided instead
  • Improved variable naming, applied refactorings where necessary
Fri, Jul 20, 7:18 AM · Restricted Project