Closed
Bug 1030312
Opened 11 years ago
Closed 11 years ago
Port clang plugin to new API
Categories
(Webtools Graveyard :: DXR, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: erik, Assigned: erik)
References
Details
Port the clang indexer to the new ES-compatible plugin API.
Assignee | ||
Comment 1•11 years ago
|
||
…and the htmlifier, I suppose
Updated•11 years ago
|
Assignee: nobody → mchanlatte
Comment 2•11 years ago
|
||
Commit pushed to es at https://github.com/mozilla/dxr
https://github.com/mozilla/dxr/commit/6906ec1424401fbe5c64f3add80f5aca1a46fe0d
Change IR for clang plugin and implement call graph. Merges #291.
Moving towards Bug #1030312
Comment 3•11 years ago
|
||
Commit pushed to master at https://github.com/mozilla/dxr
https://github.com/mozilla/dxr/commit/6906ec1424401fbe5c64f3add80f5aca1a46fe0d
Change IR for clang plugin and implement call graph. Merges #291.
Assignee | ||
Comment 4•11 years ago
|
||
...and retracted. That was a mistaken merge.
Comment 5•11 years ago
|
||
Commit pushed to es at https://github.com/mozilla/dxr
https://github.com/mozilla/dxr/commit/fcd0306793b3a6793381722644fcfe7c56c65690
Merge a lot of work on clang needles into es branch. Ref bug 1030312.
* Clang plugin is no longer a no-op; now it finds its CSV files.
* Needles now come out in the right format and make it into ES.
* Much refactoring
* A few tweaks to the plugin API, like no longer requiring highlight() input to be sorted
Note that process_loc likely still emits incorrect Extents; see the TODO.
Comment 6•11 years ago
|
||
Commit pushed to es at https://github.com/mozilla/dxr
https://github.com/mozilla/dxr/commit/0940c8f883328e95dc72163f100a9b3cb7ae6791
Make warning and warning-opt searches work. Ref bug 1030312.
* Refactor to create _NameFilter, a single-value filter for needles without qualnames. _SymbolFilter becomes _QualifiedNameFilter. Some symbols, like macros, don't have qualnames [that are meaningfully different from regular names], after all.
* Rename symbol_needles() to qualified_needles() for consistency.
* Make WarningFilter and WarningOptFilter _NameFilters, along with MacroFilter and MacroRefFilter so I don't forget later.
* Remove a unit test that is now invalid and is redundant with integration tests.
* Unskip warnings tests. Amend expected strings. We no longer (at least for now) support wildcard searches in every little filter. That's part of why SQLite-based DXR was so slow.
Comment 7•11 years ago
|
||
Commit pushed to es at https://github.com/mozilla/dxr
https://github.com/mozilla/dxr/commit/7e6a15ca766724eeacd7c13a2c3f09dbdeae6e9b
Make macro and macro-ref searches work. Ref bug 1030312. Fix bug 1082100.
*This* is the last ref needle.
Rename args of ref_needles and qualified_needles to be more accurate and memorable.
Comment 8•11 years ago
|
||
Commit pushed to es at https://github.com/mozilla/dxr
https://github.com/mozilla/dxr/commit/6a66cca503d22c313acb865e4aec3d975134edce
Gracefully ignore corner-case lines where the loc can be determined but the extent can't. Ref bug 1030312.
This makes all macro tests pass.
We can come back and try to suss something useful out of these later, but we don't in prod.
Assignee | ||
Updated•11 years ago
|
Assignee: mchanlatte → erik
Comment 9•11 years ago
|
||
Commit pushed to es at https://github.com/mozilla/dxr
https://github.com/mozilla/dxr/commit/f89d8346578fc9b0044f4496a4a5181ef5370441
Make member searches work. Ref bug 1030312.
* "member" searches for a class no longer find the class: just its members. Hooray! (This is why some tests change.)
* "member" searches now find class-scoped typedefs. Hooray!
* Have compiler plugin emit qualnames for scopes. Remove scopelocs, which are no longer used.
* Switch to a qualified search in test_members so we don't find all the vars scoped to the constructor, which shares the name of the class.
* Remove variable unit test in favor of an integration test. member needles change this contract and invalidate the test.
* Remove dead process_override().
* Stop processing scopes into a special data structure. It wasn't necessary, and the code is simpler without it.
* Remove dead overrides_needles().
Comment 10•11 years ago
|
||
Commits pushed to es at https://github.com/mozilla/dxr
https://github.com/mozilla/dxr/commit/dcaa41ab6bf6b28ebef4c6123e71561917589abf
Refactor condenser and add "overridden" data gathering during post-build. Ref bug 1030312.
* Refactor condenser to make room for "overridden" gathering as a second whole-program analysis action during post-build. Where before we propagated an impl_only flag through several levels of functions calls, now we decompose the functions such that we can just pass arbitrary actions and predicates in.
* Lay down overrideloc and overridelocend fields in function lines in the compiler plugin.
* Stop concretizing all the zipdicts in memory before even processing them. Do them one at a time, concretizing only the result. This saves time and RAM.
https://github.com/mozilla/dxr/commit/33306cde44ea862b8d9c1fc6d748aa18933b2d8b
Make "overridden" searches work, modulo deep subclassing. Ref bug 1030312.
Comment 11•11 years ago
|
||
Commit pushed to es at https://github.com/mozilla/dxr
https://github.com/mozilla/dxr/commit/e2bffb1104224c4ff67d0c84b2e2263d1ddb24ef
Make "overridden" needles take indirect inheritance into account. Ref bug 1030312.
Quit bucketting things by file. There was no point to that extra level, since qualnames are globally unique.
Comment 12•11 years ago
|
||
Commit pushed to es at https://github.com/mozilla/dxr
https://github.com/mozilla/dxr/commit/9ac6f1cb4a66f2ca086716c906d8e6dc1a01c7ed
Surface indirect overrides in "overrides" queries. Ref bug 1030312.
Build the inverse of the overriddens graph during the whole-program pass, and look at it when generating needles.
Comment 13•11 years ago
|
||
Commit pushed to es at https://github.com/mozilla/dxr
https://github.com/mozilla/dxr/commit/c11239edb12a1e3f2017e50168f02b7f1682a81e
Take C++'s implicit upcasting into account for "callers" searches. Ref bug 1030312.
Comment 14•11 years ago
|
||
Commit pushed to es at https://github.com/mozilla/dxr
https://github.com/mozilla/dxr/commit/6b5b9a73565963721948ad13e731afcc5da6348c
Make "bases" and "derived" searches work. Ref bug 1030312.
* Make some changes to the compiler plugin's "impl" handling. Eliminate the loc fields we don't need. Rename the others to be more conventional. Leave the access specifiers for now, though we're not using them.
* process_impl() is now solely a whole-program pass and builds a global class hierarchy. Remove it from the per-file pass.
* Change needles_from_graph() to uniquify its needles. Otherwise, duplicates in the inheritance graph are possible, causing the highlighter to spit out harmless but annoying empty tags.
* Delete a bunch of now-dead code, including group_loc_name, _relate, and build_inheritance.
* SingleFileTestCase.found_lines_eq() no longer requires you to provide line numbers.
* Delete several now-invalid unit tests from test_clang. test_inheritance covers it.
* Swap the names of ParentFilter and ChildFilter, which were arguably wrong.
Comment 15•11 years ago
|
||
Commit pushed to es at https://github.com/mozilla/dxr
https://github.com/mozilla/dxr/commit/9f004c51500a8b3d5851511c18bbfbcaca692de1
Redo location handling in the clang plugin and generally increase the amount of sense things make in there. Fix bug 1030312.
This gets rid of the backward and overly long extents that would come up when building moz-central.
There are a couple of minor UI issues like the Filters menu not being sorted, and the indexing needs to be optimized (as it takes about 41 hours to index moz-central atm), but we can now stage the es branch.
Updated•11 years ago
|
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Comment 16•10 years ago
|
||
Commits pushed to master at https://github.com/mozilla/dxr
https://github.com/mozilla/dxr/commit/6906ec1424401fbe5c64f3add80f5aca1a46fe0d
Change IR for clang plugin and implement call graph. Merges #291.
https://github.com/mozilla/dxr/commit/fcd0306793b3a6793381722644fcfe7c56c65690
Merge a lot of work on clang needles into es branch. Ref bug 1030312.
https://github.com/mozilla/dxr/commit/0940c8f883328e95dc72163f100a9b3cb7ae6791
Make warning and warning-opt searches work. Ref bug 1030312.
https://github.com/mozilla/dxr/commit/7e6a15ca766724eeacd7c13a2c3f09dbdeae6e9b
Make macro and macro-ref searches work. Ref bug 1030312. Fix bug 1082100.
https://github.com/mozilla/dxr/commit/6a66cca503d22c313acb865e4aec3d975134edce
Gracefully ignore corner-case lines where the loc can be determined but the extent can't. Ref bug 1030312.
https://github.com/mozilla/dxr/commit/f89d8346578fc9b0044f4496a4a5181ef5370441
Make member searches work. Ref bug 1030312.
https://github.com/mozilla/dxr/commit/dcaa41ab6bf6b28ebef4c6123e71561917589abf
Refactor condenser and add "overridden" data gathering during post-build. Ref bug 1030312.
https://github.com/mozilla/dxr/commit/33306cde44ea862b8d9c1fc6d748aa18933b2d8b
Make "overridden" searches work, modulo deep subclassing. Ref bug 1030312.
https://github.com/mozilla/dxr/commit/e2bffb1104224c4ff67d0c84b2e2263d1ddb24ef
Make "overridden" needles take indirect inheritance into account. Ref bug 1030312.
https://github.com/mozilla/dxr/commit/9ac6f1cb4a66f2ca086716c906d8e6dc1a01c7ed
Surface indirect overrides in "overrides" queries. Ref bug 1030312.
https://github.com/mozilla/dxr/commit/c11239edb12a1e3f2017e50168f02b7f1682a81e
Take C++'s implicit upcasting into account for "callers" searches. Ref bug 1030312.
https://github.com/mozilla/dxr/commit/6b5b9a73565963721948ad13e731afcc5da6348c
Make "bases" and "derived" searches work. Ref bug 1030312.
https://github.com/mozilla/dxr/commit/9f004c51500a8b3d5851511c18bbfbcaca692de1
Redo location handling in the clang plugin and generally increase the amount of sense things make in there. Fix bug 1030312.
Updated•5 years ago
|
Product: Webtools → Webtools Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•