Difference between revisions of "GDC"

From D Wiki
Jump to: navigation, search
(Added information about ARM Cortex-M support)
(Old project wiki is offline, so remove)
Line 11: Line 11:
* [http://www.gdcproject.org/ Project website]
* [http://www.gdcproject.org/ Project website]
* [http://bugzilla.gdcproject.org Bug tracker]
* [http://bugzilla.gdcproject.org Bug tracker]
* [http://www.gdcproject.org/wiki Old project wiki]

Revision as of 03:56, 5 February 2014

Compilers: OverviewDMDGDCLDC

Welcome to GDC. This project aims to continue the development of GDC, a GCC frontend for the D programming language.

Useful Links


What is GDC?

GDC is a frontend for the D programming language. By using GCC as a backend, it gives us the ability to target the same platforms that GCC targets.

This project was originally started by David Friedman. His original project page can be found here. Unfortunately, he disappeared from the D scene, and was no longer able to maintain GDC. This project was the result of an effort to help continue David Friedman's work on GDC.


D2 Frontend Version: 2.064

Supported GCC versions


Installation Guide

This documentation page includes information on building and installing GDC alongside your system's host compilers.

Developer Documentation

This documentation page includes information about the internals of GDC, and will most likely only be of use to you if you want to help with the development of GDC.

User Documentation

This documentation page aims to explain a couple of aspects of GDC to user, such as its usage, differences from DMD, and known issues. If can't figure out how to use GDC, take a look here.

Target Documentation


This documentation page aims to explain aspects of the MinGW port of GDC. Such as MinGW specific features, Windows specific topics and known issues.

ARM Cortex-M

In December 2013 an effort was launched to bring D to the ARM Cortex-M family of MCUs. GDC is currently the compiler of choice, and development is currently taking place here.

A minimal "Hello World!" example that requires no D runtime, no standard library (Phobos), and no C can be found here. It serves as an excellent starting point for anyone wishing to pursue their own port of D to the ARM Cortex-M family of microcontrollers.


Support can be found in a couple of different places:

  • On irc.freenode.net, there is a GDC irc channel. It is channel #d.gdc.
  • The D.gnu newsgroup, located here.
  • Sending an inbox message to one of the maintainers.

The D.gnu newsgroup should also be used for general discussion about GDC. A bug, proposal, or enhancement can go to the issue tracker. If you choose to use the issue tracker, please label the issue appropriately. (bug, proposal, enhancement)


A list of open bugs can be found here. Bugs created before this repository was made can be found here. These lists are still maintained, however, new bugs should be submitted to the GDC Bugzilla site. A simple comment saying "This also happens/doesn't happen on Mac\Windows\Linux under GCC x.x.x(GCC version)" can be useful in helping solve the bug.

If you have found a possible bug in GDC, please submit it! Here are some guidelines that you should follow when submitting a bug:

  1. Make sure the bug has not already been submitted to GDC.
  2. Include the GCC version. (e.g. 4.7.0, etc)
  3. Include the git changeset you are using for GDC. (e.g. changset 6f03952ff48f)
  4. Include your operating system.(Mac/Windows/flavour of Linux)
  5. Include a simple test case demonstrating the issue.
  6. if possible, include a patch to fix the issue.

Getting Involved

There are a lot of things that you can do to get involved and help out with GDC. They vary from making simple documentation for some of the files, finding and submitting bugs, testing out bugs on different platforms, or submitting patches for GDC. Any help is appreciated.

Please see Project Ideas for inspiration.