D tools

December 17, 2023 ยท View on GitHub

GitHub tag Bugzilla Issues Buildkite license

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

ProgramScopeDescription
catdocBuildConcatenates Ddoc files.
changedInternalChange log generator.
chmodzipBuildZIP file attributes editor.
ddemanglePublicD symbol demangler.
detabInternalReplaces tabs with spaces.
dgetInternalD source code downloader.
dmanPublicD documentation lookup tool.
dustmitePublicTest case minimization tool.
get_dlibcurl32InternalWin32 libcurl downloader/converter.
rdmdPublicD build tool.
rdmd_testInternalrdmd test suite.
tests_extractorInternalExtracts public unittests (requires DUB)
tolfInternalLine endings converter.
updatecopyrightInternalUpdate the copyright notices in DMD

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.

Building

On a Posix system all tools can be built with:

make 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.