dmd D Programming Language compiler
Find a file
Teodor Dutu fcff1b51ba
Translate _d_newarray{U,iT,T} to a single template (#15299)
* druntime: Copy array allocation functions to `core.internal.array.utils`

This copies `__setArrayAllocLength()`, `__arrayAlloc()` and moves
`__arrayStart()` and `__arrayClearPad()` to
`core.internal.array.utils.d`. This is needed because `_d_newarrayT()`
calls these functions from `rt.lifetime.d`, but the file cannot be
imported from `core.internal.array.creation.d`.

Signed-off-by: Teodor Dutu <teodor.dutu@gmail.com>

* Translate `_d_newarray{U,iT,T}` to a single template

This achieves the following:
- Convert `_d_newarray{U,iT,T}` to a single template `_d_newarrayT` that
handles arrays of elements that either have an init symbol or are
zero-initialised.
- Move compiler lowering to the semantic phase
- Store lowered expression in `NewExp.lowering`

Signed-off-by: Teodor Dutu <teodor.dutu@gmail.com>

---------

Signed-off-by: Teodor Dutu <teodor.dutu@gmail.com>
2023-10-24 10:44:55 +03:00
.azure-pipelines Update downloads.dlang.org links to use https (#14516) 2022-10-05 05:10:57 +03:00
.circleci Temporarily disable code coverage test for circleCI (#15128) 2023-04-25 11:00:56 +03:00
.github/workflows [CODECOV_TOKEN is apparently not required due to implicit GitHub Actions support!] 2023-09-17 20:06:31 +02:00
changelog purge changelog 2023-09-01 20:56:08 +00:00
ci Fix broken macOS CI pipelines (#15376) 2023-07-03 14:20:29 +02:00
compiler Translate _d_newarray{U,iT,T} to a single template (#15299) 2023-10-24 10:44:55 +03:00
druntime Translate _d_newarray{U,iT,T} to a single template (#15299) 2023-10-24 10:44:55 +03:00
src Makefile: stub out all auto-tester-build and auto-tester-test recipes 2023-01-03 01:23:03 +02:00
.cirrus.yml CI: Move non-FreeBSD Cirrus CI coverage jobs to GitHub Actions 2023-09-17 20:06:31 +02:00
.codecov.yml
.editorconfig
.git-blame-ignore-revs Use Array.length instead of Array.dim (#14613) 2022-11-03 21:42:36 -07:00
.gitattributes Fix build script paths to work with new merged repository structure 2022-07-09 23:49:27 +02:00
.gitignore gitignore: ignore vim backup files 2023-02-14 10:23:53 +01:00
.pre-commit-config.yaml Add Valgrind GC integration (#15304) 2023-06-15 01:01:42 -07:00
azure-pipelines.yml Merge branch 'stable' into merge_stable 2022-02-11 20:17:02 +01:00
CODEOWNERS
config.d fix(dub): Make config.d executable to incremental compilation (#13712) 2022-02-28 14:08:59 +02:00
CONTRIBUTING.md small additions to CONTRIBUTING.md (#14975) 2023-03-10 08:48:52 +02:00
dub.sdl Fix Issue 23838 - DMD lexer / parser examples might not compile (#15106) 2023-04-17 15:57:30 +03:00
LICENSE.txt
posix.mak Makefile: stub out all auto-tester-build and auto-tester-test recipes 2023-01-03 01:23:03 +02:00
README.md Update README following root -> compiler move 2022-07-11 19:43:55 +02:00
VERSION bump VERSION to v2.105.2 2023-09-15 21:01:08 +00:00
win32.mak Makefile: stub out all auto-tester-build and auto-tester-test recipes 2023-01-03 01:23:03 +02:00
win64.mak Fix build script paths to work with new merged repository structure 2022-07-09 23:49:27 +02:00

dlang logo

DMD

GitHub tag Code coverage Bugzilla Issues 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
compiler/samples Various code examples
druntime root of all runtime related code

For more general 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.