dmd D Programming Language compiler
Find a file
Martin Kinkelin bb25d82a3b
build.d: Fix dependencies on generated string-import files (#21192)
This is just a byproduct of taking a closer look at this code,
as part of investigating the recent CI failures on Windows, where
the VERSION and SYSCONFDIR.imp rules seem to run twice - and then
fail for the 2nd run, Windows complaining about another process using
the file. I guess that could be an Anti-malware process running right
after creating the file the first time. And both rules check the file
contents as part of their condition, so if the rule is processed twice,
we try to immediately read its contents after the write.

Each of these 2 auto-generated files is string-imported exactly once:

* `SYSCONFDIR.imp` in the driver's `dmd/dinifile.d` (and actually on
  Posix only)
* `VERSION` in the lexer's `dmd/globals.d`

I've revised the deps accordingly, which might avoid processing these
rules multiple times as a side-effect.
2025-04-11 05:03:54 +08:00
.azure-pipelines
.circleci
.github/workflows GHA main: Add Alpine Linux job, to CI-test musl libc (#20741) 2025-01-28 00:28:20 +01:00
changelog purge changelog 2025-03-31 13:33:57 +02:00
ci GHA main: Add Alpine Linux job, to CI-test musl libc (#20741) 2025-01-28 00:28:20 +01:00
compiler build.d: Fix dependencies on generated string-import files (#21192) 2025-04-11 05:03:54 +08:00
druntime ImportC: undefined identifier _Float16 (#21184) 2025-04-09 14:05:05 +08:00
src
.cirrus.yml
.codecov.yml
.editorconfig
.git-blame-ignore-revs
.gitattributes
.gitignore
.pre-commit-config.yaml
azure-pipelines.yml
CODEOWNERS
config.d [stable] build.d: Fix VERSION fallback if git describe fails (#21133) 2025-04-01 22:10:37 +02:00
CONTRIBUTING.md
dub.sdl
LICENSE.txt
Makefile Remove 'samples' folder 2025-01-11 08:12:48 +08:00
posix.mak
README.md Remove 'samples' folder 2025-01-11 08:12:48 +08:00
VERSION bump VERSION to v2.111.0 2025-03-31 12:17:24 +02:00

dlang logo

DMD

GitHub tag Code coverage license

Build status CircleCI Build Status Buildkite


DMD is the reference compiler for the D programming language.

Releases, language specification and other resources can be found on the homepage. Please refer to the guidelines for bug reports to report a problem or browse the list of open bugs.

Overview

This repository is structured into the following directories. Refer to their respective README.md for more in-depth information.

Directory Description
changelog changelog entries for the upcoming release
ci CI related scripts / utilities
compiler root of all compiler (DMD/frontend) related code
compiler/src source code, build system and build instructions
compiler/test tests and testing infrastructure
compiler/docs man pages and internal documentation
compiler/ini predefined dmd.conf files
druntime root of all runtime related code

With a D compiler and dub installed, dmd can be built with:

dub build dmd:compiler

For more information regarding compiling, installing, and hacking on DMD, check the contribution guide and visit the D Wiki.

Nightlies

Nightly builds based of the current DMD / Phobos master branch can be found here.