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.
Difference between revisions of "CDT/Archive/planning/4.0Plan"
(→Core) |
(→Build) |
||
Line 96: | Line 96: | ||
=== Build === | === Build === | ||
+ | |||
+ | ==== CDT Build System ==== | ||
+ | |||
+ | * '''Standard and Managed Build System incorporation''' - current "Standard" and "Managed" build systems will be incorporated into one CDT Build System. This will allow to leverage the Standard Build system with the build configuration and tool-chain concepts, rovide one common mechanism of tool-chain integration, build system configuration, maintainence, etc. [https://bugs.eclipse.org/bugs/show_bug.cgi?id=162728 bug 162728] | ||
+ | * '''Tool-Chain Modifications''' - the functionality will allow changing tool-chain settings for the project. This includes: Tool-chain substitution, adding/removing/substituting tools in the tool-chain, builder substitution. [https://bugs.eclipse.org/bugs/show_bug.cgi?id=162729 bug 162729] | ||
+ | * '''Per-folder settings''' - allows specifying tool-chain settings (i.e. option values, tool-chain/tools to be used, includes/macros settings) on the folder level [https://bugs.eclipse.org/bugs/show_bug.cgi?id=109080 bug 109080], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=83809 bug 83809] | ||
+ | |||
==== Managed Build ==== | ==== Managed Build ==== | ||
Line 101: | Line 108: | ||
* Complete the internal builder and make it the default, hopefully eliminating the need to write makefile generators - [https://bugs.eclipse.org/bugs/show_bug.cgi?id=135241 plan item]. | * Complete the internal builder and make it the default, hopefully eliminating the need to write makefile generators - [https://bugs.eclipse.org/bugs/show_bug.cgi?id=135241 plan item]. | ||
* Implement parallel builds with the internal builder - [https://bugs.eclipse.org/bugs/show_bug.cgi?id=156872 plan item]. | * Implement parallel builds with the internal builder - [https://bugs.eclipse.org/bugs/show_bug.cgi?id=156872 plan item]. | ||
+ | |||
=== Debugger === | === Debugger === | ||
Revision as of 06:33, 30 October 2006
This is currently a work in progress. Please let me know if you want any changes, Doug
Last revised: 13:18, 24 October 2006 (EDT)
CDT 4.0 is scheduled to be delivered in June 2007 as part of the Europa Simultaneous Release. Guidelines for this release are available here here.
Contents
Release Deliverables
The release deliverables are the same as with previous releases.
- Source code in CVS tagged "CDT_4_0".
- CDT run-time, i.e. org.eclipse.cdt feature, downloadable as a tar/zip per supported platform.
- CDT SDK, i.e. org.eclipse.cdt.sdk and org.eclipse.cdt features, downloadable as a tar/zip per supported platform.
- Contents of SDK available from the CDT update site.
- Contents of CDT run-time available from the Europa update site.
- Release review slides, including project log.
Release Milestones
The CDT will follow the Europa schedule for milestones and final delivery. These generally follow the milestones of the Eclipse Platform by one week. The following are the dates for when the milestones will be generally available along with links to the plans listing the state of the CDT features for that milestone.
- Thursday, Dec. 21, 2006 - Milestone 4 (4.0 M4) - plan.
- Friday, Feb. 16, 2007 - Milestone 5 (4.0 M5) - plan.
- Friday, Mar. 30, 2007 - Milestone 6 (4.0 M6) - plan - API freeze.
- Friday, May 11, 2007 - Milestone 7 (4.0 M7) - plan - Code freeze.
The code freeze date is the RC0 date which marks the beginning of the ramp down. All features should be implemented and only bug fixes of increasing criticality should be fixed marching towards the Europa release date of Friday, June 29, 2007.
Target Operating Environments
Builds of the CDT are available for the following host operation system and architecture combinations (there are no windowing system specific plugins in the CDT):
- Windows - x86
- Linux - x86, x86_64, ppc, ia64
- Mac OS X - ppc, x86 (universal)
- Solaris - sparc
- AIX - ppc
- QNX Neutino - x86
The download status show that Windows x86 and Linux x86 are by far the most widely used, and, thus, tested and have the best support.
The current plan is to support Java 1.4.2 run-time environments with CDT 4.0. Some optional components will require Java 1.5.0. We are still looking for concrete examples of CDT users that can not move to Java 1.5.0. If you have such an example, please report it to cdt-dev@eclipse.org.
Internationalization
All effort is made to ensure that the CDT can be nationalized to all languages supported by the Eclipse Platform. Only English is provided with the CDT and is the only language known to be tested.
Compatibility with Previous Releases
The CDT has had a troubled history maintaining backwards compatibility. One of the main objectives of CDT 4.0 will be to finalize all APIs so that we can maintain backwards compatability in future releases. As such, it is anticipated that there will be more churn in the APIs for this release. All plugins that use any APIs and/or extension points provided by the CDT will need to at least recompile against CDT 4.0 and will likely need to make code changes.
Component Plans
The following are the plan items proposed for specific components of the CDT.
Core
Indexing
- Support headless creation of indexes (PDOM), and import of these prebuilt indexes into user workspaces. bug 74433.
- Enable pdom index files to be relocatable (contain relative or symbolic paths) bug 162172
- Refactor the parser to allow it to be deployed as a standalone JAR file if so desired. bug 151846
- Refactor the indexer to allow it to be deployed as a standalone JAR file if so desired. bug 158975
- Refactor the indexer to remove hard dependencies on having an Eclipse project. bug 151847
- Allow customizability of which parser to run on particular projects/files/resources. bug 151850
New Project Model
The main goal of the New Project Model is to increase the CDT usability, tool-integrator support and multi language support.
References:
- bug 115935
- New Project Model Core Design
- New Project Model UI Design
- "New Project Model Core" presentation
- "New Project Model UI" presentation
UI
C/C++ Editor
- Support indent width independent of tab width. Allow to specify indent width independent of tab width to support mixed-mode indentation as already requested by bug 53994 and bug 92036.
- Default formatter. Implement a (simple) default formatter/indenter. bug 95274
- Text Drag and Drop. Implement Text Drag and Drop for the editor. bug 78677
Note: This may become obsolete if Eclipse platform implements it in 3.3. See also bug 11624. - View non-printable characters. Provide a command and toolbar button to enable visualization of non-printable characters in the editor (CR, LF, TAB, SPACE). bug 140333
Note: This may become obsolete if Eclipse platform implements it in 3.3. See also bug 22712. - Auto-save. Implement an option to regularly save dirty editor buffers to the Eclipse local history as a backup mechanism. bug 140334
See also Eclipse platform bug 34076. - Semantic highlighting. Colorize definitions and declarations of various C/C++ elements: function, variable, type, enum, etc. bug 140335
- Inactive code highlighting. Highlight lines of code which are inactive (ie. which are excluded by conditional preprocessor directives) in the current scanner configuration. bug 81511
CView
- Common Navigator extensions. Adopt the new Common Navigator (CN) framework and create CDT specific extensions to plug the content and functionality of the C/C++ Projects view (aka CView) into any Common Navigator view. The extensions will be initially contributed to the new general purpose "Project Explorer", which serves as a playground for early adopters of the technology (like JDT). This should also help to stabilize and improve the CN framework by providing feedback and bug reports. bug 140337
New Views
- Include Browser: Visualize the include relations among files in a tree as proposed in bug 142149
- Call Hierarchy: Explore call-graphs by means of a tree as proposed in bug 48212.
- Reintroduce Type Hierarchy: Present inheritance relations and members of types. This is proposed in bug 142189.
The implementation will also consider bug 48213, bug 70246, bug 71943, bug 87815, bug 94197, bug 99833, bug 99835, bug 100655, bug 108879 and optionally also bug 73904.
Build
CDT Build System
- Standard and Managed Build System incorporation - current "Standard" and "Managed" build systems will be incorporated into one CDT Build System. This will allow to leverage the Standard Build system with the build configuration and tool-chain concepts, rovide one common mechanism of tool-chain integration, build system configuration, maintainence, etc. bug 162728
- Tool-Chain Modifications - the functionality will allow changing tool-chain settings for the project. This includes: Tool-chain substitution, adding/removing/substituting tools in the tool-chain, builder substitution. bug 162729
- Per-folder settings - allows specifying tool-chain settings (i.e. option values, tool-chain/tools to be used, includes/macros settings) on the folder level bug 109080, bug 83809
Managed Build
- Complete the internal builder and make it the default, hopefully eliminating the need to write makefile generators - plan item.
- Implement parallel builds with the internal builder - plan item.
Debugger
CDI
How to make the CDI model flexible and extensible Proposals. See also bug 162080.
Add-ons
Windows SDK C/C++ Support
Support the tool chain that comes with the Windows SDK for C/C++ development. This includes the Visual C++ compiler (cl), linker (link), library builder (lib) plan item as well as the debugger engine (dbgeng.dll) available with the Debugging Tools for Windows. plan item. This functionality will be provided in an optional feature.
The original version of the 4.0 plan is here.
Documentation
User's Guide
The CDT user's guide hasn't been touched since CDT 3.0. It is out of date given then content in CDT 3.1. As well, it is probably in much need of a rewrite.
Programmer's Guide
As part of solidifying the APIs and extension points for the CDT, they will need to be documented. The Programmer's Guide needs to be updated to contain the javadoc and schema docs. As well, actual guide content should be provided to show how to use the APIs.