Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

CDT/summitfall2008/Indexing Session

< CDT‎ | summitfall2008
Revision as of 11:09, 24 September 2008 by Andrew.ferguson.symbian.com (Talk | contribs) (Indexing break-out session)

Indexing break-out session

C++0x

The standard not due until around 2010. For practical purposes, nearer the end of this year. GCC plans to support this 2009. Some awareness of features in the team.

  • Name resolution
  • Index, AST modelling them

Which parser to extend? Performance/characteristics of the implementations needs to be understood.

Action: No commitment for any work for CDT 2009. Get an understanding of the standard. Start a wiki page and track the impacts of each language feature

Language Variants

Two ways of doing language variants - DOM Parser and extension objects, LPG Grammar hierarchies.

Language configurations vs Language variants - it makes more sense to have a language be configurable rather than a distinct language for each set of options. On the UI side we should consider language (C,C++,UPC) mappings, that indirect to specific languages (C89,C99,C90,C++0x,UPC). For example, the user marks files as C or C++, but can reconfigure which specific dialect is used for these. The language would instantiate a parser.

Some discussion of wanting to sync build and parser settings. Concern over the complexity.

Search-path-less Include resolution

A bunch of heuristics to guess include paths from project content. Two metrics of closeness for ambiguity resolution. Structure for hashing for include lookup for large search paths, lazily constructed.

Name resolution

Template arguments

Markus will look at modelling template arguments. Subtleties around having an index representation of values as needed for enums and const variables.

Language defines 3 types of arguments: type, non-type and template. It may be possible to model template temaplate arguments as type arguments. Values could be modelled partitioned by type-family e.g. IIntegralValue. IBasicType currently also masquerades as a value - this should be cleaned up. Template arguments can be obtained by a notion of template position (nested depth and argument ordinal).

Unknown bindings

We ma

Misc

  • we could double-buffer indexes - make current index read-only. Start a new index with new settings. Swap when done.
  • Resume of indexing between eclipse stop and start, and cancelled.

Back to the top