Help DProgress
Difference (last change) (Author, normal page display)
Changed: 13c13
New code that is to be included must run through a ![]() ![]() |
New code with major additions must run through a ![]() ![]() |
Added: 20a21,22
Smaller additions such as expanding existing functionality or fixing bugs can skip the formal review process. Remember that it is volunteers running this which means pull requests could have long waiting periods before getting reviewed. You can use the newsgroups to peek more interest in the request. |
Helping the progress of D
There are several things keeping D from "going mainstream" in many people's minds. Here, a collection of things that could be done to help push D along its way to becoming a more widely recognized and used language is presented.
This is not intended to be a list purely for speculation or for giving reasons why D isn't popular yet. This is intended to be a list for people who want to help D to progress to pick something and start helping.
- StalePages -- cleanup stale content
![]() |
|
Contributing to Phobos
New code with major additions must run through a Boost Review cycle. It is suggested that you post to the Development Newsgroup to gauge interest and identify it isn't already being worked on. Don't get discouraged from low response as this can be for several reasons, but hopefully a sign that others agree it should be in Phobos will comment. And even if it is decided not to fit, if it is code you are interest in having others are likely too and can be its own library.
The process is a standard three weeks once the code is ready. Two weeks are left for review of the source and API, and is followed by a week of voting. During the review the code can be modified to appease the criticism, and it will be up to the submitter and review manager to decide if it makes sense to continue with a vote or postpone for a later review.
Smaller additions such as expanding existing functionality or fixing bugs can skip the formal review process. Remember that it is volunteers running this which means pull requests could have long waiting periods before getting reviewed. You can use the newsgroups to peek more interest in the request.
Compiler Support
There are those who believe D is not viable until there are several implementations that are working to their fullness (in other words, nearly fully up to date with the spec).
- DMD - The reference implementation, from Digital Mars (Win32 and X86 Linux)
- Needs better packaging (Windows installer, RPM package, Gentoo ebuild, etc.)
- convince Walter to make DMD redistributable so that installers can be made by third parties
- convince Walter to update the instructions at
http://www.digitalmars.com/d/dcompiler.html
- update D Tutorial/InstallingDCompiler when these happen
GDC - GCC D Compiler.
- Older GDC information:
- Perhaps even add PPC Assembly one day...
- Remove stale old web information (2002!)
- A new web page (Anders said it, not me)
- Need a few hundred megs of space and lots of bandwidth (for GDC binaries), that's why... -- AndersFBjörklund
- Put the Mac binaries up at
http://sourceforge.net/projects/gdcmac/
- Put the Win binaries up at
http://sourceforge.net/projects/gdcwin/
LDC - LLVM D compiler.
- Check their
status
Debugging
- Debugging - There's not really any fully-functional debugging for D yet. What can be done:
- A GDB patch to support D demangling
- Demangler:
http://svn.dsource.org/svn/projects/bindings/trunk/demangle.d
- Project:
http://dsource.org/projects/gdb-patches/ (targets: GDB 5.3/6.3)
- Fix the line number bugs in DMD on Linux (just adding symbols for a few of the lines)
- A Windows debugger, or better support for Windows debuggers (I don't really know, I don't use Windows much...)
- DebugEnvironments has some information that might help.
Documentation
Libraries
- Improve runtime library (Phobos)
- Remove usage of printf from object.d
- Up-to-date library Documentation
- Wish List: Template Library (STL)
- Wish List: Widget Toolkit (GUI)
- Wish List: Database Bindings (SQL)
- Windows API bindings
This probably isn't very well thought-out, so hopefully some others will come and clean this page up and make it make more sense and lay it out better?
Related Wiki Pages