Skip to content

Upgrade frontend & libs to v2.111 #4877

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 705 commits into from
Apr 12, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
705 commits
Select commit Hold shift + click to select a range
846e2ca
Make `likely` and `unlikely` templates (dlang/dmd!20680)
dkorpel Jan 10, 2025
130dddc
dmd: Fix interface for C++ backends
ibuclaw Jan 10, 2025
68208a5
Prepare import paths mechanism for metadata
rikkimax Dec 30, 2024
75dc73f
core.builtins: Fix return value of likely/unlikely
ibuclaw Jan 10, 2025
4f6bc94
Remove redundant else
0-v-0 Jan 11, 2025
7282088
infer attributes for generated functions
WalterBright Jan 11, 2025
0c170be
fix dlang/dmd!20686 infer attributes for generated functions
WalterBright Jan 11, 2025
7840a02
Use const when possible (dlang/dmd!20687)
0-v-0 Jan 12, 2025
c3feae9
Fix dlang/dmd!20688 SO_REUSEPORT not defined (dlang/dmd!20689)
thewilsonator Jan 13, 2025
a895191
Fix dlang/dmd!20691 - Add SO_REUSEPORT for Solaris (dlang/dmd!20692)
thewilsonator Jan 13, 2025
64822b0
Fix custom_gc to avoid alignment issues on platforms where alignment
schveiguy Jan 13, 2025
7d9285a
Remove redundant else
0-v-0 Jan 14, 2025
2515f75
fix dlang/dmd!20516 ImportC undefined identifier _Float16 (dlang/dmd!…
WalterBright Jan 14, 2025
4232d0e
Remove almost all blockmeta/cache functionality from rt, using the GC
schveiguy Jan 14, 2025
699018c
Fix issue with appending zero items to an array that was previously
schveiguy Jan 14, 2025
c9cb501
Zero out padding for 32-bit systems for large blocks.
schveiguy Jan 14, 2025
2b1609b
Trying to "fix" obvious non-deterministic test.
schveiguy Jan 14, 2025
828cc77
fix translation of nested array construction length.
schveiguy Jan 14, 2025
b45c27c
globals.h: Add missing C++ constructors for ImportPathInfo (dlang/dmd…
ibuclaw Jan 14, 2025
f7a43dc
Merge pull request dlang/dmd!20698 from schveiguy/gcfinalizerarrays
thewilsonator Jan 14, 2025
b74db00
Update unknown ICE error message to point to GitHub (dlang/dmd!20706)
thewilsonator Jan 15, 2025
9071aab
Add fieldwise to Previews (dlang/dmd!20708)
dkorpel Jan 15, 2025
1023996
Improve diff based AUTO_UPDATE (dlang/dmd!20703)
dkorpel Jan 15, 2025
c905b92
Make inferred attribute failure errors more compact and consistent (d…
dkorpel Jan 16, 2025
b952482
Fix format string injection in safe errors (dlang/dmd!20712)
dkorpel Jan 16, 2025
c502ae9
Remove debug() / version() integers (dlang/dmd!20713)
dkorpel Jan 16, 2025
c58c7fd
Store messages directly in AttributeViolation (dlang/dmd!20714)
dkorpel Jan 16, 2025
99585ca
Use variadic arguments for AttributeViolation format string
dkorpel Jan 16, 2025
9dc383e
Fix build on i686, arm64 and x86_64+32b multilib for Darwin. (dlang/d…
iains Jan 16, 2025
2e2cbeb
Remove redundant else (dlang/dmd!20717)
0-v-0 Jan 16, 2025
d16041f
Improve error locations when lexing number literals
dkorpel Jan 16, 2025
9c4982d
Re-enable tests of temporary in condition and throwing callee (dlang/…
dkorpel Jan 16, 2025
559ed45
Use selective imports when importing from `core.stdc` in `core` (dlan…
jnms-me Jan 17, 2025
4a38b78
backend: Make BC a D enum (dlang/dmd!20724)
dkorpel Jan 17, 2025
d4acc10
Use number suffix instead of cast (dlang/dmd!20729)
0-v-0 Jan 18, 2025
2de1127
Don't reference DMD-specific flags when IN_GCC (dlang/dmd!20731)
ibuclaw Jan 18, 2025
945a446
dcast: Don't pass format string over varargs (dlang/dmd!20732)
ibuclaw Jan 18, 2025
60a604a
Remove usage of obsolete `_fdToHandle` in rt/dmain2.d (dlang/dmd!20722)
jnms-me Jan 18, 2025
56450e0
Add an assert-based segfault handler to `etc.linux.memoryerror` (dlan…
jnms-me Jan 18, 2025
3b76a98
Use selective imports when importing from `core.stdc` in `core.intern…
jnms-me Jan 19, 2025
ab9e0ba
druntime: Add version(GNU) definitions of c_long and c_ulong
ibuclaw Jan 19, 2025
a0172bc
druntime: Add version(GNU) imports to rt.deh and sections modules
ibuclaw Jan 19, 2025
5a87c46
Add test cases for static arrays initialization with hex string (dlan…
MrSmith33 Jan 19, 2025
2f990f8
druntime: Update GNU implementation of callWithStackShell
ibuclaw Jan 19, 2025
9eb9f74
druntime: Add GNU_InlineAsm implementations
ibuclaw Jan 19, 2025
5e253ea
Use selective imports when importing from `core.stdc` in druntime tes…
jnms-me Jan 20, 2025
f3b0277
Use selective imports when importing from `core.stdc` in `rt` (dlang/…
jnms-me Jan 20, 2025
9405547
Disallow initializing fields with themself (dlang/dmd!20696)
dkorpel Jan 20, 2025
44ca956
Remove D1 operators from the D2 language (dlang/dmd!20744)
dkorpel Jan 20, 2025
eb526c5
Remove more D1 operator code (dlang/dmd!20746)
dkorpel Jan 21, 2025
ef04d9b
Remove class allocator parsing (dlang/dmd!20747)
dkorpel Jan 21, 2025
1c2dd3d
opover.d: remove goto, reduce indentation (dlang/dmd!20748)
dkorpel Jan 21, 2025
8c7931c
Remove redundant else (dlang/dmd!20751)
0-v-0 Jan 21, 2025
5431bca
Move class __cmp lowering to opover.d (dlang/dmd!20749)
dkorpel Jan 21, 2025
cca8c5c
opover.d: Separate and simplify BinExp/AssignExp cases (dlang/dmd!20750)
dkorpel Jan 21, 2025
20078b3
Make `delete` an identifier instead of keyword (dlang/dmd!20745)
dkorpel Jan 21, 2025
137ab37
[expressionsem.d] factorise some commonalities of BinExp semantic (dl…
thewilsonator Jan 22, 2025
c5fe1dd
Separate visit() functions from op_overload (dlang/dmd!20754)
dkorpel Jan 22, 2025
da7ca47
Remove redundant BinExp semantic type check (dlang/dmd!20755)
dkorpel Jan 22, 2025
9b8104b
Perform binSemanticProp in opOverloadBinary (dlang/dmd!20757)
dkorpel Jan 22, 2025
97188ad
Deduplicate binary overload function selection (dlang/dmd!20759)
dkorpel Jan 23, 2025
66cc6e7
druntime: Upstream exception stack traces on musl platforms from LDC …
JohanEngelen Jan 23, 2025
4cf8555
Move AddExp type check from typeCombine to expressionSemantic
dkorpel Jan 23, 2025
a0301cc
Short-circuit checkArithmeticBin when lhs is an error
dkorpel Jan 23, 2025
76c243b
Move Expression.checkXXX functions to expressionsem.d (dlang/dmd!20764)
dkorpel Jan 23, 2025
2b5abac
Fix rebase of checkArithmetic (dlang/dmd!20767)
dkorpel Jan 23, 2025
ed1b9b6
opover.d: simplify opOverloadAssign and search_function (dlang/dmd!20…
dkorpel Jan 23, 2025
83da882
Fix dlang/dmd!20730 - print SymOff with unsigned offset (dlang/dmd!20…
dkorpel Jan 23, 2025
3a107ed
opover.d: deduplicate tryAliasThisForLhs and checkAliasThisForLhs (dl…
dkorpel Jan 23, 2025
63f643a
Rename Id.index to Id.opIndex etc. (dlang/dmd!20771)
dkorpel Jan 24, 2025
ef5945d
Remove references to D1 `opDot` (dlang/dmd!20772)
dkorpel Jan 24, 2025
3be4fe0
Remove BinExp.att fields (dlang/dmd!20774)
dkorpel Jan 24, 2025
056a05d
Add Windows BCrypt bindings (dlang/dmd!20740)
ichordev Jan 25, 2025
a780ba2
Add `core.sys.windows.bcrypt` to the build process (dlang/dmd!20780)
0xEAB Jan 25, 2025
09c80fb
Mark `NT_SUCCESS` with various applicable attributes (dlang/dmd!20781)
0xEAB Jan 25, 2025
7bb4f9d
Reduce size of StructLiteralExp (dlang/dmd!20779)
dkorpel Jan 25, 2025
04a6399
Port ntdef macros `NT_INFORMATION`, `NT_WARNING` and `NT_ERROR` (dlan…
0xEAB Jan 25, 2025
5808aa5
Refactor use of Loc/SourceLoc (dlang/dmd!20785)
dkorpel Jan 26, 2025
3140d60
implement cdpopcnt for AArch64 (dlang/dmd!20787)
WalterBright Jan 27, 2025
5ad1a4f
Improve opBinary error messages (dlang/dmd!20789)
dkorpel Jan 27, 2025
ea05398
add __builtin__popcount() for ImportC (dlang/dmd!20790)
WalterBright Jan 27, 2025
65b35b4
GHA main: Add Alpine Linux job, to CI-test musl libc (dlang/dmd!20741)
kinke Jan 27, 2025
8e72fc8
opover.d: refactor common DotTemplateInstanceExp creation logic (dlan…
dkorpel Jan 28, 2025
79cad33
Improve opIndex/opSlice error messages (dlang/dmd!20791)
dkorpel Jan 28, 2025
7ed747b
opover.d: Refactor pattern matching with isXXX (dlang/dmd!20794)
dkorpel Jan 28, 2025
06115c7
expressionsem.d: Combine redundant branches (dlang/dmd!20796)
dkorpel Jan 28, 2025
3a949e5
Check array types with new `isStaticOrDynamicArray` function (dlang/d…
dkorpel Jan 28, 2025
abb4d09
Move Expression.checkValue to expressionsem.d (dlang/dmd!20797)
dkorpel Jan 28, 2025
b087ef9
Replace C pointer syntax with D (dlang/dmd!20799)
dkorpel Jan 28, 2025
fb74e8b
Fix dlang/dmd!20763 - Inconsistent handling of type + value in typeof…
dkorpel Jan 29, 2025
7e0f3cf
Improve opOpAssign error messages (dlang/dmd!20800)
dkorpel Jan 30, 2025
f44bad9
Improve error messages for `opUnary` (dlang/dmd!20801)
dkorpel Jan 30, 2025
d0fac48
Remove dead debug/version level logic (dlang/dmd!20802)
dkorpel Jan 30, 2025
bec67a8
Don't expose internal names in errors (dlang/dmd!20803)
dkorpel Jan 30, 2025
185db58
Move toChars overrides to hdrgen.d (dlang/dmd!20804)
dkorpel Jan 30, 2025
08b4a62
Refactor opover.d to improve style (dlang/dmd!20807)
dkorpel Jan 30, 2025
b6a2eb4
Improve error messages for missing opCmp / opEquals (dlang/dmd!20806)
dkorpel Jan 30, 2025
0ff0c97
Remove reference to `_d_arrayassign` in errors (dlang/dmd!20808)
dkorpel Jan 30, 2025
41262d6
Shrink Loc from 12 to 4 bytes (dlang/dmd!20777)
dkorpel Jan 31, 2025
43de5ee
Fix issue 20812: hasIndirections wrong when void has qualifiers. (dla…
jmdavis Feb 3, 2025
db5ec9c
Fix race condition when alternative GC mechanisms are used to scan (d…
schveiguy Feb 5, 2025
2056dbd
Remove unnecessary NoPointersBitmapPayload template.
schveiguy Feb 8, 2025
d192e32
Remove knowledge of metadata storage from rt/lifetime and (dlang/dmd!…
schveiguy Feb 9, 2025
d5c3cbd
Rename short Scope fields (dlang/dmd!20841)
dkorpel Feb 10, 2025
65fa475
dcast.d: Remove goto (dlang/dmd!20845)
dkorpel Feb 10, 2025
b4762d7
Use binary search for Loc substitutions (dlang/dmd!20843)
dkorpel Feb 10, 2025
521316a
Remove `const ref` from `Loc` parameters (dlang/dmd!20846)
dkorpel Feb 12, 2025
51d6dcc
Fix dlang/dmd!20831 - Mangle conflict after ImportC statement express…
dkorpel Feb 12, 2025
5a70f28
druntime: redirect dual-ABI functions on glibc to IEEE128 version ...…
liushuyu Feb 13, 2025
ca6fa3e
Optimize access to Loc.filename
dkorpel Feb 13, 2025
6f0cfc1
Fix stale references to BaseLoc
dkorpel Feb 13, 2025
40e9581
Improve parser errors for statements at global scope (dlang/dmd!20871)
dkorpel Feb 15, 2025
2f0f48c
Rephrase "no identifier for declarator" parse error (dlang/dmd!20872)
dkorpel Feb 16, 2025
24482d4
Deprecate typesafe variadic class arguments (dlang/dmd!20673)
dkorpel Feb 16, 2025
2b00336
createModule: pass `params` by parameter instead of `global.`
dkorpel Feb 16, 2025
1874efb
Remove unused TypeIdentifier.originalSymbol
dkorpel Feb 16, 2025
e582007
Put more types in Mcache
dkorpel Feb 16, 2025
244450c
Remove version (tracegc) blocks (dlang/dmd!20881)
dkorpel Feb 16, 2025
d47114a
Print function bodies instead of __lambda in error messages
dkorpel Feb 13, 2025
8c3f69b
Improve field layout of Declaration
dkorpel Feb 11, 2025
c01c6c3
Use __FILE__, __LINE__ for templated tracegc hooks (dlang/dmd!20882)
dkorpel Feb 17, 2025
7fcb501
Fix allman brace style (dlang/dmd!20885)
dkorpel Feb 17, 2025
58b8c9c
Simplify linkage_location unittest
dkorpel Feb 17, 2025
7c6c97a
Remove redundant tests
dkorpel Feb 17, 2025
3cb76e2
Fix issue dlang/dmd!17503 - Associative Arrays improperly register a …
rainers Feb 13, 2025
5898071
Merge pull request dlang/dmd!20886 from dkorpel/unittest-linkage-loc
dlang-bot Feb 17, 2025
c0ca731
Fix fail_compilation/retscope TEST_OUTPUT blocks
dkorpel Feb 17, 2025
730af05
fix frontend.h
rainers Feb 17, 2025
c28fba7
substitute inout with const in key and value types
rainers Feb 18, 2025
32bdb2d
generate full AA typeinfo in InExp
rainers Feb 18, 2025
1625b8b
Fix dlang/dmd!20888 - Compiler spits out implicit conversion technoba…
0xEAB Feb 18, 2025
e68cfb4
add test case from dlang/dmd!20853
rainers Feb 18, 2025
8d98512
adapt TypeInfoAssociativeArrayDeclaration in declaration.h
rainers Feb 18, 2025
a054d3d
remove redundant getTypeInfoType call
rainers Feb 18, 2025
df40f6c
do not gag a fatal error (dlang/dmd!20892)
rainers Feb 18, 2025
f6571e5
Expand `toErrMsg` to other types (dlang/dmd!20896)
dkorpel Feb 18, 2025
9bb421d
Escape backticks in error messages (dlang/dmd!20893)
dkorpel Feb 18, 2025
9d64a8b
Merge pull request dlang/dmd!20863 from rainers/rainer_aa_fak_entry_ti
dlang-bot Feb 19, 2025
050fe93
Use Entry struct from TypeInfo_AssociativeArray instead of local one,…
schveiguy Feb 19, 2025
523ae81
Extract Dsymbol.checkCtorConstInit and make it a visitor in dsymbolse…
MatthewQiu-5 Feb 20, 2025
c5ddefa
Improve error for failing opDispatch instantiation (dlang/dmd!20902)
dkorpel Feb 20, 2025
16aa3fa
Fix dlang/dmd!20889 - ImportC: Usage of `typedef` types decays to ori…
dkorpel Feb 20, 2025
b7146d3
Deprecate the old ODBC 3.5 modules in core.sys.windows.
LightBender Feb 23, 2025
5d9c37e
Fix deprecation message.
LightBender Feb 24, 2025
232ec38
Fix deprecation message.
LightBender Feb 24, 2025
df666af
Move ODBVER outside of deprecation block.
LightBender Feb 24, 2025
4e2619c
Fix deprecation message.
LightBender Feb 24, 2025
dde46ba
fix dlang/dmd!20912 lexing problem with #define // comments (dlang/dm…
WalterBright Feb 25, 2025
cd78cd2
Merge pull request dlang/dmd!20910 from LightBender/odbc-deprecate
LightBender Feb 25, 2025
4f676c7
Extract Dsymbol.oneMember to a visitor in dsymbolsem (dlang/dmd!20915)
MatthewQiu-5 Feb 25, 2025
c3b6928
Fix importc_compare test on Windows (dlang/dmd!20922)
pbackus Feb 27, 2025
462b2e7
Devirtualize Dsymbol.isXXX functions (dlang/dmd!20925)
dkorpel Feb 27, 2025
c945c60
Use typed `STC` instead of StorageClass / `ulong` (dlang/dmd!20928)
dkorpel Feb 28, 2025
63a244b
Fix dlang/dmd!20929 - #line directives mess up -verrors=context (dlan…
dkorpel Feb 28, 2025
24fdb7c
Remove cast(STC) from TypeTag.semantic (dlang/dmd!20931)
dkorpel Feb 28, 2025
3be3ec1
add Placement New
WalterBright Nov 10, 2024
cf24c4a
Moved Staticforeach.lowerNonArrayAggregate and Staticforeach.prepare …
MatthewQiu-5 Mar 4, 2025
71eb895
Move Dsymbol.hasStaticCtorOrDtor to dsymbolsem (dlang/dmd!20943)
MatthewQiu-5 Mar 4, 2025
dade37a
Move ClassDeclaration.isFuncHidden to dsymbolsem (dlang/dmd!20945)
MatthewQiu-5 Mar 5, 2025
f5a8b1b
Merge branch 'stable' into merge-stable
dkorpel Mar 5, 2025
87e4091
Merge pull request dlang/dmd!20952 from dkorpel/merge-stable
thewilsonator Mar 5, 2025
d6cf8e7
Moved StaticForeach.lowerArrayAggregate to expressionsem (dlang/dmd!2…
MatthewQiu-5 Mar 6, 2025
2784b8a
Move ClassDeclaration.vtblSymbol to dsymbolsem (dlang/dmd!20956)
MatthewQiu-5 Mar 6, 2025
dd3f7e4
Update copyright years to 2025 (dlang/dmd!20958)
dkorpel Mar 6, 2025
a0b8243
add exe1.c to test suite (dlang/dmd!20957)
WalterBright Mar 6, 2025
0e64a77
detab source code (dlang/dmd!20962)
WalterBright Mar 7, 2025
0af2988
fix dlang/dmd!20960 i = i && 1; fails at runtime (dlang/dmd!20961)
WalterBright Mar 7, 2025
fca0834
getting first two tests in exe1.c to run (dlang/dmd!20968)
WalterBright Mar 9, 2025
18e1b86
Accept __rvalue attribute on ref functions; which will force the resu…
TurkeyMan Mar 10, 2025
62aac07
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Mar 13, 2025
0ac84e8
Merge fix: Adapt to is…() casing change
kinke Mar 13, 2025
ad7258b
[C++ header fixes]
kinke Mar 13, 2025
811e853
[adapt to fields => functions]
kinke Mar 13, 2025
a57715a
[adapt to new free-standing functions]
kinke Mar 13, 2025
b384020
[adapt to Loc signature changes - from Loc ref to value]
kinke Mar 13, 2025
b855376
[warnings => useWarnings]
kinke Mar 13, 2025
451392a
[adapt to printErrorContext now being an enum]
kinke Mar 13, 2025
0deed80
[adapt to removed locToChars() function]
kinke Mar 13, 2025
2083f59
[adapt to removed debug/version levels]
kinke Mar 13, 2025
d722919
[adapt to imppath now being an array of ImportPathInfos]
kinke Mar 13, 2025
9f6e074
[misc D merge fixes]
kinke Mar 13, 2025
a756c83
Bump LDC and front-end versions
kinke Mar 13, 2025
ea13115
[fix `-d-debug`]
kinke Mar 13, 2025
2e9e770
[misc. druntime merge fixes]
kinke Mar 13, 2025
be4c71c
[adapt to new `entry` TypeInfo field for AA TypeInfos]
kinke Mar 13, 2025
b431722
[fix not-reachable warnings]
kinke Mar 13, 2025
6bef140
[misc. platform-specific druntime fixes]
kinke Mar 13, 2025
40702a5
[adapt failing lit-tests]
kinke Mar 13, 2025
92a31ca
memoryerror.d: Fix AnySupported version condition (dlang/dmd!20983)
dkorpel Mar 13, 2025
63c7032
[ldmd: adopt upstream CLI changes]
kinke Mar 13, 2025
986ba4f
[fix SARIF output]
kinke Mar 13, 2025
8814a24
[minimally adapt some new dmd-testsuite tests]
kinke Mar 14, 2025
68977df
GHA: Don't run workflows for pushes to upstream merge-X.Y.Z branches
kinke Mar 14, 2025
56dcc14
Phobos: HACK around std.json.JSONValue.emptyObject issue (overlapping…
kinke Mar 14, 2025
c10d92a
druntime: Compile-in reworked etc.linux.memoryerror with LDC support
kinke Mar 14, 2025
4710c99
[adapt to newly templated _d_newThrowable]
kinke Mar 15, 2025
892c5ed
[add support for placement-new]
kinke Mar 15, 2025
359850d
Fix dlang/dmd!20982 - wrong line number in iasmgcc (dlang/dmd!20993)
dkorpel Mar 15, 2025
89ab0f4
Move genCfunc to cxxfrontend (dlang/dmd!20992)
dkorpel Mar 16, 2025
727a813
druntime: Fix compilation of rt.cover on Android (dlang/dmd!21015)
kinke Mar 17, 2025
e65aa66
Expose SourceLoc to C++ interface (dlang/dmd!20980)
ibuclaw Mar 17, 2025
a2affac
[stable] C++ header fixes for declaration, expression, and typinf (dl…
ibuclaw Mar 17, 2025
5041634
C++ headers: Add 3 Declaration bitfield setters/getters required by LDC
kinke Mar 17, 2025
dd77f58
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Mar 17, 2025
444eb51
druntime: Add module declaration to rt.invariant, to prevent conflict…
kinke Mar 17, 2025
f641425
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Mar 17, 2025
e267822
Fix dlang/dmd!21020 - Indexing a *cast* AA yields no lvalue anymore (…
kinke Mar 18, 2025
1f33485
Consolidate timetrace implementations (#4884)
kinke Mar 19, 2025
00734d0
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Mar 19, 2025
8265cfc
dmd-testsuite: Disable new runnable/exe1.c for LDC
kinke Mar 19, 2025
e69bed7
druntime: Fix v2.111 merge conflicts in test Makefiles (#4883)
the-horo Mar 20, 2025
74c23a4
Merge remote-tracking branch 'origin/master' into merge-2.111
kinke Mar 20, 2025
94156e1
druntime: Apply workaround for test exceptions->assert_fail for mode …
kinke Mar 20, 2025
9e37ab0
druntime: Merge fix - pre-include osmodel.mak when needing OS before …
kinke Mar 20, 2025
428c20f
druntime: Fix backtrace tests with -O in 'exceptions' integration test
kinke Mar 20, 2025
9a39b91
Add C++23 to CppStdRevision enum (dlang/dmd!21043)
ibuclaw Mar 21, 2025
946af6d
druntime: Little Windows-specific merge fix for test/shared/Makefile
kinke Mar 21, 2025
75ea0cd
druntime: Enforce cl.exe as Windows preprocessor for test importc_com…
kinke Mar 21, 2025
323abdc
Windows: Work around MS cl.exe preprocessor quirk
kinke Mar 21, 2025
74445eb
Improve UFCS/property error message (dlang/dmd!21046)
dkorpel Mar 21, 2025
904e24c
Fix dlang/dmd!21045 - import __stdin causes compilation to pause whil…
ibuclaw Mar 22, 2025
d4d84b5
Keep frame pointers by default with -O for some targets (#4889)
kinke Mar 22, 2025
93deabb
druntime: Disable test importc_compare on macOS arm64 for now
kinke Mar 22, 2025
33247d2
druntime: Disable test exceptions->rt_trap_exceptions more selectivel…
kinke Mar 22, 2025
f3e5130
CMake: Compile Phobos unittests with -checkaction=context
kinke Mar 22, 2025
0037827
[fix oversight in dmd/timetrace.h, causing a warning]
kinke Mar 22, 2025
7acdada
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Mar 23, 2025
54011ee
[adapt new test]
kinke Mar 23, 2025
e39ccf7
GHA: Work around weird macOS regression after switching to homebrew make
kinke Mar 23, 2025
9df50dd
[druntime: Little merge-fixes for core.thread.fiber.base]
kinke Mar 23, 2025
870bf17
Merge remote-tracking branch 'origin/master' into merge-2.111
kinke Mar 25, 2025
88f5d4e
[add changelog entry]
kinke Mar 25, 2025
abb6663
Bump bundled dlang tools and dub to latest RCs
kinke Mar 25, 2025
f4d3d4f
Update source code and coverage links (dlang/dmd!21111)
faresbakhit Mar 29, 2025
601bef5
Fix dlang/dmd!21024 - Optimize x^^c expressions (dlang/dmd!21082)
faresbakhit Mar 29, 2025
9159cea
Revert "Fix dlang/dmd!21024 - Optimize x^^c expressions (dlang/dmd!21…
dkorpel Mar 29, 2025
46631ca
Fix dlang/dmd!21098 (dlang/dmd!21132)
kinke Apr 1, 2025
613e7b5
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Apr 2, 2025
115aa33
Bump Phobos
kinke Apr 2, 2025
7410eb1
Merge remote-tracking branch 'origin/master' into merge-2.111
kinke Apr 2, 2025
b870db5
Bump bundled dlang tools and dub to final versions
kinke Apr 2, 2025
d5654bd
fix dlang/dmd!21153 - [REG 2.111.0] Infinite loop in isAliasThisTuple…
ibuclaw Apr 5, 2025
feffd73
fix compilation of ucontext_t-based fibers (dlang/dmd!21156)
denizzzka Apr 6, 2025
bbff0a9
fix dlang/dmd!21153 - [REG 2.111.0] Infinite loop in isAliasThisTuple
ibuclaw Apr 5, 2025
150a17e
ImportC: undefined identifier _Float16 (dlang/dmd!21184)
drpriver Apr 9, 2025
9b1358b
CI: Disable lit-test sanitizers/asan_fiber.d on macOS arm64 with RT_S…
kinke Apr 9, 2025
d515537
Fix dlang/dmd!21189 - wrong/missing error line when source file isn't…
dkorpel Apr 9, 2025
1096359
Fix dlang/dmd!21179 - Failure to convert const(T) to T after type is …
dkorpel Apr 10, 2025
60079c3
Fix segmentation fault on macOS 15.4 (dlang/dmd!21176)
s-ludwig Apr 12, 2025
df747ff
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Apr 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .github/actions/1-setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,12 @@ runs:
if: runner.os == 'Windows'
shell: cmd
run: make --version
- name: 'macOS: Install a more recent GNU make'
if: runner.os == 'macOS'
shell: bash
run: |
brew install make
gmake --version

- name: 'Windows: Download & extract libcurl' # into ../libcurl/ldc2
if: runner.os == 'Windows'
Expand Down
15 changes: 1 addition & 14 deletions .github/actions/4c-test-dmd/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,7 @@ runs:
- name: 'Posix: Run DMD testsuite'
if: runner.os != 'Windows'
shell: bash
run: |
set -eux
repoDir=$PWD
cd ../build
if type -P apk &>/dev/null; then
# Alpine: run full dmd-testsuite-debug
ctest -V -R 'dmd-testsuite' -E '^dmd-testsuite$'
# these two tests require extra flags "-link-defaultlib-debug -frame-pointer=all": https://github.com/ldc-developers/ldc/issues/4694
# => remove before running optimized dmd-testsuite separately
rm $repoDir/tests/dmd/runnable/{test17559.d,test19086.d}
ctest -V -R '^dmd-testsuite$'
else
ctest -V -R "dmd-testsuite"
fi
run: cd ../build && ctest -V -R "dmd-testsuite"

- name: 'Windows: Run DMD testsuite'
if: runner.os == 'Windows'
Expand Down
2 changes: 0 additions & 2 deletions .github/actions/4d-test-libs/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@ runs:
excludes+='|^std.internal.math.gammafunction'
# FIXME: failing unittest(s) with enabled optimizations
excludes+='|^std.math.exponential(-shared)?$'
# FIXME: subtest rt_trap_exceptions fails
excludes+='|^druntime-test-exceptions-debug$'
# FIXME: sporadically hanging
excludes+='|^core.thread-shared$'
fi
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@

name: Main
on:
- pull_request
- push
pull_request:
push:
branches-ignore:
- 'merge-*' # don't run on pushes to merge-X.Y.Z branches, they are usually PRs
tags: # explicitly needed to run for all tags, due to the branches filter above
- '**'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand Down
22 changes: 20 additions & 2 deletions .github/workflows/supported_llvm_versions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@

name: Vanilla LLVM
on:
- pull_request
- push
pull_request:
push:
branches-ignore:
- 'merge-*' # don't run on pushes to merge-X.Y.Z branches, they are usually PRs
tags: # explicitly needed to run for all tags, due to the branches filter above
- '**'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand Down Expand Up @@ -69,6 +73,12 @@ jobs:
sudo apt-get update
sudo apt-get install gdb lld-${{ matrix.llvm_version }} llvm-${{ matrix.llvm_version }}-dev libclang-common-${{ matrix.llvm_version }}-dev

- name: 'macOS: Install a more recent GNU make'
if: runner.os == 'macOS'
run: |
brew install make
gmake --version

- name: 'macOS: Try to restore cached LLVM'
if: runner.os == 'macOS'
uses: actions/cache@v4
Expand Down Expand Up @@ -129,6 +139,14 @@ jobs:
if [[ '${{ runner.os }}' == 'Linux' ]]; then
# FIXME: lsan_interceptors.cpp:82 "((!lsan_init_is_running)) != (0)"
rm tests/sanitizers/lsan_memleak.d
elif [[ '${{ runner.os }}' == 'macOS' ]]; then
# work around weird lit-test `plugins/addFuncEntryCall/testPlugin.d`
# regression after switching to homebrew make (default CXX is clang++)
export CXX=c++
if [[ '${{ matrix.cmake_flags }}' =~ -DRT_SUPPORT_SANITIZERS=ON ]]; then
# FIXME: regressed with druntime v2.111 on macOS arm64 (but works on Linux x86_64)
rm tests/sanitizers/asan_fiber.d
fi
fi
ctest -V -R "lit-tests"
- name: Run DMD testsuite
Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# LDC master

#### Big news
- Frontend, druntime and Phobos are at version [2.111.0](https://dlang.org/changelog/2.111.0.html). (#4877)
- Keep frame pointers by default with `-O` for some targets, notably AArch64 (except Windows), x86_64 (except Windows and glibc Linux), Windows x86, and Android. This fixes druntime backtraces with optimized code (incl. prebuilt druntime/Phobos). (#4889)
- The prebuilt (non-musl) Linux packages are now generated on Ubuntu 22.04; the minimum glibc version has accordingly been raised from v2.31 to v2.35. (#4893)
- ldc2.conf: Arrays can now be appended to via the `~=` operator. (#4848, #4856)
- New `--installWithSuffix` command-line option for the `ldc-build-runtime` tool, to simplify copying the libraries to an existing LDC installation. (#4870)
Expand Down
5 changes: 2 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -117,9 +117,9 @@ include(GetLinuxDistribution)
#

# Version information
set(LDC_VERSION "1.40.1") # May be overridden by git hash tag
set(LDC_VERSION "1.41.0") # May be overridden by git hash tag
set(DMDFE_MAJOR_VERSION 2)
set(DMDFE_MINOR_VERSION 110)
set(DMDFE_MINOR_VERSION 111)
set(DMDFE_PATCH_VERSION 0)

set(DMD_VERSION ${DMDFE_MAJOR_VERSION}.${DMDFE_MINOR_VERSION}.${DMDFE_PATCH_VERSION})
Expand Down Expand Up @@ -414,7 +414,6 @@ set(DRV_HDR
driver/linker.h
driver/plugins.h
driver/targetmachine.h
driver/timetrace.h
driver/toobj.h
driver/tool.h
)
Expand Down
44 changes: 23 additions & 21 deletions dmd/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,11 @@ Note that these groups have no strict meaning, the category assignments are a bi
| [frontend.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/frontend.d) | An interface for using DMD as a library |
| [errors.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/errors.d) | Error reporting implementation |
| [errorsink.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/errorsink.d) | Error reporting interface |
| [sarif.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/sarif.d) | Generates SARIF reports for errors and warnings. |
| [target.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/target.d) | Manage target-specific parameters for cross-compiling (for LDC/GDC) |
| [compiler.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/compiler.d) | Describe a back-end compiler and implements compiler-specific actions |
| [deps.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/deps.d) | Implement the `-deps` and `-makedeps` switches |
| [timetrace.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/timetrace.d) | Build time profiling utility |

### Lexing / parsing

Expand Down Expand Up @@ -96,14 +99,14 @@ Note that these groups have no strict meaning, the category assignments are a bi

| File | Purpose |
|-----------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|
| [parsetimevisitor.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/parsetimevisitor.d) | General [visitor](https://en.wikipedia.org/wiki/Visitor_pattern) for AST nodes |
| [permissivevisitor.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/permissivevisitor.d) | Subclass of ParseTimeVisitor that does not `assert(0)` on unimplemented nodes |
| [strictvisitor.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/strictvisitor.d) | Visitor that forces derived classes to implement `visit` for every possible node |
| [visitor.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/visitor.d) | A visitor implementing `visit` for all nodes present in the compiler |
| [transitivevisitor.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/transitivevisitor.d) | Provide a mixin template with visit methods for the parse time AST |
| [postordervisitor.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/postordervisitor.d) | Depth-first expression visitor |
| [sapply.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/sapply.d) | Depth-first statement visitor |
| [statement_rewrite_walker.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/statement_rewrite_walker.d) | Statement visitor that allows replacing the currently visited node |
| [visitor/parsetime.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/visitor/parsetime.d) | General [visitor](https://en.wikipedia.org/wiki/Visitor_pattern) for AST nodes |
| [visitor/permissive.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/visitor/permissive.d) | Subclass of ParseTimeVisitor that does not `assert(0)` on unimplemented nodes |
| [visitor/strict.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/visitor/strict.d) | Visitor that forces derived classes to implement `visit` for every possible node |
| [visitor/package.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/visitor/package.d) | A visitor implementing `visit` for all nodes present in the compiler |
| [visitor/transitive.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/visitor/transitive.d) | Provide a mixin template with visit methods for the parse time AST |
| [visitor/postorder.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/visitor/postorder.d) | Depth-first expression & statement visitor |
| [visitor/statement_rewrite_walker.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/visitor/statement_rewrite_walker.d) | Statement visitor that allows replacing the currently visited node |
| [visitor/foreachvar.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/visitor/foreachvar.d) | Used in `ob.d` to iterate over all variables in an expression |

**Semantic passes**

Expand Down Expand Up @@ -197,13 +200,13 @@ Note that these groups have no strict meaning, the category assignments are a bi

| File | Purpose |
|-------------------------------------------------------------------------------|------------------------------------------------------|
| [lib.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/lib.d) | Abstract library class |
| [libelf.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/libelf.d) | Library in ELF format (Unix) |
| [libmach.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/libmach.d) | Library in Mach-O format (macOS) |
| [libmscoff.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/libmscoff.d) | Library in COFF format (32/64-bit Windows) |
| [scanelf.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/scanelf.d) | Extract symbol names from a library in ELF format |
| [scanmach.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/scanmach.d) | Extract symbol names from a library in Mach-O format |
| [scanmscoff.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/scanmscoff.d) | Extract symbol names from a library in COFF format |
| [lib/package.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/lib/package.d) | Abstract library class |
| [lib/elf.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/lib/elf.d) | Library in ELF format (Unix) |
| [lib/mach.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/lib/mach.d) | Library in Mach-O format (macOS) |
| [lib/mscoff.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/lib/mscoff.d) | Library in COFF format (32/64-bit Windows) |
| [lib/scanelf.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/lib/scanelf.d) | Extract symbol names from a library in ELF format |
| [lib/scanmach.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/lib/scanmach.d) | Extract symbol names from a library in Mach-O format |
| [lib/scanmscoff.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/lib/scanmscoff.d) | Extract symbol names from a library in COFF format |

### Code generation / back-end interfacing

Expand Down Expand Up @@ -231,10 +234,10 @@ Note that these groups have no strict meaning, the category assignments are a bi

| File | Purpose |
|-----------------------------------------------------------------------------------|------------------------------------------------------------------|
| [cppmangle.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/cppmangle.d) | C++ name mangling |
| [cppmanglewin.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/cppmanglewin.d) | C++ name mangling for Windows |
| [basicmangle.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/basicmangle.d) | D name mangling for basic types |
| [dmangle.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/dmangle.d) | D [name mangling](https://dlang.org/spec/abi.html#name_mangling) |
| [mangle/cpp.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/mangle/cpp.d) | C++ name mangling |
| [mangle/cppwin.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/mangle/cppwin.d) | C++ name mangling for Windows |
| [mangle/basic.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/mangle/basic.d) | D name mangling for basic types |
| [mangle/package.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/mangle/package.d) | D [name mangling](https://dlang.org/spec/abi.html#name_mangling) |

### Linking

Expand All @@ -251,7 +254,7 @@ Note that these groups have no strict meaning, the category assignments are a bi
| [hdrgen.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/hdrgen.d) | Convert an AST into D source code for `.di` header generation, as well as `-vcg-ast` and error messages |
| [json.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/json.d) | Describe the module in a `.json` file for the `-X` flag |
| [dtoh.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/dtoh.d) | C++ header generation from D source files |
| [disasm86.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/backend/disasm86.d) | x86-64 dissassembly generation
| [disasm86.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/backend/x86/disasm86.d) | x86-64 disassembly generation
| [disasmarm.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/backend/arm/disasmarm.d) | AArch64 disassembly generation

### Utility
Expand All @@ -268,4 +271,3 @@ Note: many other utilities are in [dmd/root](https://github.com/dlang/dmd/tree/m
|---------------------------------------------------------------------------------|---------------------------------------------------------------|
| [asttypename.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/asttypename.d) | Print the internal name of an AST node (for debugging only) |
| [printast.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/printast.d) | Print the AST data structure |
| [foreachvar.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/foreachvar.d) | Used in `ob.d` to iterate over all variables in an expression |
15 changes: 8 additions & 7 deletions dmd/access.d
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Specification: $(LINK2 https://dlang.org/spec/attribute.html#visibility_attributes, Visibility Attributes)
*
* Copyright: Copyright (C) 1999-2024 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2025 by The D Language Foundation, All Rights Reserved
* Authors: $(LINK2 https://www.digitalmars.com, Walter Bright)
* License: $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/access.d, _access.d)
* Source: $(LINK2 https://github.com/dlang/dmd/blob/master/compiler/src/dmd/access.d, _access.d)
* Documentation: https://dlang.org/phobos/dmd_access.html
* Coverage: https://codecov.io/gh/dlang/dmd/src/master/src/dmd/access.d
* Coverage: https://codecov.io/gh/dlang/dmd/src/master/compiler/src/dmd/access.d
*/

module dmd.access;
Expand All @@ -22,6 +22,7 @@ import dmd.dstruct;
import dmd.dsymbol;
import dmd.errors;
import dmd.expression;
import dmd.funcsem : overloadApply;
import dmd.location;
import dmd.tokens;

Expand Down Expand Up @@ -141,7 +142,7 @@ private bool hasPackageAccess(Module mod, Dsymbol s)
/****************************************
* Determine if scope sc has protected level access to cd.
*/
private bool hasProtectedAccess(Scope *sc, Dsymbol s)
private bool hasProtectedAccess(Scope* sc, Dsymbol s)
{
if (auto cd = s.isClassMember()) // also includes interfaces
{
Expand All @@ -163,7 +164,7 @@ private bool hasProtectedAccess(Scope *sc, Dsymbol s)
*/
bool checkAccess(Loc loc, Scope* sc, Expression e, Dsymbol d)
{
if (sc.flags & SCOPE.noaccesscheck)
if (sc.noAccessCheck)
return false;
static if (LOG)
{
Expand Down Expand Up @@ -272,7 +273,7 @@ bool symbolIsVisible(Dsymbol origin, Dsymbol s)
* s = symbol to check for visibility
* Returns: true if s is visible by origin
*/
bool symbolIsVisible(Scope *sc, Dsymbol s)
bool symbolIsVisible(Scope* sc, Dsymbol s)
{
s = mostVisibleOverload(s);
return checkSymbolAccess(sc, s);
Expand All @@ -287,7 +288,7 @@ bool symbolIsVisible(Scope *sc, Dsymbol s)
* s = symbol to check for visibility
* Returns: true if s is visible by origin
*/
bool checkSymbolAccess(Scope *sc, Dsymbol s)
bool checkSymbolAccess(Scope* sc, Dsymbol s)
{
final switch (s.visible().kind)
{
Expand Down
Loading