Difference between revisions of "GDC/ProjectIdeas"
(3 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
* There are lots of bugs in [http://bugzilla.gdcproject.org bugzilla]. Everyone is welcome to look at them, reproduce them, comment on them, fix them, etc! | * There are lots of bugs in [http://bugzilla.gdcproject.org bugzilla]. Everyone is welcome to look at them, reproduce them, comment on them, fix them, etc! | ||
− | * | + | * Other platforms should start being tested with the CI system. |
* There are a number of '''XBUG''' markers in testsuite. Some of them are for bugs in GDC that no one has looked at in a long time. There should be fewer! | * There are a number of '''XBUG''' markers in testsuite. Some of them are for bugs in GDC that no one has looked at in a long time. There should be fewer! | ||
Line 13: | Line 13: | ||
'''Periodic Tasks''' | '''Periodic Tasks''' | ||
− | * Merge the <code>d/dfrontend</code> sources with upstream DMD releases. | + | * Merge the <code>d/dfrontend</code> sources with upstream DMD releases (stable branch). |
− | * Merge the <code>libphobos/libdruntime</code> sources with upstream Druntime releases. | + | * Merge the <code>libphobos/libdruntime</code> sources with upstream Druntime releases (stable branch). |
− | * Merge the <code>libphobos/src</code> sources with upstream Phobos releases. | + | * Merge the <code>libphobos/src</code> sources with upstream Phobos releases (stable branch). |
* Create a release branch and test building GDC with each GCC release. | * Create a release branch and test building GDC with each GCC release. | ||
Line 23: | Line 23: | ||
* Update the latest development branch of GDC to be continually in sync with latest GCC development changes. | * Update the latest development branch of GDC to be continually in sync with latest GCC development changes. | ||
+ | See [[GDC/CurrentReleaseTasks]] for version specific tasks. | ||
'''General''' | '''General''' | ||
Line 29: | Line 30: | ||
* Merging GDC into upstream GCC. | * Merging GDC into upstream GCC. | ||
− | |||
− | |||
* Porting D to MinGW. | * Porting D to MinGW. | ||
− | |||
− | |||
− | |||
− | |||
* GCC LTO support is broken horribly, any attempt to use LTO will result in ICE'ing the LTO compiler. | * GCC LTO support is broken horribly, any attempt to use LTO will result in ICE'ing the LTO compiler. | ||
− | |||
− | |||
* Support all variants of <code>--enable-threads=</code> and <code>--enable-tls</code> in the GC. | * Support all variants of <code>--enable-threads=</code> and <code>--enable-tls</code> in the GC. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Line 56: | Line 43: | ||
* Missing d/NEWS and d/CONTRIBUTE documentation. | * Missing d/NEWS and d/CONTRIBUTE documentation. | ||
− | |||
− | |||
* The GDC manpage d/gdc.texi could be better written. | * The GDC manpage d/gdc.texi could be better written. | ||
Line 65: | Line 50: | ||
'''Internals''' | '''Internals''' | ||
− | |||
− | |||
− | |||
− | |||
* The only supported GDC-style <code>@attribute</code>'s are <code>"noinline"</code>, <code>"forceinline"</code>, <code>"flatten"</code>, and <code>"target"</code>. This may need extending as seen fit. | * The only supported GDC-style <code>@attribute</code>'s are <code>"noinline"</code>, <code>"forceinline"</code>, <code>"flatten"</code>, and <code>"target"</code>. This may need extending as seen fit. | ||
− | |||
− | |||
− | |||
* The macros <code>IN_GCC</code> and <code>GCC_SAFE_DMD</code> which are used to conditionally compile code in the frontend to work against GDC and its backend should be gradually removed from the D frontend, and either made into a runtime hook (ie: <code>target.h</code>, <code>port.h</code>, etc), or GDC (or DMD) should be fixed to handle the discrepancy between compiler backends. | * The macros <code>IN_GCC</code> and <code>GCC_SAFE_DMD</code> which are used to conditionally compile code in the frontend to work against GDC and its backend should be gradually removed from the D frontend, and either made into a runtime hook (ie: <code>target.h</code>, <code>port.h</code>, etc), or GDC (or DMD) should be fixed to handle the discrepancy between compiler backends. | ||
− | |||
− | |||
− | |||
− | |||
'''Maintenance''' | '''Maintenance''' | ||
− | |||
− | |||
− | |||
− | |||
* To be considered as a project part of GCC, the code in GDC should ideally conform to [http://gcc.gnu.org/codingconventions.html coding standards] of GCC. This should be fixed up in all areas of the code - whatever standard the D frontend or Phobos uses from upstream is not a concern. | * To be considered as a project part of GCC, the code in GDC should ideally conform to [http://gcc.gnu.org/codingconventions.html coding standards] of GCC. This should be fixed up in all areas of the code - whatever standard the D frontend or Phobos uses from upstream is not a concern. | ||
− | + | [[Category:GDC Compiler]] |
Latest revision as of 03:02, 18 February 2018
This is a list of project ideas for GDC - potential improvements, new features, et cetera. As well as a list of ongoing projects going on within GDC.
Fix known bugs
- There are lots of bugs in bugzilla. Everyone is welcome to look at them, reproduce them, comment on them, fix them, etc!
- Other platforms should start being tested with the CI system.
- There are a number of XBUG markers in testsuite. Some of them are for bugs in GDC that no one has looked at in a long time. There should be fewer!
Periodic Tasks
- Merge the
d/dfrontend
sources with upstream DMD releases (stable branch).
- Merge the
libphobos/libdruntime
sources with upstream Druntime releases (stable branch).
- Merge the
libphobos/src
sources with upstream Phobos releases (stable branch).
- Create a release branch and test building GDC with each GCC release.
- Update the latest development branch of GDC to be continually in sync with latest GCC development changes.
See GDC/CurrentReleaseTasks for version specific tasks.
General
(These listed are mixed active/idle stuff that needs more explanation of what's going on!)
- Merging GDC into upstream GCC.
- Porting D to MinGW.
- GCC LTO support is broken horribly, any attempt to use LTO will result in ICE'ing the LTO compiler.
- Support all variants of
--enable-threads=
and--enable-tls
in the GC.
Documentation
- The documentation in d/README is inadequately little, and contains references to old changes that are no where else to be found. This should be improved, and old documentation archived on the wiki.
- Missing d/NEWS and d/CONTRIBUTE documentation.
- The GDC manpage d/gdc.texi could be better written.
- GDC Extended Assembler needs better documentation with multiple examples, such as that found in LDP for GCC.
Internals
- The only supported GDC-style
@attribute
's are"noinline"
,"forceinline"
,"flatten"
, and"target"
. This may need extending as seen fit.
- The macros
IN_GCC
andGCC_SAFE_DMD
which are used to conditionally compile code in the frontend to work against GDC and its backend should be gradually removed from the D frontend, and either made into a runtime hook (ie:target.h
,port.h
, etc), or GDC (or DMD) should be fixed to handle the discrepancy between compiler backends.
Maintenance
- To be considered as a project part of GCC, the code in GDC should ideally conform to coding standards of GCC. This should be fixed up in all areas of the code - whatever standard the D frontend or Phobos uses from upstream is not a concern.