Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

CDT/Obsolete/APIBreakages

< CDT‎ | Obsolete
Warning2.png
Note: The contents of this page is obsolete. The API Breakages that did happen are documented in CDT/User/NewIn90

CDT 9.0

This page is attempt to collect possible API breaking proposals for next CDT release

Proposed API-breaking changes

  • Remove all methods, interfaces and classes that have been deprecated since around 2 years CDT 8.?.0 and are not currently used in CDT code.
    • Marc K to do the DSF/DSF-GDB part. This was done, although maybe not 100%
    • Improves readability
    • Reduces maintenance
    • Could be contributions from a hackathon
    • Suggested rules (not mandatory): something deprecated for around 2 years and not used by CDT itself
      • EclipeCon2016 update: Some of this cleanup has been done but not extensively.
  • Remove support for old Apple GDB. Done
  • Delete CDI plugins Done by a contribution from Jonah
    • Clean up CApplicationLaunchShortcut to no longer chooseDebugConfig() which is a CDI concept Marc will look at that
      • EclipeCon2016 update: Can be done once CDI is removed. Not requiring API-breakage
  • Cleanup old-style projects Marc-Andre will head this
    • EclipeCon2016 update: Marc-Andre has a patch he will try to complete
    • Our tests still use old-style and migrating them is not trivial
      • EclipeCon2016 update: These tests are essential and migrating them will take time. Will not happen.
    • Remove code that migrates from .cdtproject (pre CDT 4.0)
      • EclipeCon2016 update: Can be done. Maybe Marc-Andre?
    • Removing UI that is not used
    • EclipeCon2016 update: Can be done. Marc-Andre will have a look.
  • Old scanner discovery (Language setting provider)
    • At least we should not show both in the UI to a user
      • EclipeCon2016 update: Doug will remove the element from the UI
  • What about LR parser?
    • Need to follow-up with IBM
    • UPC, XLC plugins may need them, which are used by PTP
    • Can we move it to PTP?
      • EclipeCon2016 update: Doug is following-up here
  • p2 plugin Has been removed
  • o.e.cdt.core.native (Spawner) Doug
    • Used by o.e.remote but CDT uses o.e.remote => circular
    • Spawner should be moved lower than CDT. Where? Maybe in CDT but be independent. That still solves 'circular' dependency.
    • native should have its own pom/build
      • EclipeCon2016 update: Want to move to a IDE Commons project. Until then, we can just split the build. Not requiring API-breakage
  • Remove IA64, QNX as they are not available from platform Done
  • Remove o.e.linuxtools.cdt.autotools.core Jeff
    • EclipeCon2016 update: Done
  • Merge cross-GCC with regular-GCC
    • EclipeCon2016 update: Won't have time
  • Cleanup/Rename CDI* classes used by DSF Marc K
    • EclipeCon2016 update: Keep old classes but make then stubs that point to a properly named set of classes. Non API-breaking
  • C/C++ Problem Markers - add API to deal with column information Alena
    • EclipeCon2016 update: We believe this was done
  • Rewrite error parsers to use a better regex library (java.regex.Pattern is part of API now) because build is horribly slow from IDE strictly because of error parsers. Doug, as part of the new build effort
    • Need to fix API
    • Be careful with performance
      • EclipeCon2016 update: Won't have time
  • Rewrite ui for debug tabs, all current ui controls are APIs...
    • Check with list if anyone is against such changes
      • EclipeCon2016 update: Won't have time
  • Java 8 changes Ok for CDT plugins to use Java 8. Migration of each plugin when/if needed
    • EclipeCon2016 update: Would be nice to move all plugins. Let's write a script to do this whenever we need for different java versions. Non API-breaking.
  • Make (some) dsf.ui and dsf.gdb.ui classes as API.
    • Pay attention to good extensibility for some of these classes. Probably best to makes changes to address specific use-cases
    • We will only do this upon request and if there is a good reason
        • EclipeCon2016 update: No request, not done.
  • Separate the Run launch delegate into its own delegate. The Run delegate should use LocalRunLaunchDelegate.java instead of LocalCDILaunchDelegate.java Done
  • In the debugger, make thread a string instead of an integer. GDB may move to use strings. See IMIExecutionDMContext Done by Alvaro
  • MIBreakpoint MI uses an int as an id. It should be a string. Done by Marc Dumais
  • Changes for Grouping feature and its use of IContainer... Containers may no longer be directly mapped to processes. Marc
      • EclipeCon2016 update: Grouping feature still under development. Don't know what needs to be done about this yet.
  • Replace IRunControl.isStepping() and IRunConrol.isSuspended() with asynchronous versions???
      • EclipeCon2016 update: Unclear if needed until Grouping feature completed. Not going to be done
  • Revisit the CDT Breakpoint action framework Mikhail
      • EclipeCon2016 update: No time for this one.
  • Bug 302305 - Migrate Move to Line and Resume At Line actions to use the asynchronous DebugCommandAction No time
  • Bug 489398 - Support memory spaces in IExpressionDMAdress Alvaro used default methods. No longer API breaking
  • Bug 489501 - [memory] Add API to resolve the default memory space id Alvaro used default methods. No longer API breaking

Proposed process

  1. Mark classes that will disappear as Deprecated. Can we do it on the Package? Maybe using javadoc. Do this ASAP to warn people.
  2. Select an API-breaking change to work on
  3. Estimate the impact (code changes) of the change on the APIs
  4. Communicate that impact to the cdt-dev list to notify possible impacted parties

Back to the top