Ancillary tools for the D programming language compiler
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
DustMite Merge pull request #259 from wilzbach/update-dustmite Oct 6, 2017
man/man1 Wrap lines to 80 chars. Jul 25, 2018
test Add -betterC unittest output Aug 13, 2018
.editorconfig Add a .editorconfig (copied from Phobos) Dec 22, 2017
.gitignore Allow using the tools repo via DUB Jun 17, 2018
.mailmap Add more duplicate contributors to the mailmap file Jul 4, 2018
.travis.yml Add 32-bit dmd-nightly builds to Travis CI Feb 4, 2018
CODEOWNERS Add a CODEOWNERS file for tools Feb 9, 2018
Jenkinsfile add Jenkinsfile Oct 6, 2017
LICENSE.txt Add LICENSE.txt file Dec 28, 2017 Add DUB build explanation to the README Jun 24, 2018
appveyor.yml appveyor.yml: Override DFLAGS Apr 10, 2018
catdoc.d Fix whitespace Oct 18, 2015
changed.d Fix typos in the changed summary text Jul 29, 2018
checkwhitespace.d checkwhitespace.d: Allow individual errors to be turned off. Feb 11, 2018
contributors.d Parse dub, dub-registry & when --all is used. Dec 28, 2017
ddemangle.d Make scripts executable + runnable Jul 3, 2017
detab.d Make scripts executable + runnable Jul 3, 2017
dget.d Remove pragma(lib, curl) Feb 22, 2018
dman.d dman: Use d-tags.json instead of d.tag Aug 8, 2017
dub.sdl Allow using the tools repo via DUB Jun 17, 2018
get_dlibcurl32.bat Add script 'get_dlibcurl32', to auto-create Win32 libcurl import lib. Aug 17, 2013
get_dlibcurl32.d Make scripts executable + runnable Jul 3, 2017
latest-tag update links to dlang Apr 16, 2016
posix.mak Add -betterC unittest output Aug 13, 2018
rdmd.d rdmd: Append binExt to the compiler path to check from the same direc… Apr 10, 2018
rdmd_test.d rdmd_test: Don't attempt to run Makefile test when Make is too old Apr 10, 2018 Fix Travis: fix checking out tags with Feb 19, 2018
tests_extractor.d Add -betterC unittest output Aug 13, 2018
tolf.d Make scripts executable + runnable Jul 3, 2017 Allow using the tools repo via DUB Jun 17, 2018
win32.mak Since --rdmd is required, made it a "non-option" argument instead of … Mar 19, 2018

D tools

GitHub tag Bugzilla Issues Build Status Issue Stats license

This repository hosts various tools redistributed with DMD or used internally during various build tasks.

Program Scope Description
catdoc Build Concatenates Ddoc files.
changed Internal Change log generator.
chmodzip Build ZIP file attributes editor.
ddemangle Public D symbol demangler.
detab Internal Replaces tabs with spaces.
dget Internal D source code downloader.
dman Public D documentation lookup tool.
dustmite Public Test case minimization tool.
get_dlibcurl32 Internal Win32 libcurl downloader/converter.
rdmd Public D build tool.
rdmd_test Internal rdmd test suite.
tests_extractor Internal Extracts public unittests (requires DUB)
tolf Internal Line endings converter.

To report a problem or browse the list of open bugs, please visit the bug tracker.

For a list and descriptions of D development tools, please visit the D wiki.


On a Posix system all tools can be built with:

make -f posix.mak all

Using DUB as a build tool

Most tools can also be built with DUB:

dub build :ddemangle

Running DUB tools

Some tools require D's package manager DUB. By default, DUB builds a binary and executes it. On a Posix system, the source files can directly be executed with DUB (e.g. ./tests_extractor.d). Alternatively, the full single file execution command can be used:

dub --single tests_extractor.d

Remember that when programs are run via DUB, you need to pass in -- before the program's arguments, e.g dub --single tests_extractor.d -- -i ../phobos/std/algorithm.

For more information, please see DUB's documentation.