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

Difference between revisions of "CDT/Archive/planning/7.0"

< CDT‎ | Archive‎ | planning
(org.eclipse.cdt.dsf.gdb breaking API changes)
m (Jonah.kichwacoders.com moved page CDT/planning/7.0 to CDT/Archive/planning/7.0)
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
 +
{{warning|Note: The contents of this page refer to planning documents of past Eclipse CDT releases. See [[CDT/planning]] for current information. }}
 +
 +
[[Category:CDT:Archive]]
 +
 
Please enter your CDT 7.0 plan items here.
 
Please enter your CDT 7.0 plan items here.
  
Line 10: Line 15:
 
** Static assertions,
 
** Static assertions,
 
** Declared type of an expression.
 
** Declared type of an expression.
 +
* C++0x features supported by gcc 4.4, [https://bugs.eclipse.org/bugs/show_bug.cgi?id=302282 bug 302282].
 +
** Extending variadic template template parameters,
 +
** Initializer lists,
 +
** Auto-typed variables,
 +
** New function declarator syntax .
 +
 +
==== Changes to the AST ====
 +
* Function calls:
 +
** The arguments of a function call are represented as IASTInitializerClause[].
 +
** For function calls with more than one argument the ast no longer contains an IASTExpressionList.
 +
 +
* Initializers:
 +
** An equals initializer is represented with an IASTEqualsInitializer node.
 +
** The member of an IASTInitializerList is no longer wrapped in an IASTInitializerExpression.
 +
 +
* Enumerations:
 +
** A new scope kind for enumeration scope (EScopeKind.eEnumeration) has been added.
 +
** IBinding getOwner() for enumerators returns an enum-scope.
 +
 +
* Functional casts and compound literals:
 +
** Uniformly represented as ICPPASTSimpleTypeConstructorExpression.
 +
** The interface ICPPASTTypenameExpression is no longer used.
 +
 +
* C++ and Gnu specific constants:
 +
** Constants have been pulled up into the following base interfaces: IASTDeclSpecifier, IASTSimpleDeclSpecifier, IBasicType.
 +
** IGPPASTDeclSpecifier, IGCCASTSimpleDeclSpecifier, IGPPASTSimpleDeclSpecifier and IGPPBasicType are no longer used.
 +
 +
'''New interfaces''': IASTEqualsInitializer, IASTInitializerClause, ICPPASTArrayDeclarator, ICPPASTDeclarator, ICPPASTEnumerationSpecifier, ICPPASTFieldDeclarator, ICPPASTInitializerList, ICPPASTPackExpandable, ICPPASTPackExpansionExpression, ICPPASTStaticAssertDeclaration, ICPPASTTypeId, ICPPEnumeration, ICPPParameterPackType.
 +
 +
'''Enhanced interfaces''': IArrayType, IASTArraySubscriptExpression, IASTBinaryExpression, IASTDeclSpecifier, IASTEqualsInitializer, IASTExpression, IASTFunctionCallExpression, IASTInitializerList, IASTPreprocessorPragmaStatement, IASTReturnStatement, IASTSimpleDeclSpecifier, IASTTranslationUnit, IASTUnaryExpression, IBasicType, ICASTDesignatedInitializer, ICNodeFactory, ICPPASTConstructorChainInitializer, ICPPASTConstructorInitializer, ICPPASTExplicitTemplateInstantiation, ICPPASTFunctionDeclarator, ICPPASTNewExpression, ICPPASTParameterDeclaration, ICPPASTReferenceOperator, ICPPASTSimpleTypeConstructorExpression, ICPPASTSimpleTypeTemplateParameter, ICPPASTTemplateDeclaration, ICPPASTTemplatedTypeTemplateParameter, ICPPASTTemplateParameter, ICPPFunction, ICPPFunctionType, ICPPNodeFactory, ICPPParameter, ICPPReferenceType, ICPPTemplateArgument, ICPPTemplateInstance, ICPPTemplateParameter, ICPPTemplateParameterMap, IEnumeration, IIndex, IIndexChangeEvent, IIndexFile, IIndexManager, IName, IncludeFileContentProvider, INodeFactory, IToken.
  
 
=== Build ===
 
=== Build ===
Line 42: Line 77:
  
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=304146 bug 304146]
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=304146 bug 304146]
*** GDBControl constructor has changed from "public GDBControl(DsfSession, ILaunchConfiguration)" to "public GDBControl(DsfSession, ILaunchConfiguration, CommandFactory)"
+
** GDBControl constructor has changed from "public GDBControl(DsfSession, ILaunchConfiguration)" to "public GDBControl(DsfSession, ILaunchConfiguration, CommandFactory)"
*** GDBControl_7_0 constructor has changed from "public GDBControl_7_0(DsfSession, ILaunchConfiguration)" to "public GDBControl_7_0(DsfSession, ILaunchConfiguration, CommandFactory)"
+
** GDBControl_7_0 constructor has changed from "public GDBControl_7_0(DsfSession, ILaunchConfiguration)" to "public GDBControl_7_0(DsfSession, ILaunchConfiguration, CommandFactory)"
*** AbstractMIControl constructor has changed from "public AbstractMIControl(DsfSession, boolean)" to "public AbstractMIControl(DsfSession session, boolean, CommandFactory)"
+
** AbstractMIControl constructor has changed from "public AbstractMIControl(DsfSession, boolean)" to "public AbstractMIControl(DsfSession session, boolean, CommandFactory)"
*** The interface IGDBControl used to be defined as "public interface IGDBControl extends ICommandControlService" but has now changed to "public interface IGDBControl extends IMICommandControl" (where IMICommandControl extends ICommandControlService)
+
** The interface IGDBControl used to be defined as "public interface IGDBControl extends ICommandControlService" but has now changed to "public interface IGDBControl extends IMICommandControl" (where IMICommandControl extends ICommandControlService)
  
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=304588 bug 304588]
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=304588 bug 304588]
*** In MIVariableManager.MIVariableObject the method "public int getNumChildren()" has been renamed to "public int getNumChildrenHint()"
+
** In MIVariableManager.MIVariableObject the method "public int getNumChildren()" has been renamed to "public int getNumChildrenHint()"
  
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=305178 bug 305178]
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=305178 bug 305178]
*** In the IGDBBackend interface, a new method was added "public void interrupt(RequestMonitor rm)"
+
** In the IGDBBackend interface, a new method was added "public void interruptAndWait(int timeout, RequestMonitor rm)"
  
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=202354 bug 202354]
 
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=202354 bug 202354]
*** In the IGDBBackend interface, two new methods were added "Properties getEnvironmentVariables() throws CoreException" and "boolean getClearEnvironment() throws CoreException"
+
** In the IGDBBackend interface, two new methods were added "Properties getEnvironmentVariables() throws CoreException" and "boolean getClearEnvironment() throws CoreException"
 +
 
 +
* [https://bugs.eclipse.org/bugs/show_bug.cgi?id=305752 bug 305752]
 +
** Event Breakpoint (gdb catchpoint) constants that were in org.eclipse.cdt.debug.mi.core.cdi.model.EventBreakpoint have been moved to org.eclipse.cdt.debug.core.model.ICEventBreakpoint, and many have undergone name changes for consistency reasons.

Latest revision as of 13:50, 22 January 2020

Warning2.png
Note: The contents of this page refer to planning documents of past Eclipse CDT releases. See CDT/planning for current information.

Please enter your CDT 7.0 plan items here.

Parser/Indexer/Editor

  • Arithmetic conversions for binary and unary expressions, bug 231859.
  • C++0x features supported by gcc 4.3, bug 294730.
    • Variadic templates,
    • Right angle brackets,
    • Default template arguments for function templates,
    • Rvalue references,
    • Static assertions,
    • Declared type of an expression.
  • C++0x features supported by gcc 4.4, bug 302282.
    • Extending variadic template template parameters,
    • Initializer lists,
    • Auto-typed variables,
    • New function declarator syntax .

Changes to the AST

  • Function calls:
    • The arguments of a function call are represented as IASTInitializerClause[].
    • For function calls with more than one argument the ast no longer contains an IASTExpressionList.
  • Initializers:
    • An equals initializer is represented with an IASTEqualsInitializer node.
    • The member of an IASTInitializerList is no longer wrapped in an IASTInitializerExpression.
  • Enumerations:
    • A new scope kind for enumeration scope (EScopeKind.eEnumeration) has been added.
    • IBinding getOwner() for enumerators returns an enum-scope.
  • Functional casts and compound literals:
    • Uniformly represented as ICPPASTSimpleTypeConstructorExpression.
    • The interface ICPPASTTypenameExpression is no longer used.
  • C++ and Gnu specific constants:
    • Constants have been pulled up into the following base interfaces: IASTDeclSpecifier, IASTSimpleDeclSpecifier, IBasicType.
    • IGPPASTDeclSpecifier, IGCCASTSimpleDeclSpecifier, IGPPASTSimpleDeclSpecifier and IGPPBasicType are no longer used.

New interfaces: IASTEqualsInitializer, IASTInitializerClause, ICPPASTArrayDeclarator, ICPPASTDeclarator, ICPPASTEnumerationSpecifier, ICPPASTFieldDeclarator, ICPPASTInitializerList, ICPPASTPackExpandable, ICPPASTPackExpansionExpression, ICPPASTStaticAssertDeclaration, ICPPASTTypeId, ICPPEnumeration, ICPPParameterPackType.

Enhanced interfaces: IArrayType, IASTArraySubscriptExpression, IASTBinaryExpression, IASTDeclSpecifier, IASTEqualsInitializer, IASTExpression, IASTFunctionCallExpression, IASTInitializerList, IASTPreprocessorPragmaStatement, IASTReturnStatement, IASTSimpleDeclSpecifier, IASTTranslationUnit, IASTUnaryExpression, IBasicType, ICASTDesignatedInitializer, ICNodeFactory, ICPPASTConstructorChainInitializer, ICPPASTConstructorInitializer, ICPPASTExplicitTemplateInstantiation, ICPPASTFunctionDeclarator, ICPPASTNewExpression, ICPPASTParameterDeclaration, ICPPASTReferenceOperator, ICPPASTSimpleTypeConstructorExpression, ICPPASTSimpleTypeTemplateParameter, ICPPASTTemplateDeclaration, ICPPASTTemplatedTypeTemplateParameter, ICPPASTTemplateParameter, ICPPFunction, ICPPFunctionType, ICPPNodeFactory, ICPPParameter, ICPPReferenceType, ICPPTemplateArgument, ICPPTemplateInstance, ICPPTemplateParameter, ICPPTemplateParameterMap, IEnumeration, IIndex, IIndexChangeEvent, IIndexFile, IIndexManager, IName, IncludeFileContentProvider, INodeFactory, IToken.

Build

  • Error highlighting and navigation in Build Console bug 295625
  • Saving build output into a file from CDT console, bug 294106
  • Generic user-configurable Regex Error Parser bug 109139
  • Run last make target key binding bug 69922

Debug

  • Tracepoints will be added to the CDT, with support from the DSF-GDB integration. Details and screen-shots can be found at this wiki page. The development effort is being tracked by bug 284286.

Other

API Changes

  • Adding API tooling tags @noextend, @noimplement, @noinstantiate to all classes of org.eclipse.cdt.make.* and org.eclipse.cdt.managedbuilder.* where comments do not indicate otherwise, see bug 301373.

org.eclipse.cdt.dsf.gdb breaking API changes

  • bug 302315
    • Removed Deprecated synchronous interfaces
      • org.eclipse.cdt.dsf.gdb.actions.IReverseStepOverHandler
      • org.eclipse.cdt.dsf.gdb.actions.IReverseStepIntoHandler
      • org.eclipse.cdt.dsf.gdb.actions.IReverseResumeHandler
      • org.eclipse.cdt.dsf.gdb.actions.IReverseToggleHandler
      • org.eclipse.cdt.dsf.gdb.actions.IUncallHandler
    • These have been replaced by asynchronous interfaces
      • org.eclipse.cdt.debug.core.model.IReverseStepOverHandler
      • org.eclipse.cdt.debug.core.model.IReverseStepIntoHandler
      • org.eclipse.cdt.debug.core.model.IReverseResumeHandler
      • org.eclipse.cdt.debug.core.model.IReverseToggleHandler
      • org.eclipse.cdt.debug.core.model.IUncallHandler
  • bug 304146
    • GDBControl constructor has changed from "public GDBControl(DsfSession, ILaunchConfiguration)" to "public GDBControl(DsfSession, ILaunchConfiguration, CommandFactory)"
    • GDBControl_7_0 constructor has changed from "public GDBControl_7_0(DsfSession, ILaunchConfiguration)" to "public GDBControl_7_0(DsfSession, ILaunchConfiguration, CommandFactory)"
    • AbstractMIControl constructor has changed from "public AbstractMIControl(DsfSession, boolean)" to "public AbstractMIControl(DsfSession session, boolean, CommandFactory)"
    • The interface IGDBControl used to be defined as "public interface IGDBControl extends ICommandControlService" but has now changed to "public interface IGDBControl extends IMICommandControl" (where IMICommandControl extends ICommandControlService)
  • bug 304588
    • In MIVariableManager.MIVariableObject the method "public int getNumChildren()" has been renamed to "public int getNumChildrenHint()"
  • bug 305178
    • In the IGDBBackend interface, a new method was added "public void interruptAndWait(int timeout, RequestMonitor rm)"
  • bug 202354
    • In the IGDBBackend interface, two new methods were added "Properties getEnvironmentVariables() throws CoreException" and "boolean getClearEnvironment() throws CoreException"
  • bug 305752
    • Event Breakpoint (gdb catchpoint) constants that were in org.eclipse.cdt.debug.mi.core.cdi.model.EventBreakpoint have been moved to org.eclipse.cdt.debug.core.model.ICEventBreakpoint, and many have undergone name changes for consistency reasons.

Back to the top