Anyone interested in enhancing the D programming language is welcome to submit a D Improvement Proposal (DIP). Prior to starting your DIP, familiarize yourself with the goals of the DIP process and read the DIP Guidelines.
This document outlines the responsibilities of a DIP author.
Consider writing a DIP for:
- Changes to the language, including syntax and semantics.
- Modifications to the functional behavior of code generated by the compiler.
Assess the full impact of your proposed change; even minor modifications can have far-reaching effects.
Begin by seeking community feedback in the DIP Ideas forum. Your post should detail your proposal, enabling informed feedback. Submissions must be self-contained, but links for additional context are acceptable. Refer to the DIP Forum Guidelines for more information.
Goals of this step:
- Gauge the proposal's feasibility based on community and maintainer feedback.
- Identify potential flaws and gather useful information for crafting your DIP.
Allow two to three weeks for discussion before proceeding. The feedback should inform your decision to continue and assist in preparing a robust initial draft.
If proceeding, appoint a Point of Contact (POC). For single authors, the author is the POC. For multiple authors, choose one among yourselves.
The POC will handle forum postings, communication with the DIP manager, and other necessary interactions. Notify the DIP manager at [email protected] that DIP development is underway.
The primary author should fork the DIP repository, creating a file in the DIPs
subdirectory named 1NNN-(POC initials).md
, e.g., 1NNN-JQC.md
.
Develop your DIP according to the DIP Template, without altering the heading order. Add subheadings as needed and complete all "Required" sections.
Do not submit a pull request at this stage. When ready, post a link to your draft in the DIP Development forum. Ensure the link points to a specific revision of your DIP. Allow two to three weeks for feedback, and revise your DIP as needed.
After feedback, the POC may contact the DIP manager for formal evaluation. If significant revisions have been made since the last feedback round, additional forum feedback may be required. Otherwise, the DIP manager will ask you to submit your DIP as a pull request to the DIP Repository.
The DIP manager will assign a number and rename the file upon merging. Submission timing is at the discretion of the author(s)/POC, but ensure availability to respond to queries during the assessment period.
Language maintainers typically review a DIP within two weeks of notification. The DIP manager will coordinate with maintainers for any necessary deadline extensions and inform the POC.
Maintainers may request minor revisions for clarity or parameter adjustments. The DIP manager will specify mandatory and optional revisions. Prompt response to revision requests is crucial, as failure to comply can lead to rejection or indefinite postponement of the decision.