nik (Nikolai Kosjar)
User

Projects

User does not belong to any projects.

User Details

User Since
May 9 2017, 8:22 AM (76 w, 10 h)

Recent Activity

Jun 13 2018

nik accepted D46862: [libclang] Optionally add code completion results for arrow instead of dot.
Jun 13 2018, 4:50 AM
nik added inline comments to D46862: [libclang] Optionally add code completion results for arrow instead of dot.
Jun 13 2018, 3:05 AM
nik updated the diff for D48116: [libclang] Allow skipping warnings from all included files.

Addressed comments.

Jun 13 2018, 2:52 AM
nik added reviewers for D48116: [libclang] Allow skipping warnings from all included files: yvvan, ilya-biryukov, bkramer, akyrtzi.
Jun 13 2018, 1:41 AM
nik created D48116: [libclang] Allow skipping warnings from all included files.
Jun 13 2018, 12:44 AM

Jun 6 2018

nik added a comment to D46862: [libclang] Optionally add code completion results for arrow instead of dot.
  • Sometimes you refer to "fixits", sometimes "fix-its" and some times "FixIts". Unify to what is already there.
  • The term "completion items" is new so far. Use "completions" for consistency.
Jun 6 2018, 3:32 AM
nik requested changes to D46862: [libclang] Optionally add code completion results for arrow instead of dot.
Jun 6 2018, 3:28 AM

Jun 1 2018

nik added a comment to rL333735: [CodeComplete] Add a few extra tests for r333538. NFC.

Thanks!

Jun 1 2018, 3:09 AM

May 30 2018

nik added a comment to D44480: [Sema] Don't skip function bodies with 'auto' without trailing return type.

Does getAs<AutoType>() work correctly with function returning auto&?

May 30 2018, 11:53 PM
nik added a comment to D44480: [Sema] Don't skip function bodies with 'auto' without trailing return type.

I've stumbled about this bug too and was looking into it and then I saw the mail about this change being submitted :)

May 30 2018, 8:39 AM

May 29 2018

nik requested changes to D46862: [libclang] Optionally add code completion results for arrow instead of dot.

Generates build errors here:

May 29 2018, 2:55 AM

May 16 2018

nik added a comment to D46050: [Frontend] Avoid running plugins during code completion parse.

If this is fine now, please submit as I don't have the permissions to do so.

May 16 2018, 12:39 AM
nik updated the diff for D46050: [Frontend] Avoid running plugins during code completion parse.

Addressed inline nit.

May 16 2018, 12:38 AM

May 11 2018

nik added a comment to D46050: [Frontend] Avoid running plugins during code completion parse.

Ping

May 11 2018, 12:04 AM

May 8 2018

nik updated the summary of D45815: [libclang] Allow skipping function bodies in preamble only.
May 8 2018, 2:09 AM
nik added inline comments to D45815: [libclang] Allow skipping function bodies in preamble only.
May 8 2018, 1:56 AM
nik updated the diff for D45815: [libclang] Allow skipping function bodies in preamble only.

Addressed comments.

May 8 2018, 1:56 AM

May 7 2018

nik added a comment to D46050: [Frontend] Avoid running plugins during code completion parse.

OK, the issue with the test dependencies I've had is resolved by https://reviews.llvm.org/D46514

May 7 2018, 11:33 PM
nik added a comment to D46514: [lit] Fix running tests that require 'examples'.

I have no permissions to submit, please do this for me.

May 7 2018, 11:18 PM
nik added a comment to D40481: [libclang] Fix cursors for arguments of Subscript and Call operators.

Ping.

May 7 2018, 12:26 AM
nik created D46514: [lit] Fix running tests that require 'examples'.
May 7 2018, 12:12 AM
nik updated the diff for D46050: [Frontend] Avoid running plugins during code completion parse.

Moved the test to "Index".

May 7 2018, 12:10 AM
nik added inline comments to D46050: [Frontend] Avoid running plugins during code completion parse.
May 7 2018, 12:10 AM

May 3 2018

nik added a comment to D45815: [libclang] Allow skipping function bodies in preamble only.

Do I miss something? I've uploaded a new diff/version and state is still "(X) Requested Changes to Prior Diff".

May 3 2018, 11:58 PM

Apr 27 2018

nik added a comment to D45815: [libclang] Allow skipping function bodies in preamble only.

OK, to skip all function bodies in the preamble except for template functions and functions within a template class, I've amended the previous diff with:

Apr 27 2018, 7:30 AM
nik added a comment to D45815: [libclang] Allow skipping function bodies in preamble only.

Trying to format the diff in the previous comment:

Apr 27 2018, 7:30 AM
nik added inline comments to D45815: [libclang] Allow skipping function bodies in preamble only.
Apr 27 2018, 7:18 AM
nik retitled D45815: [libclang] Allow skipping function bodies in preamble only from [libclang] Add options to limit skipping of function bodies to [libclang] Allow skipping function bodies in preamble only.
Apr 27 2018, 2:43 AM
nik added a comment to D45815: [libclang] Allow skipping function bodies in preamble only.

OK, I've rechecked this change. I don't see any obvious mistake :)

I think I got to the bottom of it. We didn't expect a big win, because we expect people to not put their non-template code into the header files. Which is probably true.
The problem with our reasoning, is that this patch also skip bodies of non-template functions inside template classes, e.g.

template <class T>
struct vector {
   template <class It>
   void append(T* pos, It begin, It end) {
        / * This function won't be skipped, it is a template. */ 
   }

   void push_back(T const&) {
        /* However, this function will be skipped! It is not a template! */
   }
};

So it's not surprising that we get a big win. Template function are (probably) much more rare than non-template functions inside templates.

Apr 27 2018, 2:42 AM
nik updated the diff for D45815: [libclang] Allow skipping function bodies in preamble only.

Reduction to skip-in-preamble-only functionality.

Apr 27 2018, 2:42 AM

Apr 26 2018

nik updated the summary of D46050: [Frontend] Avoid running plugins during code completion parse.
Apr 26 2018, 3:53 AM
nik added inline comments to D46050: [Frontend] Avoid running plugins during code completion parse.
Apr 26 2018, 2:46 AM
nik updated the diff for D46050: [Frontend] Avoid running plugins during code completion parse.

Added a test and clarified scenario in commit message.

Apr 26 2018, 2:37 AM
nik added a comment to D46050: [Frontend] Avoid running plugins during code completion parse.

Seems reasonable; can you add a test for this (maybe somewhere in clang/test/Frontend/plugin*)?

Apr 26 2018, 2:36 AM

Apr 25 2018

nik updated the diff for D46050: [Frontend] Avoid running plugins during code completion parse.

only clang-format fixes

Apr 25 2018, 3:34 AM
nik added reviewers for D46050: [Frontend] Avoid running plugins during code completion parse: john.brawn, thakis, yvvan.
Apr 25 2018, 3:23 AM
nik created D46050: [Frontend] Avoid running plugins during code completion parse.
Apr 25 2018, 3:23 AM

Apr 24 2018

nik updated the diff for D45815: [libclang] Allow skipping function bodies in preamble only.

Addressed inline comments.

Apr 24 2018, 7:03 AM
nik added a comment to D45815: [libclang] Allow skipping function bodies in preamble only.
In D45815#1073581, @nik wrote:

Hmm, that indicates that template function bodies are actually not that
dominant, which I also haven't thought. Now I'm doubting the correctness of
my patch/tests.

The numbers are definitely interesting, we need to double-check if that it's the case. But they definitely make a good point for including this option.
It seems Qt and LLVM are exactly the types of codebases where skipping the templates doesn't bring much value, as most of the code is not templated. On the other hand, skipping inline function might potentially be a win for those.

I'm still tempted to say that we should either skip all bodies or none of them to keep the code simpler, but I see why having errors from template instantiations is preferable.

Apr 24 2018, 7:03 AM
nik added a reviewer for D45815: [libclang] Allow skipping function bodies in preamble only: erikjv.
Apr 24 2018, 1:46 AM

Apr 20 2018

nik added a comment to D45815: [libclang] Allow skipping function bodies in preamble only.
In D45815#1072094, @nik wrote:

@ilya: Using SkipFunctionBodies_AllExceptTemplates for the preamble might be also useful for clangd.

Unfortunately, that's also the biggest performance win you get when skipping the function bodies.
I.e. most codebases do not have function bodies in headers unless the function is template.

Have you measured the performance gain of skipping only non-template functions, but not skipping the template ones?
Would that really make a significant difference for any real codebase?

Apr 20 2018, 7:39 AM

Apr 19 2018

nik added a comment to D40481: [libclang] Fix cursors for arguments of Subscript and Call operators.

This one still applies and tests pass.

Apr 19 2018, 7:12 AM
nik added a comment to D41005: Reuse preamble even if an unsaved file does not exist.

Sorry for the delay, I think I'll come back to this one soon.

Apr 19 2018, 7:03 AM
nik added a comment to D45815: [libclang] Allow skipping function bodies in preamble only.

@ilya: Using SkipFunctionBodies_AllExceptTemplates for the preamble might be also useful for clangd.

Apr 19 2018, 7:02 AM
nik added reviewers for D45815: [libclang] Allow skipping function bodies in preamble only: yvvan, arphaman, ilya-biryukov.
Apr 19 2018, 7:00 AM
nik created D45815: [libclang] Allow skipping function bodies in preamble only.
Apr 19 2018, 6:51 AM

Apr 17 2018

nik added a comment to D36390: Fix overloaded static functions in SemaCodeComplete.

Huch, seems already submitted. Ignore :>

Apr 17 2018, 1:09 AM
nik added a comment to D36390: Fix overloaded static functions in SemaCodeComplete.

Ping

Apr 17 2018, 1:06 AM
nik added a comment to D43453: Fix overloaded static functions for templates.

Ping

Apr 17 2018, 1:06 AM
nik added a comment to D38615: [libclang] Only mark CXCursors for explicit attributes with a type.

Ping

Apr 17 2018, 12:59 AM

Feb 7 2018

nik added a comment to D40481: [libclang] Fix cursors for arguments of Subscript and Call operators.

Ping...

Feb 7 2018, 3:44 AM

Jan 31 2018

nik abandoned D42099: [libclang] Add missing CINDEX_LINKAGE.

Abandoning since the change is already in.

Jan 31 2018, 7:59 AM

Jan 19 2018

nik added a comment to D42099: [libclang] Add missing CINDEX_LINKAGE.

Hmm, nothing changed. So how to get rid of this correctly. Is "Abandon Revision" the right thing to do?

Jan 19 2018, 7:19 AM
nik added a reviewer for D40481: [libclang] Fix cursors for arguments of Subscript and Call operators: jbcoe.
Jan 19 2018, 7:16 AM
nik added a comment to D40481: [libclang] Fix cursors for arguments of Subscript and Call operators.

Ping!

Jan 19 2018, 7:16 AM

Jan 16 2018

nik added a comment to D42099: [libclang] Add missing CINDEX_LINKAGE.

This was one was already submitted/merged by yvvan. Hmm, this review does not reflect that yet?

Jan 16 2018, 11:08 PM
nik added reviewers for D42099: [libclang] Add missing CINDEX_LINKAGE: yvvan, jbcoe.
Jan 16 2018, 4:10 AM
nik created D42099: [libclang] Add missing CINDEX_LINKAGE.
Jan 16 2018, 4:10 AM
nik added a comment to D39903: [libclang] Allow pretty printing declarations.

I can merge this for you.
Please add me as reviewer in any follow-up patches and we can turn them around more quickly.

Jan 16 2018, 12:36 AM

Jan 14 2018

nik added a comment to D39903: [libclang] Allow pretty printing declarations.

Can you submit this for me? I don't have the permissions.

Jan 14 2018, 11:55 PM
nik updated the diff for D39903: [libclang] Allow pretty printing declarations.

Addressed inline comment.

Jan 14 2018, 11:46 PM

Jan 12 2018

nik updated the diff for D39903: [libclang] Allow pretty printing declarations.

What about this? :)

Jan 12 2018, 8:20 AM
nik updated the diff for D39903: [libclang] Allow pretty printing declarations.

Added assert() for getter/setter.

Jan 12 2018, 4:20 AM
nik added inline comments to D39903: [libclang] Allow pretty printing declarations.
Jan 12 2018, 4:20 AM
nik updated the diff for D39903: [libclang] Allow pretty printing declarations.

Addressed comments.

Jan 12 2018, 1:55 AM
nik added a comment to D39903: [libclang] Allow pretty printing declarations.

It might be worth adding some very simple get/set tests to ensure that properties are set as intended.

Jan 12 2018, 1:54 AM

Jan 11 2018

nik updated the diff for D39903: [libclang] Allow pretty printing declarations.

Used macros as in a previous version to make it less verbose and error prone.

Jan 11 2018, 4:05 AM
nik updated the diff for D39903: [libclang] Allow pretty printing declarations.

Could one use an enum to get/set different properties of the policy?

I've seen other C-API's (for Linear and Quadratic programming) follow a similar approach quite extensibly.

It would significantly reduce the size of the API.

Jan 11 2018, 3:51 AM

Jan 10 2018

nik updated the diff for D39903: [libclang] Allow pretty printing declarations.

Rebased only, please review.

Jan 10 2018, 5:22 AM
nik added a comment to D40481: [libclang] Fix cursors for arguments of Subscript and Call operators.

Ping...

Jan 10 2018, 1:32 AM
nik added a comment to D39903: [libclang] Allow pretty printing declarations.

Ping...

Jan 10 2018, 1:18 AM

Jan 2 2018

nik updated the diff for D40072: [libclang] Support querying whether a declaration is invalid.

Had to rebase.

Jan 2 2018, 11:51 PM
nik added a comment to D40481: [libclang] Fix cursors for arguments of Subscript and Call operators.

New year, new hope - ping :)

Jan 2 2018, 11:22 PM
nik updated the diff for D41005: Reuse preamble even if an unsaved file does not exist.

Rebased and renamed the counter variable only.

Jan 2 2018, 6:52 AM
nik added inline comments to D41005: Reuse preamble even if an unsaved file does not exist.
Jan 2 2018, 6:47 AM
nik added a comment to D41495: [clangd] Skip function bodies when building the preamble.

Hmm, could libclang profit from something like this, too? (or does it already?)

Jan 2 2018, 12:41 AM

Dec 14 2017

nik added inline comments to D41005: Reuse preamble even if an unsaved file does not exist.
Dec 14 2017, 7:03 AM
nik added a comment to D40481: [libclang] Fix cursors for arguments of Subscript and Call operators.

Ping.

Dec 14 2017, 6:50 AM
nik added a comment to D39903: [libclang] Allow pretty printing declarations.

Ping.

Dec 14 2017, 6:50 AM
nik added a comment to D40561: [libclang] Fix cursors for functions with trailing return type.

Ping..."Please submit as I don't have the permissions for this."

Dec 14 2017, 6:50 AM
nik added a comment to D40072: [libclang] Support querying whether a declaration is invalid.

Ping... "Please submit as I don't have the permissions."

Dec 14 2017, 6:49 AM

Dec 11 2017

nik added inline comments to D41005: Reuse preamble even if an unsaved file does not exist.
Dec 11 2017, 6:33 AM
nik updated the diff for D41005: Reuse preamble even if an unsaved file does not exist.

Addressed Ilya's comments.

Dec 11 2017, 6:30 AM
nik added inline comments to D41005: Reuse preamble even if an unsaved file does not exist.
Dec 11 2017, 6:29 AM
nik added a comment to D40561: [libclang] Fix cursors for functions with trailing return type.

Thanks for the review. Please submit as I don't have the permissions for this.

Dec 11 2017, 6:21 AM

Dec 8 2017

nik added a reviewer for D41005: Reuse preamble even if an unsaved file does not exist: cameron314.
Dec 8 2017, 6:18 AM
nik created D41005: Reuse preamble even if an unsaved file does not exist.
Dec 8 2017, 6:17 AM
nik added a comment to D39903: [libclang] Allow pretty printing declarations.

Locally we've done something similar (adding a clang_getCursorPrettyPrintedDeclaration function, though without exposing the PrintingPolicy) and overhauled DeclPrinter to produce proper pretty names. This is a hack that works well for us, but can never be upstreamed since it breaks too much existing code (and some of the printing decisions are subjective). Your way is better.

Dec 8 2017, 5:47 AM
nik added a comment to D40481: [libclang] Fix cursors for arguments of Subscript and Call operators.

Ping

Dec 8 2017, 5:19 AM
nik added a comment to D40561: [libclang] Fix cursors for functions with trailing return type.

Ping

Dec 8 2017, 5:19 AM

Dec 6 2017

nik added a comment to D20124: [PCH] Serialize skipped preprocessor ranges.

Here's the final patch that fixes clang_getSkippedRegions with regions in the preamble (as well as serializing the skipped regions in the PCH file).

Dec 6 2017, 5:14 AM

Dec 1 2017

nik updated the diff for D39903: [libclang] Allow pretty printing declarations.

Rebased only.

Dec 1 2017, 6:37 AM

Nov 30 2017

nik added reviewers for D39903: [libclang] Allow pretty printing declarations: ilya-biryukov, cameron314.

Anyone?

Nov 30 2017, 11:48 PM

Nov 28 2017

nik created D40561: [libclang] Fix cursors for functions with trailing return type.
Nov 28 2017, 8:09 AM
nik updated the diff for D40072: [libclang] Support querying whether a declaration is invalid.

Rebaed and clarified the documentation only.

Nov 28 2017, 5:15 AM
nik updated subscribers of D40527: [libclang] Record parsing invocation to a temporary file when requested by client.
Nov 28 2017, 1:05 AM
nik added a comment to D39903: [libclang] Allow pretty printing declarations.

Ping III - is there anything I can do to get this reviewed faster? 3 weeks passed.

Nov 28 2017, 12:56 AM
nik added a comment to D40072: [libclang] Support querying whether a declaration is invalid.

Ping

Nov 28 2017, 12:38 AM
nik updated subscribers of D15729: Load compiler plugins in ASTUnit, too.
Nov 28 2017, 12:13 AM
nik added a comment to D40527: [libclang] Record parsing invocation to a temporary file when requested by client.

Could you elaborate on "the client will be able to use it to generate a reproducer for the crash"? Having the json file, what would I need to do in order to reproduce the crash?

Nov 28 2017, 12:10 AM