1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-31 21:05:37 +02:00

Migrate API changelog from HTML into Markdown

Managing the API changelog in HTML has been rather burdensome, getting
the formatting correct and doing things like having numbered lists
added unneeded burden to the process.

This change moves all the old content to markdown and
places it prominently next to the other NewAndNoteworthy content.

Also included here is some fine tuning to the related documentation
about API.

Part of #32
This commit is contained in:
Jonah Graham 2022-10-09 07:32:01 -04:00
parent 06c8b01d83
commit 7adcdbe7d9
5 changed files with 612 additions and 596 deletions

View file

@ -10,6 +10,10 @@ This is the New & Noteworthy page for CDT 11.0 which is part of Eclipse 2022-12
Jave 17 is now required to build and run Eclipse CDT. See https://github.com/eclipse-cdt/cdt/issues/80
# API Changes, current and planned
Please see [CHANGELOG-API](CHANGELOG-API.md) for details on the breaking API changes in this release as well as future planned API changes.
# Bugs Fixed in this Release
See [GitHub milestones](https://github.com/eclipse-cdt/cdt/milestone/2?closed=1) and for bugs that haven't been transitioned to GitHub please see Bugzilla report [Bugs Fixed in CDT 11.0](https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&classification=Tools&product=CDT&query_format=advanced&resolution=FIXED&target_milestone=11.0.0).

View file

@ -0,0 +1,592 @@
# Eclipse CDT Deprecated and Breaking API changes and removals
Deprecated API can be marked for deletion without requiring a major version increment.
See the [policy](../POLICY.md) for the details.
This section describes API removals that occurred in past releases, and upcoming removals in future releases.
# API Changes
## API Changes in CDT 11.0
- [org.eclipse.cdt.ui.newui.AbstractPage reduced visibility of many
fields](#newUIAbstractPage)
## API Changes in CDT 10.5.0
- [Package org.eclipse.cdt.cmake.is.core.participant has been renamed
to org.eclipse.cdt.jsoncdb.core.participant.](#jsoncdb)
## API Changes in CDT 10.0.
- [Eclipse CDT requires Java 11 as a minimum to build and run.](#java11)
- [Some deprecated methods and classes have been removed.](#deprecatedRemovals)
- [Previously exported packages that were not API are now correctly marked as such.](#internals)
- [Activators removed for all bundles where possible.](#activators)
- [NewClassCreationWizardPage breaking changes.](#NewClassCreationWizardPage)
- [Arduino plug-ins and features removed.](#arduino)
- [Remove LRParser, XLC and UPC.](#oldparsers)
- [Remove org.eclipse.cdt.utils.Platform.](#cdtutilsPlatform)
- [DSF and DSF-GDB API Changes.](#dsf)
- [Partial removal of CDT 3.X project support.](#oldStyleProjects)
- [Removal of CDT Core Options API.](#optionsAPI)
- [TM Terminal has major changes to support new color and preference functionality.](#terminal)
- [Environment Variables are always case sensitive in CDT.](#casesensitive)
- [Environment variables no longer support \\${ to avoid expanding.](#escaping)
- [The binary parsers are now implement Autocloseable](#autocloseable)
- [ICPPASTDeductionGuide and ICPPASTParameterListOwner removed in CDT 10.0.1](#deductionremovedin10.0.0)
# Planned API Changes
The items below can be removed after the given date or on a major release, whichever is sooner.
The details and discussion on the removal happens in the GitHub issue (or Bugzilla) associated with the entry below.
See the [policy](../POLICY.md) for the details.
## Planned Removals after June 2022 or on a major version of Eclipe CDT.
- [32-bit Binary parsers with 64-bit replacements](#binaryparsers)
- [BaudRate enum in org.eclipse.cdt.serial](#baudrate)
## Planned Removals after June 2023 or on a major version of Eclipe CDT.
- [Rework of API to determine GDB command line in org.eclipse.cdt.dsf.gdb](#gdbBackendDebuggerCommandLine)
- [Add ITool parameter to ManagedCommandLineGenerator.toManagedCommandLineInfo](#ManagedCommandLineGenerator.toManagedCommandLineInfo)
- [Removed unneded boolean from function](#GnuMakefileGenerator.addRuleForTool)
- [Changed methods from static to non-static](#GnuMakefileGenerator.addDefaultHeader)
## Planned Removals after December 2023 or on a major version of Eclipe CDT.
- [GnuMakefileGenerator is no longer part of API](#GnuMakefileGeneratorAPI)
- [The Spawner signal constants are nolonger API](#Spawner.signals)
## Planned Removals after March 2024 or on a major version of Eclipe CDT.
- [java.util.regex.Matcher use in JSONCDB API will be removed](#ArgletsMatcher)
## Planned Removals after June 2024 or on a major version of Eclipe CDT.
- [java.util.regex.Matcher use in JSONCDB API will be removed](#ArgletsMatcher2)
- [Misnamed class BuiltinDetctionArgsGeneric will be removed](#BuiltinDetctionArgsGeneric)
## API Changes prior to CDT 10.0 / 2020-09.
Prior to CDT 10 release API changes were published as part of the [New and Noteworthy](README.md) entries for
that release.
From CDT 10 forward breaking API changes are included in this document.
---
# Details
Below is the detailed descriptions of API changes and mitigation efforts API consumers need to take.
## API Changes in CDT 11.0.
### <span id="newUIAbstractPage">org.eclipse.cdt.ui.newui.AbstractPage reduced visibility of many fields</span>
The following fields have been be removed from the API of
org.eclipse.cdt.ui.newui.AbstractPage as they were never intended to be
accessible by the design. As far as the current CDT developers know, no
one was using this API.
- org.eclipse.cdt.ui.newui.AbstractPage.noContentOnPage
- org.eclipse.cdt.ui.newui.AbstractPage.displayedConfig
- org.eclipse.cdt.ui.newui.AbstractPage.internalElement
- org.eclipse.cdt.ui.newui.AbstractPage.isProject
- org.eclipse.cdt.ui.newui.AbstractPage.isFolder
- org.eclipse.cdt.ui.newui.AbstractPage.isFile
- org.eclipse.cdt.ui.newui.AbstractPage.folder
- org.eclipse.cdt.ui.newui.AbstractPage.itabs
- org.eclipse.cdt.ui.newui.AbstractPage.currentTab
In addition, the following inner class has been removed from the API.
- org.eclipse.cdt.ui.newui.AbstractPage.InternalTab
See [Bug 579666](https://bugs.eclipse.org/bugs/show_bug.cgi?id=579666).
---
## API Changes in CDT 10.5.0.
### <span id="jsoncdb">Package org.eclipse.cdt.cmake.is.core.participant has been renamed to org.eclipse.cdt.jsoncdb.core.participant.</span>
Affects CMake build, indexer support.
Package org.eclipse.cdt.cmake.is.core.participant was inadvertently not marked as experimental.
Third-party compiler vendors that provide a plugin teaching Eclipse CDT their compiler specific command-line options will have to update the import statements in their plugin's code.
See [Bug 564349](https://bugs.eclipse.org/bugs/show_bug.cgi?id=564349).
---
## API Changes in CDT 10.0.
### <span id="java11">Eclipse CDT requires Java 11 as a minimum to build and run.</span>
Java 11 or greater is required for CDT. This means that the BREE for all
CDT bundles is now Java 11. See
[Bug 562494](https://bugs.eclipse.org/bugs/show_bug.cgi?id=562494).
The previous workaround for single-sourcing Java 8 and Java 11 has been
removed. This means the org.eclipse.tools.templates.freemarker.java11
bundle fragment has been removed. See
[Bug 563494](https://bugs.eclipse.org/bugs/show_bug.cgi?id=563494).
### <span id="deprecatedRemovals">Some deprecated methods and classes have been removed.</span>
Across the CDT code base some previously deprecated code has been
removed.
- EnvironmentReader.getRawEnvVars has been removed. Use
EnvironmentReader.getEnvVars instead. See
[Bug 564123](https://bugs.eclipse.org/bugs/show_bug.cgi?id=564123).
- GDBJtagStartupTab.createRunOptionGroup has been removed. Override
GDBJtagStartupTab.createRunGroup instead. See
[Bug 566462](https://bugs.eclipse.org/bugs/show_bug.cgi?id=566462).
- IGDBJtagConstants.ATTR_JTAG_DEVICE has been removed. Use
IGDBJtagConstants.ATTR_JTAG_DEVICE_ID to persist device ID rather
than device name. See
[Bug 566462](https://bugs.eclipse.org/bugs/show_bug.cgi?id=566462).
- IGDBJtagConstants.DEFAULT_JTAG_DEVICE has been removed. Use a
local String if necessary. See
[Bug 566462](https://bugs.eclipse.org/bugs/show_bug.cgi?id=566462).
- IGDBJtagConstants.DEFAULT_JTAG_DEVICE_ID has been removed. Use a
local String if necessary. See
[Bug 566462](https://bugs.eclipse.org/bugs/show_bug.cgi?id=566462).
- IGDBJtagDevice.getDefaultIpAddress has been removed. Implement
IGDBJtagConnection and specify default_connection in JTagDevice
extension XML instead. See
[Bug 566462](https://bugs.eclipse.org/bugs/show_bug.cgi?id=566462).
- IGDBJtagDevice.getDefaultPortNumber has been removed. Implement
IGDBJtagConnection and specify default_connection in JTagDevice
extension XML instead. See
[Bug 566462](https://bugs.eclipse.org/bugs/show_bug.cgi?id=566462).
- IGDBJtagDevice.doRemote has been removed. Implement
IGDBJtagConnection.doRemote instead. See
[Bug 566462](https://bugs.eclipse.org/bugs/show_bug.cgi?id=566462).
- PTY constructor PTY(boolean console) has been removed. Use PTY(Mode
mode) instead.
- org.eclipse.cdt.core.browser.PathUtil has been removed. Use
org.eclipse.cdt.utils.PathUtil instead. See
[Bug 564123](https://bugs.eclipse.org/bugs/show_bug.cgi?id=564123).
- org.eclipse.cdt.launch.ui.CMainTab has been removed. This was part
of the long since removed CDI and has no use. See
[Bug 566530](https://bugs.eclipse.org/bugs/show_bug.cgi?id=566530).
- org.eclipse.cdt.launch.ui.CMainCoreTab has been removed. This was
part of the long since removed CDI and has no use. See
[Bug 566530](https://bugs.eclipse.org/bugs/show_bug.cgi?id=566530).
- org.eclipse.cdt.launch.ui.CMainAttachTab has been removed. This was
part of the long since removed CDI and has no use. See
[Bug 566530](https://bugs.eclipse.org/bugs/show_bug.cgi?id=566530).
### <span id="internals">Previously exported packages that were not API are now correctly marked as such.</span>
A review of the previously exported API of CDT was performed. A lot of
what was previously marked as public API has now been marked as
internal. This means the API has either had `x-internal` or `x-friends`
added to the `Export-Package` declarations.
The following bundles have had all their packages exported as internal
See [Bug 561389](https://bugs.eclipse.org/bugs/show_bug.cgi?id=561389):
- org.eclipse.cdt.cmake.ui
- org.eclipse.cdt.autotools.core
- org.eclipse.cdt.core.autotools.core
- org.eclipse.cdt.core.autotools.ui
- org.eclipse.cdt.autotools.tests
- org.eclipse.cdt.autotools.ui.tests
- org.eclipse.cdt.build.crossgcc
- org.eclipse.cdt.cmake.ui
- org.eclipse.cdt.build.gcc.core
- org.eclipse.cdt.build.gcc.ui
- org.eclipse.cdt.codan.checkers.ui.tests
- org.eclipse.tools.templates.ui
The following bundles had additional changes made to be able to mark
packages as internal:
<!-- end list -->
### <span id="activators">Activators removed for all bundles where possible.</span>
Where possible bundles have had their Activators removed. Some of these
activators were API and are no longer available. See
[Bug 561635](https://bugs.eclipse.org/bugs/show_bug.cgi?id=561635) for
workarounds where items that used to be in Activators are still needed,
such as logging and plug-ids.
The following Activators that were API have been removed.
- org.eclipse.tools.templates.ui
### <span id="NewClassCreationWizardPage">NewClassCreationWizardPage breaking changes.</span>
The NewClassCreationWizardPage has some API breaking changes due to how
some protected fields, especially `ALL_FIELDS` was used. While this
breaks binary compatibility, no code changes should be needed in
extenders, just compiling against the new version. See
[Bug 510789](https://bugs.eclipse.org/bugs/show_bug.cgi?id=510789) and
[Bug 561770](https://bugs.eclipse.org/bugs/show_bug.cgi?id=561770).
### <span id="arduino">Arduino plug-ins and features removed.</span>
The CDT Arduino plug-ins and features have been removed. Arduino can
still be used with CDT with manual maintenance of packages, etc. Or a
third-party add-on such as [Sloeber](https://eclipse.baeyens.it/) can be
used as a replacement.
The bundles and features that have been removed are:
- org.eclipse.cdt.arduino-feature
- org.eclipse.cdt.arduino.core.tests
- org.eclipse.cdt.arduino.core
- org.eclipse.cdt.arduino.ui
See [Bug 562498](https://bugs.eclipse.org/bugs/show_bug.cgi?id=562498).
### <span id="oldparsers">Remove LRParser, XLC and UPC.</span>
The LR, UPC and XLC support have been removed from CDT. The bundles have
not been maintained for a while and were not functional anymore.
The bundles and features that have been removed are:
- org.eclipse.cdt.core.lrparser.feature
- org.eclipse.cdt.core.lrparser.sdk.branding
- org.eclipse.cdt.core.lrparser.sdk.feature
- org.eclipse.cdt.core.lrparser.tests
- org.eclipse.cdt.core.lrparser
- org.eclipse.cdt.bupc-feature
- org.eclipse.cdt.core.parser.upc.feature
- org.eclipse.cdt.core.parser.upc.sdk.branding
- org.eclipse.cdt.core.parser.upc.sdk.feature
- org.eclipse.cdt.core.parser.upc.tests
- org.eclipse.cdt.core.parser.upc
- org.eclipse.cdt.managedbuilder.bupc.ui
- org.eclipse.cdt.core.lrparser.xlc.tests
- org.eclipse.cdt.core.lrparser.xlc
- org.eclipse.cdt.errorparsers.xlc.tests
- org.eclipse.cdt.errorparsers.xlc
- org.eclipse.cdt.make.xlc.core
- org.eclipse.cdt.managedbuilder.xlc.core
- org.eclipse.cdt.managedbuilder.xlc.ui
- org.eclipse.cdt.managedbuilder.xlupc.ui
- org.eclipse.cdt.xlc.feature
- org.eclipse.cdt.xlc.sdk-feature
- org.eclipse.cdt.xlc.sdk.branding
See [Bug 562498](https://bugs.eclipse.org/bugs/show_bug.cgi?id=562498).
### <span id="cdtutilsPlatform">Remove org.eclipse.cdt.utils.Platform.</span>
Class org.eclipse.cdt.utils.Platform has been removed. Use
org.eclipse.core.runtime.Platform instead.
See [Bug 564123](https://bugs.eclipse.org/bugs/show_bug.cgi?id=564123).
### <span id="dsf">DSF and DSF-GDB API Changes</span>
DSF and DSF-GDB have had some small API changes, but they are still
breaking changes and are listed here:
- org.eclipse.cdt.dsf.gdb.launching.GdbLaunchDelegate.getCLILabel(ILaunchConfiguration,
String) has been removed. Use
org.eclipse.cdt.dsf.gdb.launching.GdbLaunchDelegate.getCLILabel(GdbLaunch,
ILaunchConfiguration, String) instead. See
[Bug 564553](https://bugs.eclipse.org/bugs/show_bug.cgi?id=564553).
### <span id="oldStyleProjects">Partial removal of CDT 3.X project support</span>
CDT 3.X projects have been deprecated since CDT 4.0. Some classes
supporting this old version have been removed:
- org.eclipse.cdt.make.ui.wizards.ConvertToMakeProjectWizard
- org.eclipse.cdt.make.ui.wizards.ConvertToMakeProjectWizardPage
- org.eclipse.cdt.make.ui.wizards.MakeProjectWizardOptionPage
- org.eclipse.cdt.make.ui.wizards.NewMakeCCProjectWizard
- org.eclipse.cdt.make.ui.wizards.NewMakeCProjectWizard
- org.eclipse.cdt.make.ui.wizards.NewMakeProjectWizard
See [Bug 564949](https://bugs.eclipse.org/bugs/show_bug.cgi?id=564949).
### <span id="optionsAPI">Removal of CDT Core Options API</span>
The CDT Core Options API and implementation has been removed as now it
is a part of Eclipse Equinox 4.16 Preferences API, the removed packages
are:
- org.eclipse.cdt.core.options
- org.eclipse.cdt.internal.core.options
See [Bug 565154](https://bugs.eclipse.org/bugs/show_bug.cgi?id=565154).
### <span id="terminal">TM Terminal has major changes to support new color and preference functionality.</span>
The TM Terminal's control (org.eclipse.tm.terminal.control) bundle has a
major new version to support numerous API changes to support features
such as new colors, preference sharing and some other code clean-up.
- org.eclipse.tm.terminal.model.Style removed and is mostly replaced
by org.eclipse.tm.terminal.model.TerminalStyle. To handle new API
and color handling, the entire Style class was replaced with
TerminalStyle that operates in a similar way. Because some methods
in TerminalStyle have similar signatures to those in removed Style
class a new class was introduced to prevent accidental use of
incorrect API. See
[Bug 562495](https://bugs.eclipse.org/bugs/show_bug.cgi?id=549697).
- org.eclipse.tm.terminal.model.StyleColor removed. Replaced by a new
way of representing standard color in the terminal using the new
enum org.eclipse.tm.terminal.model.TerminalColor.. See
[Bug 562495](https://bugs.eclipse.org/bugs/show_bug.cgi?id=549697).
- org.eclipse.tm.terminal.model.ITerminalTextData method taking or
returning Style now use TerminalStyle. See
[Bug 562495](https://bugs.eclipse.org/bugs/show_bug.cgi?id=549697).
- org.eclipse.tm.terminal.model.ITerminalTextDataReadOnly method
taking or returning Style now use TerminalStyle. See
[Bug 562495](https://bugs.eclipse.org/bugs/show_bug.cgi?id=549697).
- org.eclipse.tm.terminal.model.LineSegment method taking or returning
Style now use TerminalStyle. See
[Bug 562495](https://bugs.eclipse.org/bugs/show_bug.cgi?id=549697).
### <span id="casesensitive">Environment Variables are always case sensitive in CDT.</span>
The handling of environment and build variables in CDT has changed to
being case sensitive. This means some API changes to remove methods such
as isVariableCaseSensitive (see full list below). The PATH and dome
other special environment variables in CDT are always uppercased, such
as Path. See
[Bug 564123](https://bugs.eclipse.org/bugs/show_bug.cgi?id=564123).
- org.eclipse.cdt.managedbuilder.core.IBuilder.isVariableCaseSensitive()
removed.
- org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider.isVariableCaseSensitive()
removed.
- org.eclipse.cdt.core.envvar.IEnvironmentVariableManager.isVariableCaseSensitive()
removed.
### <span id="escaping">Environment variables no longer support \\${ to avoid expanding.</span>
This change is not literally an api change but will impact your code if
you used \\${ to not expand environment variables. It may impact your
code if you import environment variables and had to workaround
path\\${childPath} resolving to path${childPath}. See
[Bug 560330](https://bugs.eclipse.org/bugs/show_bug.cgi?id=560330).
- org.eclipse.cdt.managedbuilder.core.IBuilder.isVariableCaseSensitive()
removed.
- org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider.isVariableCaseSensitive()
removed.
- org.eclipse.cdt.core.envvar.IEnvironmentVariableManager.isVariableCaseSensitive()
removed.
### <span id="autocloseable">The binary parsers are now implement AutoCloseable</span>
The binary parsers part of CDT core now implement the AutoCloseable
interface and can be used in try-with-resources blocks. See list below
for all the classes that are now AutoCloseable. See
[Bug 553674](https://bugs.eclipse.org/bugs/show_bug.cgi?id=553674).
- org.eclipse.cdt.utils.coff.Exe
- org.eclipse.cdt.utils.coff.PE
- org.eclipse.cdt.utils.coff.PE64
- org.eclipse.cdt.utils.coff.PEArchive
- org.eclipse.cdt.utils.elf.Elf
- org.eclipse.cdt.utils.elf.ElfHelper
- org.eclipse.cdt.utils.AR
- org.eclipse.cdt.utils.elf.AR
- org.eclipse.cdt.utils.som.AR
- org.eclipse.cdt.utils.xcoff.AR
- org.eclipse.cdt.utils.macho.AR
### <span id="deductionremovedin10.0.0">ICPPASTDeductionGuide and ICPPASTParameterListOwner removed in CDT 10.0.1</span>
Classes org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeductionGuide and
org.eclipse.cdt.core.dom.ast.cpp.ICPPASTParameterListOwner which were
added for CDT 10.0.0 have been removed in CDT 10.0.1. See
[Bug 567261](https://bugs.eclipse.org/bugs/show_bug.cgi?id=567261).
---
# Future Deletions
The items below can be removed after the given date or on a major release, whichever is sooner.
The details and discussion on the removal happens in the GitHub issue (or Bugzilla) associated with the entry below.
See the [policy](../POLICY.md) for the details.
## API Removals after June 2022
### <span id="binaryparsers">32-bit Binary parsers with 64-bit replacements</span>
The following binary parser classes have replacements, mostly due to
these versions not supporting 64-bit variants of the binary files. The
new 64-bit parsers support both 32 and 64 bit files.
- org.eclipse.cdt.utils.coff.parser.CygwinPEBinaryArchive
- org.eclipse.cdt.utils.coff.parser.CygwinPEBinaryExecutable
- org.eclipse.cdt.utils.coff.parser.CygwinPEBinaryObject
- org.eclipse.cdt.utils.coff.parser.CygwinPEBinaryShared
- org.eclipse.cdt.utils.coff.parser.CygwinPEParser
- org.eclipse.cdt.utils.coff.parser.CygwinSymbol
- org.eclipse.cdt.utils.coff.parser.PEBinaryArchive
- org.eclipse.cdt.utils.coff.parser.PEBinaryExecutable
- org.eclipse.cdt.utils.coff.parser.PEBinaryObject
- org.eclipse.cdt.utils.coff.parser.PEBinaryShared
- org.eclipse.cdt.utils.coff.parser.PEParser
- org.eclipse.cdt.utils.macho.parser.MachOBinaryArchive
- org.eclipse.cdt.utils.macho.parser.MachOBinaryExecutable
- org.eclipse.cdt.utils.macho.parser.MachOBinaryObject
- org.eclipse.cdt.utils.macho.parser.MachOBinaryShared
- org.eclipse.cdt.utils.macho.parser.MachOParser
See [Bug 562495](https://bugs.eclipse.org/bugs/show_bug.cgi?id=562495).
### <span id="baudrate">BaudRate enum in org.eclipse.cdt.serial</span>
The BaudRate enum in org.eclipse.cdt.serial package will be removed. The
following APIs will be removed, listed with their replacement.
- org.eclipse.cdt.serial.BaudRate, use
org.eclipse.cdt.serial.StandardBaudRates to obtain typical baud rate
values
- org.eclipse.cdt.serial.SerialPort.setBaudRate(BaudRate), use
org.eclipse.cdt.serial.SerialPort.setBaudRateValue(int) instead
- org.eclipse.cdt.serial.SerialPort.getBaudRate(), use
org.eclipse.cdt.serial.SerialPort.getBaudRateValue() instead
- org.eclipse.tm.terminal.connector.cdtserial.connector.SerialSettings.getBaudRate(),
use
org.eclipse.tm.terminal.connector.cdtserial.connector.SerialSettings.getBaudRateValue()
instead
- org.eclipse.tm.terminal.connector.cdtserial.connector.SerialSettings.setBaudRate(BaudRate),
use
org.eclipse.tm.terminal.connector.cdtserial.connector.SerialSettings.setBaudRateValue(int)
instead
See [Bug 563108](https://bugs.eclipse.org/bugs/show_bug.cgi?id=563108).
## API Removals after June 2023
### <span id="gdbBackendDebuggerCommandLine">Rework of API to determine GDB command line in org.eclipse.cdt.dsf.gdb</span>
To support presentation of the GDB command line within the process
property page, a public method getDebuggerCommandLineArray() has been
added to the org.eclipse.cdt.dsf.gdb.service.IGDBBackend interface and
the following redundant protected methods will be removed:
- org.eclipse.cdt.dsf.gdb.service.GDBBackend.getDebuggerCommandLine()
- org.eclipse.cdt.dsf.gdb.service.GDBBackend.getGDBCommandLineArray()
Extenders that override the above protected methods should override
org.eclipse.cdt.dsf.gdb.service.IGDBBackend.getDebuggerCommandLineArray()
instead.
See [Bug 572944](https://bugs.eclipse.org/bugs/show_bug.cgi?id=572944).
### <span id="ManagedCommandLineGenerator.toManagedCommandLineInfo">Add ITool parameter to ManagedCommandLineGenerator.toManagedCommandLineInfo</span>
To allow extenders to know the context of a generated command line, the
ITool instance was added to
ManagedCommandLineGenerator.toManagedCommandLineInfo method and the
method without the ITool parameter will be removed:
- org.eclipse.cdt.managedbuilder.core.ManagedCommandLineGenerator.toManagedCommandLineInfo(String,
String, String, String\[\], String, String, String, String\[\])
Extenders that override the above protected method should override
org.eclipse.cdt.managedbuilder.core.ManagedCommandLineGenerator.toManagedCommandLineInfo(ITool,
String, String, String, String\[\], String, String, String, String\[\])
instead.
See [Bug 573254](https://bugs.eclipse.org/bugs/show_bug.cgi?id=573254).
### <span id="GnuMakefileGenerator.addRuleForTool">Removed unneded boolean from function</span>
The implementation for how post-build steps are generated was changed.
The "bEmitPostBuildStepCall"-parameter is thus no longer needed.
- org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.addRuleForTool(ITool,
StringBuffer, boolean, String, String, List\<String\>,
Vector\<String\>, boolean)
Extenders that override the above protected method should override
org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.addRuleForTool(ITool,
StringBuffer, boolean, String, String, List\<String\>, Vector\<String\>)
instead.
See [Bug 573502](https://bugs.eclipse.org/bugs/show_bug.cgi?id=573502).
### <span id="GnuMakefileGenerator.addDefaultHeader">Changed methods from static to non-static</span>
The implementation for generating the header in the make resources was
changed. The following APIs will be removed, listed with their
(non-static) replacement.
- org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.populateDummyTargets(IConfiguration,
IFile, boolean), use
org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.generateDummyTargets(IConfiguration,
IFile, boolean) instead.
- org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.populateDummyTargets(IResourceInfo,
IFile, boolean), use
org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.generateDummyTargets(IResourceInfo,
IFile, boolean) instead.
- org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.addDefaultHeader(),
use
org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.addGenericHeader()
instead.
See [Bug 573722](https://bugs.eclipse.org/bugs/show_bug.cgi?id=573722).
## API Removals after December 2023
### <span id="GnuMakefileGeneratorAPI">GnuMakefileGenerator is no longer part of API</span>
The following classes will be removed from the API.
- org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator
- org.eclipse.cdt.managedbuilder.makegen.gnu.IManagedBuildGnuToolInfo
- org.eclipse.cdt.managedbuilder.makegen.gnu.ManagedBuildGnuToolInfo
See [Bug 505882](https://bugs.eclipse.org/bugs/show_bug.cgi?id=505882).
### <span id="Spawner.signals">The Spawner signal constants are nolonger API</span>
The following constants will be removed from the Spawner API.
- NOOP
- HUP
- KILL
- TERM
- INT
- CTRLC
## API Removals after March 2024
### <span id="ArgletsMatcher">java.util.regex.Matcher use in JSONCDB API will be removed</span>
The following fields will be removed from the API as it is not thread
safe. Use the patten instead and call matcher(input) to obtain a
matcher.
- org.eclipse.cdt.jsoncdb.core.participant.Arglets.NameOptionMatcher.matcher
- org.eclipse.cdt.jsoncdb.core.participant.DefaultToolDetectionParticipant.toolNameMatchersExt
- org.eclipse.cdt.jsoncdb.core.participant.DefaultToolDetectionParticipant.toolNameMatchersExtBackslash
See [Bug 578683](https://bugs.eclipse.org/bugs/show_bug.cgi?id=578683).
## API Removals after June 2024
### <span id="ArgletsMatcher2">java.util.regex.Matcher use in JSONCDB API will be removed</span>
The following method will be removed from the API as it encourages
non-safe constructs of reusing Matchers instead of Patterns.
- org.eclipse.cdt.jsoncdb.core.participant.Arglets.BuiltinDetectionArgsGeneric.processArgument(IArgumentCollector,
String, Matcher\[\]) - use
org.eclipse.cdt.jsoncdb.core.participant.Arglets.BuiltinDetectionArgsGeneric.processArgument(IArgumentCollector,
String, Pattern\[\]) instead
See [Bug 579982](https://bugs.eclipse.org/bugs/show_bug.cgi?id=579982).
### <span id="BuiltinDetctionArgsGeneric">Misnamed class BuiltinDetctionArgsGeneric will be removed</span>
The class BuiltinDetctionArgsGeneric will be removed. Use the correctly
spelled BuiltinDetectionArgsGeneric instead.
- org.eclipse.cdt.jsoncdb.core.participant.Arglets.BuiltinDetctionArgsGeneric

View file

@ -47,6 +47,10 @@ This may lead to some minor rendering issues that hopefully do not detract too m
</details>
## API Changes
The Eclipse CDT project announces and tracks breaking API changes in [CHANGELOG-API][CHANGELOG-API.md].
<details>
<summary>How to write a New & Noteworthy entry</summary>
@ -77,5 +81,14 @@ which renders like this:
The [SerialPort](../native/org.eclipse.cdt.native.serial/src/org/eclipse/cdt/serial/SerialPort.java) supports arbitrary baud rates.
### API Changes and Improvements
Improvements and changes to API should be announced in the New and Noteworthy for the release so they get visibility.
Linking directly to the code or Javadoc for the new API is encouraged.
### API Breakages and Removals
Anything that breaks or removes API should be listed in the [CHANGELOG-API](CHANGELOG-API.md).
If the API change is very significant (such as a new version of Java) listing it in the New and Noteworthy for the release is also advisable.
</details>

View file

@ -60,8 +60,8 @@ The Eclipse CDT project follows the same guidelines and policies as the Eclipse
- Removal of any Eclipse CDT API requires approval from the Eclipse CDT Committers.
- Announcement must be made on [cdt-dev](CONTRIBUTING.md#Contact) mailing list - it can be additionally made to [cross-project-issues-dev](https://accounts.eclipse.org/mailing-list/cross-project-issues-dev) mailing list if there is concern that the impact of such removal would affect other Eclipse projects.
- API Changes should be listed in the [New and Noteworthy](https://wiki.eclipse.org/CDT/User/NewInCDT) wiki page.
- API removals and API breakages, actual or planned, should be added to CDT's git repo at [deprecated_API_removals.html](doc/org.eclipse.cdt.doc.isv/guide/deprecated_API_removals.html) and published (starting with CDT 10.0 in Sept 2020) in [Eclipe Help](https://help.eclipse.org/latest/topic/org.eclipse.cdt.doc.isv/guide/deprecated_API_removals.html). The current version can be previewed [here](https://htmlpreview.github.io/?https://raw.githubusercontent.com/eclipse-cdt/cdt/blob/main/doc/org.eclipse.cdt.doc.isv/guide/deprecated_API_removals.html).
- Non-breaking API changes and improvements should be considered for listing as a [New and Noteworthy](NewAndNoteworthy/) item for a release.
- API removals and API breakages, actual or planned, should be added to [New and Noteworthy's API Changelog](NewAndNoteworthy/CHANGELOG-API.md).
### Using API Tooling

View file

@ -14,601 +14,8 @@
<h1>Eclipse CDT Deprecated and Breaking API changes and removals</h1>
<p>
Deprecated API can be marked for deletion without requiring a major version increment.
See the <a href="https://wiki.eclipse.org/CDT/policy">policy</a> for the details.
This section describes API removals that occurred in past releases, and upcoming removals in future releases.
This content has been converted to Markdown and moved to <a href="https://github.com/eclipse-cdt/cdt/blob/main/NewAndNoteworthy/CHANGELOG-API.md">CHANGELOG-API</a>.
</p>
<p>
API Changes in CDT 11.0.
</p>
<ol>
<li><a href="#newUIAbstractPage">org.eclipse.cdt.ui.newui.AbstractPage reduced visibility of many fields</a></li>
</ol>
<p>
API Changes in CDT 10.5.0
</p>
<ol>
<li><a href="#jsoncdb">Package org.eclipse.cdt.cmake.is.core.participant has been renamed to
org.eclipse.cdt.jsoncdb.core.participant.</a></li>
</ol>
<p>
API Changes in CDT 10.0.
</p>
<ol>
<li><a href="#java11">Eclipse CDT requires Java 11 as a minimum to build and run.</a></li>
<li><a href="#deprecatedRemovals">Some deprecated methods and classes have been removed.</a></li>
<li><a href="#internals">Previously exported packages that were not API are now correctly marked as such.</a></li>
<li><a href="#activators">Activators removed for all bundles where possible.</a></li>
<li><a href="#NewClassCreationWizardPage">NewClassCreationWizardPage breaking changes.</a></li>
<li><a href="#arduino">Arduino plug-ins and features removed.</a></li>
<li><a href="#oldparsers">Remove LRParser, XLC and UPC.</a></li>
<li><a href="#cdtutilsPlatform">Remove org.eclipse.cdt.utils.Platform.</a></li>
<li><a href="#dsf">DSF and DSF-GDB API Changes.</a></li>
<li><a href="#oldStyleProjects">Partial removal of CDT 3.X project support.</a></li>
<li><a href="#optionsAPI">Removal of CDT Core Options API.</a></li>
<li><a href="#terminal">TM Terminal has major changes to support new color and preference functionality.</a></li>
<li><a href="#casesensitive">Environment Variables are always case sensitive in CDT.</a></li>
<li><a href="#escaping">Environment variables no longer support \${ to avoid expanding.</a></li>
<li><a href="#autocloseable">The binary parsers are now implement Autocloseable</a></li>
<li><a href="#deductionremovedin10.0.0">ICPPASTDeductionGuide and ICPPASTParameterListOwner removed in CDT 10.0.1</a></li>
</ol>
<p>
Planned Removals after June 2022 or on the next major version of Eclipe CDT.
</p>
<ol>
<li><a href="#binaryparsers">32-bit Binary parsers with 64-bit replacements</a></li>
<li><a href="#baudrate">BaudRate enum in org.eclipse.cdt.serial</a></li>
</ol>
<p>
Planned Removals after June 2023 or on the next major version of Eclipe CDT.
</p>
<ol>
<li><a href="#gdbBackendDebuggerCommandLine">Rework of API to determine GDB command line in org.eclipse.cdt.dsf.gdb</a></li>
<li><a href="#ManagedCommandLineGenerator.toManagedCommandLineInfo">Add ITool parameter to ManagedCommandLineGenerator.toManagedCommandLineInfo</a></li>
<li><a href="#GnuMakefileGenerator.addRuleForTool">Removed unneded boolean from function</a></li>
<li><a href="#GnuMakefileGenerator.addDefaultHeader">Changed methods from static to non-static</a></li>
</ol>
<p>
Planned Removals after December 2023 or on the next major version of Eclipe CDT.
</p>
<ol>
<li><a href="#GnuMakefileGeneratorAPI">GnuMakefileGenerator is no longer part of API</a></li>
<li><a href="#Spawner.signals">The Spawner signal constants are nolonger API</a></li>
</ol>
<p>
Planned Removals after March 2024 or on the next major version of Eclipe CDT.
</p>
<ol>
<li><a href="#ArgletsMatcher">java.util.regex.Matcher use in JSONCDB API will be removed</a></li>
</ol>
<p>
Planned Removals after June 2024 or on the next major version of Eclipe CDT.
</p>
<ol>
<li><a href="#ArgletsMatcher2">java.util.regex.Matcher use in JSONCDB API will be removed</a></li>
<li><a href="#BuiltinDetctionArgsGeneric">Misnamed class BuiltinDetctionArgsGeneric will be removed</a></li>
</ol>
<p>
API Changes prior to CDT 10.0 / 2020-09.
</p>
<p>
Prior to CDT 10 release API changes were published as part of the <a
href="https://wiki.eclipse.org/CDT/User/NewInCDT">New and Noteworthy</a> entries for that release. From CDT 10
forward breaking API changes are included in this document.
</p>
<hr>
<h2>API Changes in CDT 11.0.</h2>
<h3>1. <a name="newUIAbstractPage">org.eclipse.cdt.ui.newui.AbstractPage reduced visibility of many fields</a></h3>
<p>
The following fields have been be removed from the API of org.eclipse.cdt.ui.newui.AbstractPage as they were never intended to be accessible by the design. As far as the current CDT developers know, no one was using this API.
</p>
<ul>
<li>org.eclipse.cdt.ui.newui.AbstractPage.noContentOnPage</li>
<li>org.eclipse.cdt.ui.newui.AbstractPage.displayedConfig</li>
<li>org.eclipse.cdt.ui.newui.AbstractPage.internalElement</li>
<li>org.eclipse.cdt.ui.newui.AbstractPage.isProject</li>
<li>org.eclipse.cdt.ui.newui.AbstractPage.isFolder</li>
<li>org.eclipse.cdt.ui.newui.AbstractPage.isFile</li>
<li>org.eclipse.cdt.ui.newui.AbstractPage.folder</li>
<li>org.eclipse.cdt.ui.newui.AbstractPage.itabs</li>
<li>org.eclipse.cdt.ui.newui.AbstractPage.currentTab</li>
</ul>
<p>
In addition, the following inner class wil be removed from the API.
<ul>
<li>org.eclipse.cdt.ui.newui.AbstractPage.InternalTab</li>
</ul>
</p>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=579666" target="_blank">Bug 579666</a>.
</p>
<hr>
<h2>API Changes in CDT 10.5.0.</h2>
<h3>1. <a name="jsoncdb">Package org.eclipse.cdt.cmake.is.core.participant has been renamed to
org.eclipse.cdt.jsoncdb.core.participant.</a></h3>
<p>
Affects CMake build, indexer support.<br> Package org.eclipse.cdt.cmake.is.core.participant was inadvertently not marked as experimental.
Third-party compiler vendors that provide a plugin teaching Eclipse CDT their compiler specific command-line options
will have to update the import statements in their plugin's code.
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=564349" target="_blank">Bug 564349</a>.
</p>
<hr>
<h2>API Changes in CDT 10.0.</h2>
<h3>1. <a name="java11">Eclipse CDT requires Java 11 as a minimum to build and run.</a></h3>
<p>
Java 11 or greater is required for CDT. This means that the BREE for all CDT bundles is now
Java 11. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=562494" target="_blank">Bug 562494</a>.
</p>
<p>
The previous workaround for single-sourcing Java 8 and Java 11 has been removed. This means the
org.eclipse.tools.templates.freemarker.java11 bundle fragment has been removed. See <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=563494" target="_blank">Bug 563494</a>.
</p>
<h3>2. <a name="deprecatedRemovals">Some deprecated methods and classes have been removed.</a></h3>
<p>
Across the CDT code base some previously deprecated code has been removed.
<ul>
<li>EnvironmentReader.getRawEnvVars has been removed. Use EnvironmentReader.getEnvVars instead. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=564123" target="_blank">Bug 564123</a>.</li>
<li>GDBJtagStartupTab.createRunOptionGroup has been removed. Override GDBJtagStartupTab.createRunGroup instead. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=566462" target="_blank">Bug 566462</a>.</li>
<li>IGDBJtagConstants.ATTR_JTAG_DEVICE has been removed. Use IGDBJtagConstants.ATTR_JTAG_DEVICE_ID to persist device ID rather than device name. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=566462" target="_blank">Bug 566462</a>.</li>
<li>IGDBJtagConstants.DEFAULT_JTAG_DEVICE has been removed. Use a local String if necessary. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=566462" target="_blank">Bug 566462</a>.</li>
<li>IGDBJtagConstants.DEFAULT_JTAG_DEVICE_ID has been removed. Use a local String if necessary. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=566462" target="_blank">Bug 566462</a>.</li>
<li>IGDBJtagDevice.getDefaultIpAddress has been removed. Implement IGDBJtagConnection and specify default_connection in JTagDevice extension XML instead. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=566462" target="_blank">Bug 566462</a>.</li>
<li>IGDBJtagDevice.getDefaultPortNumber has been removed. Implement IGDBJtagConnection and specify default_connection in JTagDevice extension XML instead. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=566462" target="_blank">Bug 566462</a>.</li>
<li>IGDBJtagDevice.doRemote has been removed. Implement IGDBJtagConnection.doRemote instead. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=566462" target="_blank">Bug 566462</a>.</li>
<li>PTY constructor PTY(boolean console) has been removed. Use PTY(Mode mode) instead.</li>
<li>org.eclipse.cdt.core.browser.PathUtil has been removed. Use org.eclipse.cdt.utils.PathUtil instead. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=564123" target="_blank">Bug 564123</a>.</li>
<li>org.eclipse.cdt.launch.ui.CMainTab has been removed. This was part of the long since removed CDI and has no use. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=566530" target="_blank">Bug 566530</a>.</li>
<li>org.eclipse.cdt.launch.ui.CMainCoreTab has been removed. This was part of the long since removed CDI and has no use. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=566530" target="_blank">Bug 566530</a>.</li>
<li>org.eclipse.cdt.launch.ui.CMainAttachTab has been removed. This was part of the long since removed CDI and has no use. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=566530" target="_blank">Bug 566530</a>.</li>
</ul>
</p>
<h3>3. <a name="internals">Previously exported packages that were not API are now correctly marked as such.</a></h3>
<p>
A review of the previously exported API of CDT was performed. A lot of what was previously marked as public API has
now been marked as internal. This means the API has either had <code>x-internal</code> or <code>x-friends</code>
added to the <code>Export-Package</code> declarations.
</p>
<p>
The following bundles have had all their packages exported as internal See <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=561389" target="_blank">Bug 561389</a>:
<ul>
<li>org.eclipse.cdt.cmake.ui</li>
<li>org.eclipse.cdt.autotools.core</li>
<li>org.eclipse.cdt.core.autotools.core</li>
<li>org.eclipse.cdt.core.autotools.ui</li>
<li>org.eclipse.cdt.autotools.tests</li>
<li>org.eclipse.cdt.autotools.ui.tests</li>
<li>org.eclipse.cdt.build.crossgcc</li>
<li>org.eclipse.cdt.cmake.ui</li>
<li>org.eclipse.cdt.build.gcc.core</li>
<li>org.eclipse.cdt.build.gcc.ui</li>
<li>org.eclipse.cdt.codan.checkers.ui.tests</li>
<li>org.eclipse.tools.templates.ui</li>
</ul>
</p>
<p>
The following bundles had additional changes made to be able to mark packages as internal:
<ul>
org.eclipse.cdt.cmake.ui: renamed package "org.eclipse.cdt.cmake.ui.properties"
to "org.eclipse.cdt.cmake.internal.ui.properties". See <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=561390" target="_blank">Bug 561390</a>
</ul>
<ul>
org.eclipse.cdt.codan.checkers: marked package "org.eclipse.cdt.codan.checkers" as internal. See <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=561582" target="_blank">Bug 561582</a>
</ul>
</p>
<h3>4. <a name="activators">Activators removed for all bundles where possible.</a></h3>
<p>
Where possible bundles have had their Activators removed. Some of these activators were API and are no longer
available. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=561635" target="_blank">Bug 561635</a> for
workarounds where items that used to be in Activators are still needed, such as logging and plug-ids.
</p>
<p>
The following Activators that were API have been removed.
<ul>
<li>org.eclipse.tools.templates.ui</li>
</ul>
</p>
<h3>5. <a name="NewClassCreationWizardPage">NewClassCreationWizardPage breaking changes.</a></h3>
<p>
The NewClassCreationWizardPage has some API breaking changes due to how some protected fields, especially
<code>ALL_FIELDS</code> was used. While this breaks binary
compatibility, no code changes should be needed in extenders, just compiling against the new version. See <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=510789" target="_blank">Bug 510789</a> and <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=561770" target="_blank">Bug 561770</a>.
</p>
<h3>6. <a name="arduino">Arduino plug-ins and features removed.</a></h3>
<p>
The CDT Arduino plug-ins and features have been removed. Arduino can still be used with CDT with manual maintenance
of packages, etc. Or a third-party add-on such as <a href="https://eclipse.baeyens.it/">Sloeber</a> can be used as a
replacement.
</p>
<p>
The bundles and features that have been removed are:
<ul>
<li>org.eclipse.cdt.arduino-feature</li>
<li>org.eclipse.cdt.arduino.core.tests</li>
<li>org.eclipse.cdt.arduino.core</li>
<li>org.eclipse.cdt.arduino.ui</li>
</ul>
</p>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=562498" target="_blank">Bug 562498</a>.
</p>
<h3>7. <a name="oldparsers">Remove LRParser, XLC and UPC.</a></h3>
<p>
The LR, UPC and XLC support have been removed from CDT. The bundles have not been maintained for a while and were
not functional anymore.
</p>
<p>
The bundles and features that have been removed are:
<ul>
<li>org.eclipse.cdt.core.lrparser.feature</li>
<li>org.eclipse.cdt.core.lrparser.sdk.branding</li>
<li>org.eclipse.cdt.core.lrparser.sdk.feature</li>
<li>org.eclipse.cdt.core.lrparser.tests</li>
<li>org.eclipse.cdt.core.lrparser</li>
<li>org.eclipse.cdt.bupc-feature</li>
<li>org.eclipse.cdt.core.parser.upc.feature</li>
<li>org.eclipse.cdt.core.parser.upc.sdk.branding</li>
<li>org.eclipse.cdt.core.parser.upc.sdk.feature</li>
<li>org.eclipse.cdt.core.parser.upc.tests</li>
<li>org.eclipse.cdt.core.parser.upc</li>
<li>org.eclipse.cdt.managedbuilder.bupc.ui</li>
<li>org.eclipse.cdt.core.lrparser.xlc.tests</li>
<li>org.eclipse.cdt.core.lrparser.xlc</li>
<li>org.eclipse.cdt.errorparsers.xlc.tests</li>
<li>org.eclipse.cdt.errorparsers.xlc</li>
<li>org.eclipse.cdt.make.xlc.core</li>
<li>org.eclipse.cdt.managedbuilder.xlc.core</li>
<li>org.eclipse.cdt.managedbuilder.xlc.ui</li>
<li>org.eclipse.cdt.managedbuilder.xlupc.ui</li>
<li>org.eclipse.cdt.xlc.feature</li>
<li>org.eclipse.cdt.xlc.sdk-feature</li>
<li>org.eclipse.cdt.xlc.sdk.branding</li>
</ul>
</p>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=562498" target="_blank">Bug 562498</a>.
</p>
<h3>8. <a name="cdtutilsPlatform">Remove org.eclipse.cdt.utils.Platform.</a></h3>
<p>
Class org.eclipse.cdt.utils.Platform has been removed. Use org.eclipse.core.runtime.Platform instead.
</p>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=564123" target="_blank">Bug 564123</a>.
</p>
<h3>9. <a name="dsf">DSF and DSF-GDB API Changes</a></h3>
<p>
DSF and DSF-GDB have had some small API changes, but they are still breaking changes and are listed here:
<ul>
<li>org.eclipse.cdt.dsf.gdb.launching.GdbLaunchDelegate.getCLILabel(ILaunchConfiguration, String) has been removed.
Use org.eclipse.cdt.dsf.gdb.launching.GdbLaunchDelegate.getCLILabel(GdbLaunch, ILaunchConfiguration, String)
instead. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=564553" target="_blank">Bug 564553</a>.</li>
</ul>
</p>
<h3>10. <a name="oldStyleProjects">Partial removal of CDT 3.X project support</a></h3>
<p>
CDT 3.X projects have been deprecated since CDT 4.0. Some classes supporting this old version have been removed:
<ul>
<li>org.eclipse.cdt.make.ui.wizards.ConvertToMakeProjectWizard</li>
<li>org.eclipse.cdt.make.ui.wizards.ConvertToMakeProjectWizardPage</li>
<li>org.eclipse.cdt.make.ui.wizards.MakeProjectWizardOptionPage</li>
<li>org.eclipse.cdt.make.ui.wizards.NewMakeCCProjectWizard</li>
<li>org.eclipse.cdt.make.ui.wizards.NewMakeCProjectWizard</li>
<li>org.eclipse.cdt.make.ui.wizards.NewMakeProjectWizard</li>
</ul>
</p>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=564949" target="_blank">Bug 564949</a>.
</p>
<h3>11. <a name="optionsAPI">Removal of CDT Core Options API</a></h3>
<p>
The CDT Core Options API and implementation has been removed as now it is a part of Eclipse Equinox 4.16 Preferences API, the removed packages are:
<ul>
<li>org.eclipse.cdt.core.options</li>
<li>org.eclipse.cdt.internal.core.options</li>
</ul>
</p>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=565154" target="_blank">Bug 565154</a>.
</p>
<h3>12. <a name="terminal">TM Terminal has major changes to support new color and preference functionality.</a></h3>
<p>
The TM Terminal's control (org.eclipse.tm.terminal.control) bundle has a major new version to support numerous API
changes to support features such as new colors, preference sharing and some other code clean-up.
</p>
<ul>
<li>org.eclipse.tm.terminal.model.Style removed and is mostly replaced by
org.eclipse.tm.terminal.model.TerminalStyle. To handle
new API and color handling, the entire Style class was replaced with TerminalStyle that operates in a similar way.
Because some methods in TerminalStyle have similar signatures to those in removed Style class a new class was
introduced to prevent accidental use of incorrect API. See <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=549697" target="_blank">Bug 562495</a>.</li>
<li>org.eclipse.tm.terminal.model.StyleColor removed. Replaced by a new way of representing standard color in the
terminal using the new enum org.eclipse.tm.terminal.model.TerminalColor.. See <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=549697" target="_blank">Bug 562495</a>.
</li>
<li>org.eclipse.tm.terminal.model.ITerminalTextData method taking or returning Style now use TerminalStyle. See <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=549697" target="_blank">Bug 562495</a>.
</li>
<li>org.eclipse.tm.terminal.model.ITerminalTextDataReadOnly method taking or returning Style now use TerminalStyle.
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=549697" target="_blank">Bug 562495</a>.
</li>
<li>org.eclipse.tm.terminal.model.LineSegment method taking or returning Style now use TerminalStyle. See <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=549697" target="_blank">Bug 562495</a>.
</li>
</ul>
<h3>13. <a name="casesensitive">Environment Variables are always case sensitive in CDT.</a></h3>
<p>
The handling of environment and build variables in CDT has changed to being case sensitive. This means
some API changes to remove methods such as isVariableCaseSensitive (see full list below). The PATH and
dome other special environment variables in CDT are always uppercased, such as Path. See <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=564123" target="_blank">Bug 564123</a>.
</p>
<ul>
<li>org.eclipse.cdt.managedbuilder.core.IBuilder.isVariableCaseSensitive() removed.</li>
<li>org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider.isVariableCaseSensitive() removed.</li>
<li>org.eclipse.cdt.core.envvar.IEnvironmentVariableManager.isVariableCaseSensitive() removed.</li></li>
</ul>
<h3>14. <a name="escaping">Environment variables no longer support \${ to avoid expanding.</a></h3>
<p>
This change is not literally an api change but will impact your code if you used \${ to not
expand environment variables. It may impact your code if you import environment variables
and had to workaround path\${childPath} resolving to path${childPath}. See <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=560330" target="_blank">Bug 560330</a>.
</p>
<ul>
<li>org.eclipse.cdt.managedbuilder.core.IBuilder.isVariableCaseSensitive() removed.</li>
<li>org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider.isVariableCaseSensitive() removed.</li>
<li>org.eclipse.cdt.core.envvar.IEnvironmentVariableManager.isVariableCaseSensitive() removed.</li></li>
</ul>
<h3>15. <a name="autocloseable">The binary parsers are now implement AutoCloseable</a></h3>
<p>
The binary parsers part of CDT core now implement the AutoCloseable interface and can be used
in try-with-resources blocks. See list below for all the classes that are now AutoCloseable. See <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=553674" target="_blank">Bug 553674</a>.
</p>
<ul>
<li>org.eclipse.cdt.utils.coff.Exe</li>
<li>org.eclipse.cdt.utils.coff.PE</li>
<li>org.eclipse.cdt.utils.coff.PE64</li>
<li>org.eclipse.cdt.utils.coff.PEArchive</li>
<li>org.eclipse.cdt.utils.elf.Elf</li>
<li>org.eclipse.cdt.utils.elf.ElfHelper</li>
<li>org.eclipse.cdt.utils.AR</li>
<li>org.eclipse.cdt.utils.elf.AR</li>
<li>org.eclipse.cdt.utils.som.AR</li>
<li>org.eclipse.cdt.utils.xcoff.AR</li>
<li>org.eclipse.cdt.utils.macho.AR</li>
</ul>
<h3>16. <a name="deductionremovedin10.0.0">ICPPASTDeductionGuide and ICPPASTParameterListOwner removed in CDT 10.0.1</a></h3>
<p>
Classes org.eclipse.cdt.core.dom.ast.cpp.ICPPASTDeductionGuide and org.eclipse.cdt.core.dom.ast.cpp.ICPPASTParameterListOwner
which were added for CDT 10.0.0 have been removed in CDT 10.0.1. See <a
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=567261" target="_blank">Bug 567261</a>.
</p>
<hr>
<h2>Future Deletions</h2>
<p>
The items below can be removed after the given date or on the next major release, whichever is sooner. The details
and discussion on the removal happens in the Bugzilla associated with the entry below. See
the <a href="https://wiki.eclipse.org/CDT/policy">policy</a> for the details.
</p>
<h3>API Removals after June 2022</h3>
<h3>1. <a name="binaryparsers">32-bit Binary parsers with 64-bit replacements</a></h3>
<p>
The following binary parser classes have replacements, mostly due to these versions not supporting 64-bit variants
of the binary files. The new 64-bit parsers support both 32 and 64 bit files.
</p>
<ul>
<li>org.eclipse.cdt.utils.coff.parser.CygwinPEBinaryArchive</li>
<li>org.eclipse.cdt.utils.coff.parser.CygwinPEBinaryExecutable</li>
<li>org.eclipse.cdt.utils.coff.parser.CygwinPEBinaryObject</li>
<li>org.eclipse.cdt.utils.coff.parser.CygwinPEBinaryShared</li>
<li>org.eclipse.cdt.utils.coff.parser.CygwinPEParser</li>
<li>org.eclipse.cdt.utils.coff.parser.CygwinSymbol</li>
<li>org.eclipse.cdt.utils.coff.parser.PEBinaryArchive</li>
<li>org.eclipse.cdt.utils.coff.parser.PEBinaryExecutable</li>
<li>org.eclipse.cdt.utils.coff.parser.PEBinaryObject</li>
<li>org.eclipse.cdt.utils.coff.parser.PEBinaryShared</li>
<li>org.eclipse.cdt.utils.coff.parser.PEParser</li>
<li>org.eclipse.cdt.utils.macho.parser.MachOBinaryArchive</li>
<li>org.eclipse.cdt.utils.macho.parser.MachOBinaryExecutable</li>
<li>org.eclipse.cdt.utils.macho.parser.MachOBinaryObject</li>
<li>org.eclipse.cdt.utils.macho.parser.MachOBinaryShared</li>
<li>org.eclipse.cdt.utils.macho.parser.MachOParser</li>
</ul>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=562495" target="_blank">Bug 562495</a>.
</p>
<h3>2. <a name="baudrate">BaudRate enum in org.eclipse.cdt.serial</a></h3>
<p>
The BaudRate enum in org.eclipse.cdt.serial package will be removed. The following
APIs will be removed, listed with their replacement.
</p>
<ul>
<li>org.eclipse.cdt.serial.BaudRate, use org.eclipse.cdt.serial.StandardBaudRates to obtain typical baud rate values
</li>
<li>org.eclipse.cdt.serial.SerialPort.setBaudRate(BaudRate), use
org.eclipse.cdt.serial.SerialPort.setBaudRateValue(int) instead</li>
<li>org.eclipse.cdt.serial.SerialPort.getBaudRate(), use org.eclipse.cdt.serial.SerialPort.getBaudRateValue()
instead</li>
<li>org.eclipse.tm.terminal.connector.cdtserial.connector.SerialSettings.getBaudRate(), use
org.eclipse.tm.terminal.connector.cdtserial.connector.SerialSettings.getBaudRateValue() instead</li>
<li>org.eclipse.tm.terminal.connector.cdtserial.connector.SerialSettings.setBaudRate(BaudRate), use
org.eclipse.tm.terminal.connector.cdtserial.connector.SerialSettings.setBaudRateValue(int) instead</li>
</ul>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=563108" target="_blank">Bug 563108</a>.
</p>
<h3>API Removals after June 2023</h3>
<h3>1. <a name="gdbBackendDebuggerCommandLine">Rework of API to determine GDB command line in org.eclipse.cdt.dsf.gdb</a></h3>
<p>
To support presentation of the GDB command line within the process property page, a public method
getDebuggerCommandLineArray() has been added to the org.eclipse.cdt.dsf.gdb.service.IGDBBackend interface
and the following redundant protected methods will be removed:
</p>
<ul>
<li>org.eclipse.cdt.dsf.gdb.service.GDBBackend.getDebuggerCommandLine()</li>
<li>org.eclipse.cdt.dsf.gdb.service.GDBBackend.getGDBCommandLineArray()</li>
</ul>
<p>
Extenders that override the above protected methods should override
org.eclipse.cdt.dsf.gdb.service.IGDBBackend.getDebuggerCommandLineArray() instead.
</p>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=572944" target="_blank">Bug 572944</a>.
</p>
<h3>2. <a name="ManagedCommandLineGenerator.toManagedCommandLineInfo">Add ITool parameter to ManagedCommandLineGenerator.toManagedCommandLineInfo</a></h3>
<p>
To allow extenders to know the context of a generated command line, the ITool instance was added to ManagedCommandLineGenerator.toManagedCommandLineInfo
method and the method without the ITool parameter will be removed:
</p>
<ul>
<li>org.eclipse.cdt.managedbuilder.core.ManagedCommandLineGenerator.toManagedCommandLineInfo(String, String, String, String[], String, String, String, String[])</li>
</ul>
<p>
Extenders that override the above protected method should override
org.eclipse.cdt.managedbuilder.core.ManagedCommandLineGenerator.toManagedCommandLineInfo(ITool, String, String, String, String[], String, String, String, String[]) instead.
</p>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=573254" target="_blank">Bug 573254</a>.
</p>
<h3>3. <a name="GnuMakefileGenerator.addRuleForTool">Removed unneded boolean from function</a></h3>
<p>
The implementation for how post-build steps are generated was changed. The "bEmitPostBuildStepCall"-parameter is thus no longer needed.
</p>
<ul>
<li>org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.addRuleForTool(ITool, StringBuffer, boolean, String, String, List&lt;String&gt;, Vector&lt;String&gt;, boolean)</li>
</ul>
<p>
Extenders that override the above protected method should override
org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.addRuleForTool(ITool, StringBuffer, boolean, String, String, List&lt;String&gt;, Vector&lt;String&gt;) instead.
</p>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=573502" target="_blank">Bug 573502</a>.
</p>
<h3>4. <a name="GnuMakefileGenerator.addDefaultHeader">Changed methods from static to non-static</a></h3>
<p>
The implementation for generating the header in the make resources was changed. The following
APIs will be removed, listed with their (non-static) replacement.
</p>
<ul>
<li>org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.populateDummyTargets(IConfiguration, IFile, boolean), use
org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.generateDummyTargets(IConfiguration, IFile, boolean) instead.</li>
<li>org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.populateDummyTargets(IResourceInfo, IFile, boolean), use
org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.generateDummyTargets(IResourceInfo, IFile, boolean) instead.</li>
<li>org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.addDefaultHeader(), use
org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator.addGenericHeader() instead.</li>
</ul>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=573722" target="_blank">Bug 573722</a>.
</p>
<h3>API Removals after December 2023</h3>
<h3>1. <a name="GnuMakefileGeneratorAPI">GnuMakefileGenerator is no longer part of API</a></h3>
<p>
The following classes will be removed from the API.
</p>
<ul>
<li>org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator</li>
<li>org.eclipse.cdt.managedbuilder.makegen.gnu.IManagedBuildGnuToolInfo</li>
<li>org.eclipse.cdt.managedbuilder.makegen.gnu.ManagedBuildGnuToolInfo</li>
</ul>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=505882" target="_blank">Bug 505882</a>.
</p>
<h3>2. <a name="Spawner.signals">The Spawner signal constants are nolonger API</a></h3>
<p>
The following constants will be removed from the Spawner API.
</p>
<ul>
<li>NOOP</li>
<li>HUP</li>
<li>KILL</li>
<li>TERM</li>
<li>INT</li>
<li>CTRLC</li>
</ul>
<h3>API Removals after March 2024</h3>
<h3>1. <a name="ArgletsMatcher">java.util.regex.Matcher use in JSONCDB API will be removed</a></h3>
<p>
The following fields will be removed from the API as it is not thread safe. Use the patten instead and call matcher(input) to obtain a matcher.
</p>
<ul>
<li>org.eclipse.cdt.jsoncdb.core.participant.Arglets.NameOptionMatcher.matcher</li>
<li>org.eclipse.cdt.jsoncdb.core.participant.DefaultToolDetectionParticipant.toolNameMatchersExt</li>
<li>org.eclipse.cdt.jsoncdb.core.participant.DefaultToolDetectionParticipant.toolNameMatchersExtBackslash</li>
</ul>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=578683" target="_blank">Bug 578683</a>.
</p>
<h3>API Removals after June 2024</h3>
<h3>1. <a name="ArgletsMatcher2">java.util.regex.Matcher use in JSONCDB API will be removed</a></h3>
<p>
The following method will be removed from the API as it encourages non-safe constructs of reusing Matchers instead of Patterns.
</p>
<ul>
<li>org.eclipse.cdt.jsoncdb.core.participant.Arglets.BuiltinDetectionArgsGeneric.processArgument(IArgumentCollector, String, Matcher[])
- use org.eclipse.cdt.jsoncdb.core.participant.Arglets.BuiltinDetectionArgsGeneric.processArgument(IArgumentCollector, String, Pattern[]) instead</li>
</ul>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=579982" target="_blank">Bug 579982</a>.
</p>
<h3>2. <a name="BuiltinDetctionArgsGeneric">Misnamed class BuiltinDetctionArgsGeneric will be removed</a></h3>
<p>
The class BuiltinDetctionArgsGeneric will be removed. Use the correctly spelled BuiltinDetectionArgsGeneric instead.
</p>
<ul>
<li>org.eclipse.cdt.jsoncdb.core.participant.Arglets.BuiltinDetctionArgsGeneric</li>
</ul>
</body>
</html>