Skip to content
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

Upgrade frontend & libs to v2.107 #4563

Merged
merged 241 commits into from
Feb 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
241 commits
Select commit Hold shift + click to select a range
a352766
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Nov 2, 2023
a19d533
Merge pull request dlang/dmd!15772 from ibuclaw/merge_stable
ibuclaw Nov 2, 2023
edbb7a9
dsymbol.d: replace some casts (dlang/dmd!15761)
WalterBright Nov 2, 2023
8990877
fix Issue 24094 - importC __declspec not working in front of declarat…
WalterBright Nov 2, 2023
63c8317
Pull toLvalue out of expression.d
RazvanN7 Nov 1, 2023
bea4866
Pull out check* from expression.Expression + move them to expressions…
RazvanN7 Nov 2, 2023
ca5da98
Fix Issue 24224 - __traits(initSymbol) treats aggregate-derived enum …
pbackus Nov 3, 2023
db566fc
test: Remove 'ref' checks from -preview=in tests
ibuclaw Oct 31, 2023
53b0b6b
Extract expression.modifiableLvalue and move it to expressionsem
RazvanN7 Nov 7, 2023
fe5266b
Move expression.resolveLoc to expressionsem (dlang/dmd!15782)
RazvanN7 Nov 7, 2023
07deb0e
Break expression.d dependency on scope.d and expressionsem.d
RazvanN7 Nov 7, 2023
a3c49b2
Break dependency of expression.d on ctfeexp.d
RazvanN7 Nov 7, 2023
21c1d2e
Break expression.d dependency on optimize.d
RazvanN7 Nov 7, 2023
b5e90c8
fix Issue 24069 - ImportC does not parse function pointer as paramete…
WalterBright Nov 9, 2023
c698ccc
Move a couple of functions out of dsymbol.d (dlang/dmd!15789)
RazvanN7 Nov 9, 2023
621bd6d
Event.set() -> Event.setIfInitialized()
denizzzka Nov 11, 2023
f4327d8
Deprecation message improved
denizzzka Nov 11, 2023
43c1a25
This commit introduces a member function of `Param` that replaces som…
maxhaton Nov 11, 2023
b2001a4
Add hint when declaring function with TypeCtor
ntrel Nov 8, 2023
a1642b5
Refactor `toLvalue` by removing redundant parameter (dlang/dmd!15792)
dkorpel Nov 12, 2023
e650bcf
Revert "Move a couple of functions out of dsymbol.d (dlang/dmd!15789)"
ibuclaw Nov 12, 2023
b58122e
Local import should be explicit
ryuukk Nov 12, 2023
26b9de5
Fix 24238 - Confusing "not an lvalue"error messages
dkorpel Nov 10, 2023
624f997
Fix segfault in toLvalueImpl
dkorpel Nov 12, 2023
3767c77
Fix aliasing function type returning a Type with TypeSuffixes (dlang/…
ntrel Nov 13, 2023
6a5ebec
switch to safe casts in ctfeexpr.d
WalterBright Nov 14, 2023
b7bd1ff
ctfeexpr.d: use BitArray
WalterBright Nov 14, 2023
cbba70d
merge templateParameterToBuffer() into toCBuffer()
WalterBright Nov 14, 2023
439c480
ctfeexpr.d: use nothrow where we can
WalterBright Nov 14, 2023
cc638bd
Refactor modifiableLvalue
dkorpel Nov 14, 2023
83c9b05
Remove redundant null checks
dkorpel Nov 14, 2023
42ec0ea
Add scope flag for dip1000 and dip25
dkorpel Oct 9, 2023
a66f909
Fix _Float32x and _Float64x aliases (dlang/dmd!15813)
dkorpel Nov 14, 2023
6595729
Show `TypeFunction.mod` in overload candidates
ntrel Nov 14, 2023
b0e9715
Show template function attribute
ntrel Nov 14, 2023
5274e8e
Fix __ctor ident
ntrel Nov 14, 2023
af5c65e
Update tests
ntrel Nov 14, 2023
f15ae46
Merge pull request dlang/dmd!15806 from dkorpel/tolvalue-segfault
ibuclaw Nov 14, 2023
e8f4f06
More tests
ntrel Nov 14, 2023
260abe1
[trivial] [refactor] Use `TypeFunction.modToChars`
ntrel Nov 14, 2023
c38e311
Merge pull request dlang/dmd!15814 from ntrel/ctor-attr
dlang-bot Nov 14, 2023
9684aed
fix Issue 24155 - ImportC: accept C23 default initializers (dlang/dmd…
WalterBright Nov 15, 2023
e664017
dmd inline assembler supports PAUSE instruction
WalterBright Nov 16, 2023
d93fd5e
Fix 20332 - associative array clear function should be @safe (dlang/d…
dkorpel Nov 16, 2023
1e3531d
VSOptions: Prepare for setting the INCLUDE env var for importC (dlang…
kinke Nov 16, 2023
ca499e0
Merge pull request dlang/dmd!15800 from denizzzka/setIfInitialized
dlang-bot Nov 16, 2023
45065d1
Improve 'not callable using a $mod object' error
ntrel Nov 16, 2023
b3c6aab
Postpone minor changes
ntrel Nov 16, 2023
9b83eb4
Add test
ntrel Nov 16, 2023
0999970
Merge pull request dlang/dmd!15826 from ntrel/method-mod
dlang-bot Nov 16, 2023
b59a9ce
Reduce size of dsymbol.ArrayScopeSymbol
RazvanN7 Nov 16, 2023
90821fd
druntime: adjust LoongArch64 definitions
scylaac Nov 17, 2023
a9af24f
Translate `_d_newarray{mTX, miTX, Op}` to a single template (dlang/dm…
teodutu Nov 17, 2023
036a165
traits.d: remove some casts
WalterBright Nov 17, 2023
c162328
Fix Issue 24248 - const constructor call with mutable target gives wr…
ntrel Nov 16, 2023
a77554f
Rebase & fix new test
ntrel Nov 16, 2023
14bb70f
Update a test with __ctor
ntrel Nov 16, 2023
10a9db0
Move dsymbol.addMember to dsymbolsem and transform it into a visitor
RazvanN7 Nov 16, 2023
ee170ed
Also show argument types
ntrel Nov 17, 2023
3a68195
Merge pull request dlang/dmd!15827 from ntrel/const-ctor
dlang-bot Nov 18, 2023
8f968a7
Extract Dsymbol.search from dsymbols.d and transform it into a visito…
RazvanN7 Nov 18, 2023
e4dc2c9
refactor pointerBitmap()
WalterBright Nov 18, 2023
9bf2d28
Move d_do_test unittest build+run from Makefile to run.d
kinke Nov 19, 2023
a8ff9df
Fix 'no overloads callable using mutable object' wording
ntrel Nov 19, 2023
71e63cf
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Nov 17, 2023
56b2adc
Merge pull request dlang/dmd!15829 from ibuclaw/merge_stable
ibuclaw Nov 20, 2023
9b4d9e2
Merge pull request dlang/dmd!15802 from dlang/revert-15789-dsymbol_sema2
ibuclaw Nov 21, 2023
64aa1bd
Fix unittest failure in rt/aaA.d
ibuclaw Nov 21, 2023
c515885
rename common/string.d to common/smallbuffer.d
WalterBright Nov 21, 2023
1728344
Fix error message when `leftParenthesis` is missing for `is` expressi…
ntrel Nov 22, 2023
d8f3964
simplify toWStringz() (dlang/dmd!15847)
WalterBright Nov 22, 2023
38558a4
Revert "Revert "Move a couple of functions out of dsymbol.d"" (dlang/…
thewilsonator Nov 22, 2023
491a313
replace common.smallbuffer.asDstring() with inline code (dlang/dmd!15…
WalterBright Nov 22, 2023
ae1d2ec
fix Issue 24200 - ImportC: .di file collected macro conflicts with Sp…
WalterBright Nov 22, 2023
bb43a40
Break dependency of dsymbol.d on dsymbolsem.d (dlang/dmd!15851)
RazvanN7 Nov 22, 2023
65f751d
Fix Issue 24125 - ImportC: vector type initializer not understood (dl…
WalterBright Nov 23, 2023
9a78baf
fix Issue 24031 - ImportC: rejects nested C initializers (dlang/dmd!1…
WalterBright Nov 24, 2023
540be3d
Merge pull request dlang/dmd!15865 from dlang/stable
dkorpel Nov 26, 2023
717fa7f
Move Dsymbol.setScope to dsymbolsem and make it a visitor (dlang/dmd!…
RazvanN7 Nov 29, 2023
21a1b46
Attempt at fixing gdc regression
RazvanN7 Nov 30, 2023
876fc12
Attempt at fixing gdc regression - part 2
RazvanN7 Nov 30, 2023
f3e0671
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Dec 2, 2023
ce66062
Merge pull request dlang/dmd!15874 from ibuclaw/merge_stable
ibuclaw Dec 2, 2023
d3c5463
druntime/test/*.mak: replaces -Isrc by -Iimport (dlang/dmd!15881)
denizzzka Dec 4, 2023
ff04424
druntime: copydir target removed (dlang/dmd!15879)
denizzzka Dec 4, 2023
2fbd436
[object] Document `setSameMutex` (dlang/dmd!15882)
ntrel Dec 4, 2023
9cc5a7f
druntime win64.mak: Unused DDOCFLAGS variable removed
denizzzka Dec 4, 2023
60acff9
fix Issue 23714 - compilable/testcstuff1.c:213:1: error: static asser…
WalterBright Dec 5, 2023
8b34d60
ImportC: support #define IDENT ( expression ) (dlang/dmd!15871)
WalterBright Dec 5, 2023
445af32
Move dmd.aliasthis.resolveAliasThis to dsymbolsem (dlang/dmd!15885)
RazvanN7 Dec 5, 2023
4f182ec
Delete useless imports from compiler/src/dmd/init.d (dlang/dmd!15884)
RazvanN7 Dec 5, 2023
21ce16e
Move dmd.aliasthis.isRecursiveAliasThis to mtype.d
RazvanN7 Dec 5, 2023
911f0c0
Dscope.search: use out parameter
WalterBright Dec 6, 2023
b02da92
Fix 24272 - operations.arrayOp is forced @nogc nothrow pure
dkorpel Dec 7, 2023
f24afc7
fix Issue 24266 - ImportC: struct initializer entry gets ignored
WalterBright Dec 7, 2023
22f6018
add SearchOpt to enum type (dlang/dmd!15889)
WalterBright Dec 8, 2023
cfe0f95
fix Issue 24264 - ImportC: inliner trips on _Bool return
WalterBright Dec 8, 2023
a654e7c
Initial attempt at stdatomic.h
rikkimax Nov 15, 2023
2c1ddfe
make pragma great again
adamdruppe Dec 8, 2023
0a369dd
use isXXX() functions for ReturnStatement semantic
WalterBright Dec 9, 2023
23f5fba
Merge pull request dlang/dmd!15893 from adamdruppe/make_pragma_great_…
dkorpel Dec 9, 2023
659db6f
Remove deprecated compiler Makefiles
kinke Dec 2, 2023
a2333f8
Remove deprecated compiler/test/Makefile
kinke Dec 2, 2023
008c410
Convert posix.mak to generic Makefile
kinke Dec 3, 2023
d725e49
fix Issue 24274 - [REG master] ImportC: unrecognized C initializer wi…
WalterBright Dec 11, 2023
dd131f4
Merge pull request dlang/dmd!15898 from WalterBright/fix24274
dkorpel Dec 11, 2023
58a7de1
Top-level Makefile: Extract {dmd,druntime}[-test] targets
kinke Dec 11, 2023
475efd9
fix Issue 24276 - ImportC: typedef aliases not emitted correctly in .…
WalterBright Dec 12, 2023
6f3499e
druntime docs generator: replaces src/* by import/* (dlang/dmd!15880)
denizzzka Dec 13, 2023
58dfeca
Move static method dsymbol.Dsymbol._foreach out of dsymbol (dlang/dmd…
RazvanN7 Dec 13, 2023
dc703cb
Update -ignore documentation
dkorpel Dec 8, 2023
17fa24e
Extract dsymbol.Dsymbol.importAll and turn it into a visitor (dlang/d…
RazvanN7 Dec 13, 2023
fc0c94b
fix Issue 23713 - compilable/testcstuff1.c:206:1: error: static asser…
WalterBright Dec 14, 2023
aba2f49
Delete useless imports in compiler/src/dmd/statement.d (dlang/dmd!15900)
RazvanN7 Dec 14, 2023
a7e498e
Break dependency of compiler/src/dmd/statement.d on gluelayer (dlang/…
RazvanN7 Dec 14, 2023
d3d1591
Delete useless imports in compiler/src/dmd/staticassert.d
RazvanN7 Dec 14, 2023
e0c7833
Extract dsymbol.setFieldOffset and move it into a visitor
RazvanN7 Dec 14, 2023
7691558
Merge pull request dlang/dmd!15876 from kinke/test_rm_makefiles
dlang-bot Dec 15, 2023
e1b5665
Fix a bug on MacOS with app subprocess hanging on fork() (dlang/dmd!1…
MarSoft Dec 15, 2023
87fdccd
Break dependency of expression.d on gluelayer.d
RazvanN7 Nov 7, 2023
bebd074
Delete useless imports in compiler/src/dmd/nspace.d
RazvanN7 Dec 15, 2023
f8438c8
Move dmd.mtype.Type.covariant to dmd.typesem
RazvanN7 Dec 15, 2023
f537ee4
Move dmd.type.checkDeprecated to dmd/dsymbolsem.d and make it private
RazvanN7 Dec 15, 2023
667940b
Break dependency of dmd/mtype.d on dmd/expressionsem.d
RazvanN7 Dec 15, 2023
ad91b58
Fix Phobos CI regression
kinke Dec 15, 2023
d47c3fa
Azure CI: Migrate from legacy MODEL=32mscoff to MODEL=32
kinke Dec 10, 2023
3d98270
Windows: Don't apply OMF-specific 16 MB static data limit to 32-bit COFF
kinke Dec 16, 2023
6e55e7c
fix Issue 23629 - importC: Need to support code coverage analysis (dl…
WalterBright Dec 16, 2023
d3b5ed1
Fix 24281 - Segfault with missing field after named argument
dkorpel Dec 13, 2023
fa83ca0
statementsem.d: remove some casts
WalterBright Dec 17, 2023
0bb347f
druntime: Merge win64.mak into posix.mak
kinke Dec 8, 2023
1b6c9bd
Azure CI: Switch to GNU make for building druntime on Windows
kinke Dec 8, 2023
e255e37
druntime: Merge win32.mak into posix.mak
kinke Dec 9, 2023
06ceede
druntime: Rename posix.mak to Makefile
kinke Dec 9, 2023
bb9ad1d
druntime: Restore posix.mak, forwarding to generic Makefile
kinke Dec 9, 2023
b4fbd1a
druntime: Fix a few missing .exe in Makefile
kinke Dec 9, 2023
825863f
druntime: Make most *test* Makefiles usable on Windows too
kinke Dec 9, 2023
bc3d92d
druntime: Merge test/stdcpp/win64.mak into Makefile
kinke Dec 10, 2023
e8daddb
druntime: Merge test/shared/win64.mak into Makefile
kinke Dec 10, 2023
e8cfb7e
druntime: Disable additional tests on Windows OMF too
kinke Dec 10, 2023
415292f
druntime: Slightly simplify test/{uuid,valgrind} Makefiles
kinke Dec 10, 2023
a5d52af
druntime: Avoid `-run` in Windows-specific additional tests
kinke Dec 10, 2023
be5ba17
Makefile: Include druntime in install target
kinke Dec 12, 2023
c15a6fe
druntime Makefile: Handle DMD set as absolute path, and fix up remain…
kinke Dec 15, 2023
38f60e0
Makefiles: Add comments wrt. usage on Windows and a few example invoc…
kinke Dec 15, 2023
cb2eaea
CI: Adapt to generic Makefile for Phobos
kinke Dec 13, 2023
909d1d1
fix Issue 23411 - ImportC: undefined identifier __builtin_nanf (dlang…
WalterBright Dec 19, 2023
ac227d3
fix Issue 24283 - [SIMD][CODEGEN] Bad codegen with and not + AVX2 reg…
WalterBright Dec 19, 2023
c730ebd
ClassKindToChars() because too many toChars()
WalterBright Dec 20, 2023
1521a9e
eliminate dependence on global.params.dihdr.fullOutput
WalterBright Dec 20, 2023
caa5901
make toChars(Type) work (dlang/dmd!15926)
WalterBright Dec 20, 2023
ed3093c
hdrgen.d public functions use ref HdrGenState
WalterBright Dec 20, 2023
bd47e9c
eliminate dependence on global.params.dihdr.vcg_ast
WalterBright Dec 20, 2023
b2c1b49
PtrStateToChars() because too many toChars() (dlang/dmd!15929)
WalterBright Dec 20, 2023
3b101e3
ScopeRefToChars() because too many toChars() (dlang/dmd!15927)
WalterBright Dec 20, 2023
97e04ee
Merge pull request dlang/dmd!15928 from WalterBright/ClassKindToChars
dkorpel Dec 20, 2023
73496f3
Update C++ header for StructLiteralExp (dlang/dmd!15933)
RazvanN7 Dec 20, 2023
f248f42
oneMember() should use out for ps
WalterBright Dec 21, 2023
25f308a
many more HdrGenState * to ref
WalterBright Dec 21, 2023
d0b54bd
move Expression.toChars() to hdrgen.d (dlang/dmd!15937)
WalterBright Dec 21, 2023
62d7835
druntime Makefile: Remove DMD_DIR variable
kinke Dec 21, 2023
75cb4da
Fixes issues 20339, 24292: Calculate isPOD without information from s…
tim-dlang Dec 21, 2023
290fa4f
Replace previewIn with STC.inscoperef) (dlang/dmd!15935)
WalterBright Dec 22, 2023
dbf8277
hdrgen.d: remove globals.d import
WalterBright Dec 22, 2023
e125a0c
Add `@standalone` attribute for module constructors (dlang/dmd!15537)
dkorpel Dec 22, 2023
1042698
Fix issue 24298 - cpp_delete should check for null
tim-dlang Dec 22, 2023
b209b9f
DMD tests on Windows: Default CC to cl.exe in PATH for MSVC models
kinke Dec 22, 2023
ec7a0ba
hdrgen.d: remove reference to global target
WalterBright Dec 23, 2023
0a918dc
Fix typo in assert in `common/smallbuffer.d`
thewilsonator Dec 23, 2023
b014c77
Remove deprecated rndtonl from core.math
dkorpel Dec 23, 2023
c329a62
hdrgen.d: replace some toChars() with toString()
WalterBright Dec 24, 2023
f5fdc60
add toString to tokens.d
WalterBright Dec 24, 2023
16b979b
hdrgen.d: more conversion to toString() (dlang/dmd!15952)
WalterBright Dec 24, 2023
67b4f59
Fix 24301 - Misleading error message when passing non-copyable struct…
pbackus Dec 25, 2023
a28266b
fix Issue 24280 - ImportC: forward reference error when compiling mul…
WalterBright Dec 27, 2023
7375f71
Trivial: Use REQUIRED_ARGS instead of PERMUTE_ARGS for preview=in test
Geod24 Dec 27, 2023
acd410f
fix Issue 24297 - ImportC incompatible with glibc _FORTIFY_SOURCE (dl…
WalterBright Dec 27, 2023
d2238d1
fix Issue 24304 - __uint16_t, __uint32_t, __uint64_t are not recogniz…
WalterBright Dec 27, 2023
136abde
Remove wrongly const parameters from stdatomic functions
rikkimax Dec 28, 2023
e6811bd
Fix issue 22905 - gdb backtrace contains wrong location
tim-dlang Dec 28, 2023
02b8e2f
fix Issue 24303 - anonymous struct problems when typedef'd in separat…
WalterBright Dec 29, 2023
12c6cd1
Deprecate string literals as (static) assert conditions (dlang/dmd!15…
ntrel Dec 29, 2023
24f81aa
fix Issue 24306 - ImportC: same name structs in separate C files inte…
WalterBright Dec 30, 2023
3d00358
ImportC: give error when encountering computed goto
WalterBright Dec 30, 2023
5215129
Implement changes to stdatomic suggested by Iain regarding default me…
rikkimax Dec 29, 2023
c8944a1
fix issue 4071 and others: shared runtime DLL for Windows (dlang/dmd!…
rainers Dec 30, 2023
e3f4f35
getLines() shouldn't be reading files
WalterBright Dec 30, 2023
0055e6a
supply definitions for if_nameindex_t and related symbols on musl lib…
jtbx Dec 31, 2023
0da19c9
change splitTextIntoLines() to splitLines() (dlang/dmd!15972)
WalterBright Dec 31, 2023
5326f94
Fix issue 20369 - shadowed variable in foreach loop always considered…
eoan-ermine Jan 1, 2024
a5594e4
Update GNU implementation of internal atomic.d
ibuclaw Dec 30, 2023
f7cda47
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Jan 1, 2024
84d71c5
Merge pull request dlang/dmd!15978 from ibuclaw/merge_stable
ibuclaw Jan 1, 2024
2a66b5e
Update copyright years of dmd sources to 2024
ibuclaw Jan 1, 2024
d164dd6
Merge remote-tracking branch 'upstream/master' into stable
ibuclaw Jan 1, 2024
cb9925b
Fix Issue 24295 - [betterC] ICE with new int[]
RazvanN7 Jan 2, 2024
9547d1e
fix issue 24309 - Memory allocation failed on Azure pipeline
rainers Jan 4, 2024
c58f8a8
Fix 24311 - Named enum with AA base type causes ICE (dlang/dmd!16002)
dkorpel Jan 5, 2024
2a1f97f
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Jan 10, 2024
15b3f02
Fix 24326 - ImportC: segfault on nameless enum translation with -H
dkorpel Jan 10, 2024
a485514
fix Issue 24338 - Cannot concatenate dynamic arrays of enum type with…
tgehr Jan 12, 2024
8c68590
Fix C++ header regressions
kinke Jan 10, 2024
d4d92ea
Bump LDC version / frontend version / Phobos submodule
kinke Jan 10, 2024
2a0e1ce
druntime: Add newly required templates to LDC-specific core.internal.…
kinke Jan 13, 2024
c9e8e80
Fix C++ header regressions in 2.107
kinke Jan 13, 2024
18fea55
druntime: Revise LDC-specific diff wrt. test Makefiles
kinke Jan 14, 2024
fcce99c
core.stdc.stdatomic: Deduplicate atomic_fetch_op functions
ibuclaw Jan 16, 2024
2daa119
core.atomic: Reject invalid memory models in load, store and exchange
ibuclaw Jan 15, 2024
ac62f2c
core.atomic: Reject invalid failure memory modules in compare exchange
ibuclaw Jan 17, 2024
d2939ca
[adapt new assertion in d_do_test.d for LDC]
kinke Jan 14, 2024
a8d5f6b
druntime: Somewhat revamp test/shared/Makefile
kinke Jan 14, 2024
29f6179
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Jan 17, 2024
04c8f0b
Make core.internal.atomic handle floats (dmd)
rikkimax Jan 18, 2024
b06beb0
Handle invalid orderings for fence intrinsic
kinke Jan 19, 2024
0b0844d
druntime: Restore LDC-specific macOS extras for test/exceptions/Makefile
kinke Jan 19, 2024
2b5662f
druntime: Disable Win32-specific block of newly tested test/exception…
kinke Jan 19, 2024
8c99f6a
Adapt lit-test codegen/linker_directives_linux.d to -ignore defaultin…
kinke Jan 19, 2024
a3aadfc
Adapt to new multi-dimensional array allocation lowering
kinke Jan 19, 2024
61da189
Handle new `@standalone` shared module constructors
kinke Jan 20, 2024
32f78fa
druntime: Add __nan and __builtin_nanf symbols to importC builtins, l…
kinke Jan 20, 2024
8baab34
Minimally adapt new runnable/gdb22905.d to support gdb-demangled back…
kinke Jan 20, 2024
a87be81
core.stdc.stdatomic: Do nothing for atomic fence with relaxed memory …
ibuclaw Jan 20, 2024
a7ed49e
ldmd2: Support new upstream options -dllimport and -visibility
kinke Jan 21, 2024
4e18e84
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Jan 21, 2024
86d267c
core.stdc.stdatomic: Treat all non-DMD compilers as 'C-compatible', n…
kinke Jan 21, 2024
2cb84e2
core.stdc.stdatomic: Align shared locals of double-word size in unitt…
kinke Jan 21, 2024
1ee602b
Minimally adapt new runnable/gdb22905.d to support gdb-demangled back…
kinke Jan 21, 2024
f2ad949
core.internal.atomic: Fix atomicLoad for N sized atomic types (dlang/…
ibuclaw Jan 22, 2024
6c62113
core.stdc.stdatomic: Align double-word locals in unittests
kinke Jan 22, 2024
6303c6f
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Jan 22, 2024
e357314
Fix Bugzilla Issue 24252 - Object files collision for tests compilabl…
kinke Jan 27, 2024
890a57c
Adapt LDC-specifics to d_do_test.d changes
kinke Jan 31, 2024
c4cdea3
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Jan 31, 2024
fe13803
Add changelog entry
kinke Jan 31, 2024
0aadc97
Bump Phobos submodule
kinke Jan 31, 2024
89a0d11
Fix Bugzilla 24365 - ICE when printing showCtfeContext error (dlang/d…
RazvanN7 Feb 2, 2024
3d78ccc
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Feb 3, 2024
22e601e
Bump Phobos and bundled dlang tools / dub / reggae
kinke Feb 3, 2024
dc110f6
CI: Fix reggae build regressions (now uses rdmd in preGenerateCommand)
kinke Jan 24, 2024
deeaced
druntime: Slightly revise LDC-specifics in core.internal.atomic
kinke Feb 3, 2024
3cb389a
Bump bundled reggae to latest master
kinke Feb 5, 2024
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
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,8 @@ packaging_steps_template: &PACKAGING_STEPS_TEMPLATE
git clone --recursive https://github.com/atilaneves/reggae.git
cd reggae
git checkout "$(cat $CIRRUS_WORKING_DIR/packaging/reggae_version)"
DFLAGS="-O -linkonce-templates" ../dub/bin/dub build -v --combined --compiler="$PWD/../installed/bin/ldc2"
# needs rdmd in PATH
PATH="$PWD/../installed/bin:$PATH" DFLAGS="-O -linkonce-templates" ../dub/bin/dub build -v --build-mode=allAtOnce --combined --compiler="$PWD/../installed/bin/ldc2"
cp bin/reggae ../installed/bin
../installed/bin/reggae --version -b ninja
# Pack artifact
Expand Down
4 changes: 4 additions & 0 deletions .github/actions/7-package/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,10 @@ runs:
archFlag=''
if [[ '${{ inputs.cross_target_triple }}' != '' ]]; then
archFlag='--arch=${{ inputs.cross_target_triple }}'

# run the preGenerateCommand manually; it must be a native build
sed -i${{ runner.os == 'macOS' && ' ""' || '' }} 's|^ "preGenerateCommands": \["rdmd \$PACKAGE_DIR/list_payload.d \$PACKAGE_DIR"\],$||' dub.json
"$(dirname "$DMD")/ldc2" -run list_payload.d .
fi

# use host compiler's dub, which is guaranteed to be native
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# LDC master

#### Big news
- Frontend, druntime and Phobos are at version [2.107.0](https://dlang.org/changelog/2.107.0.html). (#4563)

#### Platform support

Expand Down
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -117,10 +117,10 @@ include(GetLinuxDistribution)
#

# Version information
set(LDC_VERSION "1.36.0") # May be overridden by git hash tag
set(LDC_VERSION "1.37.0") # May be overridden by git hash tag
set(DMDFE_MAJOR_VERSION 2)
set(DMDFE_MINOR_VERSION 106)
set(DMDFE_PATCH_VERSION 1)
set(DMDFE_MINOR_VERSION 107)
set(DMDFE_PATCH_VERSION 0)

set(DMD_VERSION ${DMDFE_MAJOR_VERSION}.${DMDFE_MINOR_VERSION}.${DMDFE_PATCH_VERSION})

Expand Down
2 changes: 1 addition & 1 deletion dmd/access.d
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*
* Specification: $(LINK2 https://dlang.org/spec/attribute.html#visibility_attributes, Visibility Attributes)
*
* Copyright: Copyright (C) 1999-2023 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2024 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)
Expand Down
16 changes: 3 additions & 13 deletions dmd/aggregate.d
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Specification: $(LINK2 https://dlang.org/spec/struct.html, Structs, Unions),
* $(LINK2 https://dlang.org/spec/class.html, Class).
*
* Copyright: Copyright (C) 1999-2023 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2024 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/aggregate.d, _aggregate.d)
Expand Down Expand Up @@ -65,7 +65,7 @@ enum ClassKind : ubyte
* Returns:
* 0-terminated string for `c`
*/
const(char)* toChars(ClassKind c) @safe
const(char)* ClassKindToChars(ClassKind c) @safe
{
final switch (c)
{
Expand Down Expand Up @@ -178,16 +178,6 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
return sc2;
}

override final void setScope(Scope* sc)
{
// Might need a scope to resolve forward references. The check for
// semanticRun prevents unnecessary setting of _scope during deferred
// setScope phases for aggregates which already finished semantic().
// See https://issues.dlang.org/show_bug.cgi?id=16607
if (semanticRun < PASS.semanticdone)
ScopeDsymbol.setScope(sc);
}

/***************************************
* Returns:
* The total number of fields minus the number of hidden fields.
Expand Down Expand Up @@ -663,7 +653,7 @@ extern (C++) abstract class AggregateDeclaration : ScopeDsymbol
*/
extern (D) final Dsymbol searchCtor()
{
auto s = search(Loc.initial, Id.ctor);
auto s = this.search(Loc.initial, Id.ctor);
if (s)
{
if (!(s.isCtorDeclaration() ||
Expand Down
5 changes: 1 addition & 4 deletions dmd/aggregate.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

/* Compiler implementation of the D programming language
* Copyright (C) 1999-2023 by The D Language Foundation, All Rights Reserved
* Copyright (C) 1999-2024 by The D Language Foundation, All Rights Reserved
* written by Walter Bright
* https://www.digitalmars.com
* Distributed under the Boost Software License, Version 1.0.
Expand Down Expand Up @@ -113,7 +113,6 @@ class AggregateDeclaration : public ScopeDsymbol
Sizeok sizeok; // set when structsize contains valid data

virtual Scope *newScope(Scope *sc);
void setScope(Scope *sc) override final;
virtual void finalizeSize() = 0;
uinteger_t size(const Loc &loc) override final;
bool fill(const Loc &loc, Expressions &elements, bool ctorinit);
Expand Down Expand Up @@ -169,7 +168,6 @@ class StructDeclaration : public AggregateDeclaration
public:
static StructDeclaration *create(const Loc &loc, Identifier *id, bool inObject);
StructDeclaration *syntaxCopy(Dsymbol *s) override;
Dsymbol *search(const Loc &loc, Identifier *ident, int flags = SearchLocalsOnly) override final;
const char *kind() const override;
void finalizeSize() override final;
bool isPOD();
Expand Down Expand Up @@ -291,7 +289,6 @@ class ClassDeclaration : public AggregateDeclaration
virtual bool isBaseOf(ClassDeclaration *cd, int *poffset);

bool isBaseInfoComplete();
Dsymbol *search(const Loc &loc, Identifier *ident, int flags = SearchLocalsOnly) override final;
void finalizeSize() override;
bool hasMonitor();
bool isFuncHidden(FuncDeclaration *fd);
Expand Down
168 changes: 2 additions & 166 deletions dmd/aliasthis.d
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*
* Specification: $(LINK2 https://dlang.org/spec/class.html#alias-this, Alias This)
*
* Copyright: Copyright (C) 1999-2023 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2024 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/aliasthis.d, _aliasthis.d)
Expand All @@ -14,16 +14,10 @@
module dmd.aliasthis;

import core.stdc.stdio;
import dmd.aggregate;
import dmd.dscope;

import dmd.dsymbol;
import dmd.expression;
import dmd.expressionsem;
import dmd.globals;
import dmd.identifier;
import dmd.location;
import dmd.mtype;
import dmd.tokens;
import dmd.visitor;

/***********************************************************
Expand Down Expand Up @@ -71,161 +65,3 @@ extern (C++) final class AliasThis : Dsymbol
return this.isDeprecated_;
}
}

/*************************************
* Find the `alias this` symbol of e's type.
* Params:
* sc = context
* e = expression forming the `this`
* gag = do not print errors, return `null` instead
* findOnly = don't do further processing like resolving properties,
* i.e. just return plain dotExp() result.
* Returns:
* Expression that is `e.aliasthis`
*/
Expression resolveAliasThis(Scope* sc, Expression e, bool gag = false, bool findOnly = false)
{
import dmd.typesem : dotExp;
for (AggregateDeclaration ad = isAggregate(e.type); ad;)
{
if (ad.aliasthis)
{
Loc loc = e.loc;
Type tthis = (e.op == EXP.type ? e.type : null);
const flags = cast(DotExpFlag) (DotExpFlag.noAliasThis | (gag * DotExpFlag.gag));
uint olderrors = gag ? global.startGagging() : 0;
e = dotExp(ad.type, sc, e, ad.aliasthis.ident, flags);
if (!e || findOnly)
return gag && global.endGagging(olderrors) ? null : e;

if (tthis && ad.aliasthis.sym.needThis())
{
if (auto ve = e.isVarExp())
{
if (auto fd = ve.var.isFuncDeclaration())
{
// https://issues.dlang.org/show_bug.cgi?id=13009
// Support better match for the overloaded alias this.
bool hasOverloads;
if (auto f = fd.overloadModMatch(loc, tthis, hasOverloads))
{
if (!hasOverloads)
fd = f; // use exact match
e = new VarExp(loc, fd, hasOverloads);
e.type = f.type;
e = new CallExp(loc, e);
goto L1;
}
}
}
/* non-@property function is not called inside typeof(),
* so resolve it ahead.
*/
{
int save = sc.intypeof;
sc.intypeof = 1; // bypass "need this" error check
e = resolveProperties(sc, e);
sc.intypeof = save;
}
L1:
e = new TypeExp(loc, new TypeTypeof(loc, e));
e = e.expressionSemantic(sc);
}
e = resolveProperties(sc, e);
if (!gag)
ad.aliasthis.checkDeprecatedAliasThis(loc, sc);
else if (global.endGagging(olderrors))
e = null;
}

import dmd.dclass : ClassDeclaration;
auto cd = ad.isClassDeclaration();
if ((!e || !ad.aliasthis) && cd && cd.baseClass && cd.baseClass != ClassDeclaration.object)
{
ad = cd.baseClass;
continue;
}
break;
}
return e;
}

/**
* Check if an `alias this` is deprecated
*
* Usually one would use `expression.checkDeprecated(scope, aliasthis)` to
* check if `expression` uses a deprecated `aliasthis`, but this calls
* `toPrettyChars` which lead to the following message:
* "Deprecation: alias this `fullyqualified.aggregate.__anonymous` is deprecated"
*
* Params:
* at = The `AliasThis` object to check
* loc = `Loc` of the expression triggering the access to `at`
* sc = `Scope` of the expression
* (deprecations do not trigger in deprecated scopes)
*
* Returns:
* Whether the alias this was reported as deprecated.
*/
bool checkDeprecatedAliasThis(AliasThis at, const ref Loc loc, Scope* sc)
{
import dmd.errors : deprecation, Classification;
import dmd.dsymbolsem : getMessage;

if (global.params.useDeprecated != DiagnosticReporting.off
&& at.isDeprecated() && !sc.isDeprecated())
{
const(char)* message = null;
for (Dsymbol p = at; p; p = p.parent)
{
message = p.depdecl ? p.depdecl.getMessage() : null;
if (message)
break;
}
if (message)
deprecation(loc, "`alias %s this` is deprecated - %s",
at.sym.toChars(), message);
else
deprecation(loc, "`alias %s this` is deprecated",
at.sym.toChars());

if (auto ti = sc.parent ? sc.parent.isInstantiated() : null)
ti.printInstantiationTrace(Classification.deprecation);

return true;
}
return false;
}

/**************************************
* Check and set 'att' if 't' is a recursive 'alias this' type
*
* The goal is to prevent endless loops when there is a cycle in the alias this chain.
* Since there is no multiple `alias this`, the chain either ends in a leaf,
* or it loops back on itself as some point.
*
* Example: S0 -> (S1 -> S2 -> S3 -> S1)
*
* `S0` is not a recursive alias this, so this returns `false`, and a rewrite to `S1` can be tried.
* `S1` is a recursive alias this type, but since `att` is initialized to `null`,
* this still returns `false`, but `att1` is set to `S1`.
* A rewrite to `S2` and `S3` can be tried, but when we want to try a rewrite to `S1` again,
* we notice `att == t`, so we're back at the start of the loop, and this returns `true`.
*
* Params:
* att = type reference used to detect recursion. Should be initialized to `null`.
* t = type of 'alias this' rewrite to attempt
*
* Returns:
* `false` if the rewrite is safe, `true` if it would loop back around
*/
bool isRecursiveAliasThis(ref Type att, Type t)
{
//printf("+isRecursiveAliasThis(att = %s, t = %s)\n", att ? att.toChars() : "null", t.toChars());
auto tb = t.toBasetype();
if (att && tb.equivalent(att))
return true;
else if (!att && tb.checkAliasThisRec())
att = tb;
return false;
}
2 changes: 1 addition & 1 deletion dmd/aliasthis.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

/* Compiler implementation of the D programming language
* Copyright (C) 2009-2023 by The D Language Foundation, All Rights Reserved
* Copyright (C) 2009-2024 by The D Language Foundation, All Rights Reserved
* written by Walter Bright
* https://www.digitalmars.com
* Distributed under the Boost Software License, Version 1.0.
Expand Down
2 changes: 1 addition & 1 deletion dmd/argtypes_aarch64.d
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* Break down a D type into basic (register) types for the AArch64 ABI.
*
* Copyright: Copyright (C) 1999-2023 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2024 by The D Language Foundation, All Rights Reserved
* Authors: Martin Kinkelin
* 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/argtypes_aarch64.d, _argtypes_aarch64.d)
Expand Down
2 changes: 1 addition & 1 deletion dmd/argtypes_sysv_x64.d
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* Break down a D type into basic (register) types for the x86_64 System V ABI.
*
* Copyright: Copyright (C) 1999-2023 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2024 by The D Language Foundation, All Rights Reserved
* Authors: Martin Kinkelin
* 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/argtypes_sysv_x64.d, _argtypes_sysv_x64.d)
Expand Down
2 changes: 1 addition & 1 deletion dmd/argtypes_x86.d
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* Break down a D type into basic (register) types for the 32-bit x86 ABI.
*
* Copyright: Copyright (C) 1999-2023 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2024 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/argtypes_x86.d, _argtypes_x86.d)
Expand Down
4 changes: 2 additions & 2 deletions dmd/arrayop.d
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*
* Specification: $(LINK2 https://dlang.org/spec/arrays.html#array-operations, Array Operations)
*
* Copyright: Copyright (C) 1999-2023 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2024 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/arrayop.d, _arrayop.d)
Expand Down Expand Up @@ -172,7 +172,7 @@ Expression arrayOp(BinAssignExp e, Scope* sc)
}
if (e.e1.op == EXP.arrayLiteral)
{
return e.e1.modifiableLvalue(sc, e.e1);
return e.e1.modifiableLvalue(sc);
}

return arrayOp(e.isBinExp(), sc);
Expand Down
2 changes: 1 addition & 1 deletion dmd/arraytypes.d
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* Provide aliases for arrays of certain declarations or statements.
*
* Copyright: Copyright (C) 1999-2023 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2024 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/arraytypes.d, _arraytypes.d)
Expand Down
2 changes: 1 addition & 1 deletion dmd/arraytypes.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

/* Compiler implementation of the D programming language
* Copyright (C) 2006-2023 by The D Language Foundation, All Rights Reserved
* Copyright (C) 2006-2024 by The D Language Foundation, All Rights Reserved
* written by Walter Bright
* https://www.digitalmars.com
* Distributed under the Boost Software License, Version 1.0.
Expand Down
2 changes: 1 addition & 1 deletion dmd/ast_node.d
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* Defines the base class for all nodes which are part of the AST.
*
* Copyright: Copyright (C) 1999-2023 by The D Language Foundation, All Rights Reserved
* Copyright: Copyright (C) 1999-2024 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/ast_node.d, _ast_node.d)
Expand Down
Loading
Loading