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.108 #4591

Merged
merged 265 commits into from
Mar 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
265 commits
Select commit Hold shift + click to select a range
2849afe
fix link/lib test
rainers Jan 4, 2024
521a240
Merge remote-tracking branch 'origin/stable' into merge_stable
kinke Jan 4, 2024
d96758b
Merge pull request dlang/dmd!15998 from kinke/merge_stable
ibuclaw Jan 4, 2024
9054afa
move dllmain into sections_win64.d
rainers Jan 5, 2024
6a50884
Do not use `Loc.inital` as a default parameter (dlang/dmd!16001)
thewilsonator Jan 5, 2024
e73306e
[dtoh] ensure that struct/class/enum function return types are declar…
thewilsonator Jan 5, 2024
b614072
Extract dmd.mtype.Type.isBaseOf and move it to dmd.typesem (dlang/dmd…
RazvanN7 Jan 5, 2024
1daa873
version shared runtime hooks on DigitalMars
rainers Jan 5, 2024
60b7346
shared runtime: basic exception support for Win64
rainers Jan 6, 2024
fb0ebd3
rename lookup() to getFileContents()
WalterBright Jan 6, 2024
554bc2c
Revert "cache file lookup of importc.h (dlang/dmd!15989)" (dlang/dmd!…
ibuclaw Jan 7, 2024
19f722d
Fix issue 18919 - __FILE__ and __LINE__ should work when used in defa…
tim-dlang Jan 7, 2024
bfbd3dc
Fix issue 23818 - Error HMODULE not defined, please use HMODULE
vabenil Jan 8, 2024
5e585b0
dtemplate.d: minor refactoring to modernize (dlang/dmd!16008)
WalterBright Jan 9, 2024
a597234
make dedtypes a ref parameter instead of * (dlang/dmd!16009)
WalterBright Jan 9, 2024
4d13afe
Add RUN_RETURN to d_do_test and postprocess RUN_OUTPUT (dlang/dmd!16006)
maxhaton Jan 9, 2024
a16338d
have preprocess() return file contents rather than file name (dlang/d…
WalterBright Jan 10, 2024
8878982
eliminate global references from printTemplateStats() (dlang/dmd!16011)
WalterBright Jan 11, 2024
4da0eea
move resolveTemplateIntantiation() to module scope
WalterBright Jan 11, 2024
2d181bd
move deduceBaseClassParameters() out of deduceType()
WalterBright Jan 11, 2024
3f1b518
remove unnecessary arg copying in DeduceType
WalterBright Jan 11, 2024
24f57c1
Break mtype.d dependency on dmangle.d (dlang/dmd!16016)
RazvanN7 Jan 11, 2024
eda358f
Refactor foreachApplyUtf to remove duplicate array literal logic
dkorpel Jan 11, 2024
d17118b
fix Issue 24331 - @nogc and GC.disable() are often confused
WalterBright Jan 12, 2024
0a75260
Move mtype.Type*.toDsymbol to typesem.d
RazvanN7 Jan 11, 2024
2f76c59
deduceTypeHelper - use out param (dlang/dmd!16025)
WalterBright Jan 12, 2024
7e436c5
Print linker command on failure
dkorpel Jan 12, 2024
2ee6b5f
Delete redundant semantic in TypeClass.implicitConvTo
RazvanN7 Jan 11, 2024
bf502c9
shortcut simple class casts (dlang/dmd!16027)
WalterBright Jan 13, 2024
356cf91
move backend.md5 to common.md5
WalterBright Jan 13, 2024
697a781
deduceBaseClassParameters() to ref parameters
WalterBright Jan 13, 2024
845d802
deduceType(): switch dedtypes to ref (dlang/dmd!16031)
WalterBright Jan 13, 2024
02e51e2
deduceType(): change parameters to ref (dlang/dmd!16033)
WalterBright Jan 14, 2024
9c85d91
functionResolve() use delegate instead of pointer (dlang/dmd!16034)
WalterBright Jan 14, 2024
aad7f68
Fix issue 19702 - Remove usage of DECLARE_HANDLE
vabenil Jan 14, 2024
ff91a01
optimize _d_interface_cast() and _d_dynamic_cast() (dlang/dmd!16036)
WalterBright Jan 15, 2024
1fefec7
callMatch() use delegate instead of pointer (dlang/dmd!16039)
WalterBright Jan 15, 2024
6234e5e
Merge pull request dlang/dmd!15974 from dlang/rainer_dll2
dlang-bot Jan 15, 2024
df1b963
Improve GC performance for multiple threads (dlang/dmd!15896)
puneet Jan 15, 2024
e5eb03e
Move mtype.Type.trySemantic to typesem.d
RazvanN7 Jan 11, 2024
09fb44d
Break dependency of mtype.d on opover.d + delete other useless import…
RazvanN7 Jan 15, 2024
c45c1e6
Break dependency of mtype.d on dscope.d
RazvanN7 Jan 15, 2024
17b0b46
Break mtype.d dependency on gluelayer.d
RazvanN7 Jan 15, 2024
b35e85b
Move mtype.mutabilityOfType a function that uses it to typesem.d (dla…
RazvanN7 Jan 15, 2024
8481168
compare class name signatures (dlang/dmd!16032)
WalterBright Jan 16, 2024
6c4db5f
replace casts in dtemplate.d
WalterBright Jan 16, 2024
d7c798e
core.internal.dassert: Remove top-level import of core.atomic.
ibuclaw Jan 17, 2024
2773205
core.stdc: Add bindings for CRuntime_Newlib
ibuclaw Jan 11, 2024
0e87756
improve _dynamic_class_cast() performance (dlang/dmd!16040)
WalterBright Jan 17, 2024
cf8db01
typinf.h: Remove unused forward declarations
ibuclaw Jan 17, 2024
f66b32b
Improve readability of 'not callable using argument types' error mess…
ryuukk Jan 18, 2024
b61c3c9
Enhanced version of dip1036 implementation (dlang/dmd!15715)
adamdruppe Jan 20, 2024
fc1ceb2
use buf in toCharsMaybeConstraints()
WalterBright Jan 20, 2024
3d46766
prepare toCharsMaybeConstraints to move to hdrgen.d
WalterBright Jan 21, 2024
3357933
mv toCharsMaybeConstraints() to hdrgen.d (dlang/dmd!16067)
WalterBright Jan 21, 2024
a908452
make evaluateConstraint() static (dlang/dmd!16065)
WalterBright Jan 21, 2024
42f520d
make formatParamsWithTiargs standalone (dlang/dmd!16057)
WalterBright Jan 21, 2024
666b521
make FuncDeclaration.leastAsSpecialized standalone (dlang/dmd!16062)
WalterBright Jan 21, 2024
0512c91
make functionsSemantic() static (dlang/dmd!16066)
WalterBright Jan 21, 2024
9be107a
make matchWithInstance standalone (dlang/dmd!16059)
WalterBright Jan 22, 2024
5280c0f
make leastAsSpecialized standalone (dlang/dmd!16060)
WalterBright Jan 22, 2024
f3829d9
add funcsem.d for function semantics (dlang/dmd!16074)
WalterBright Jan 22, 2024
660b989
Fix issue 24179 - Fix line breaks in DDoc (dlang/dmd!16050)
Sumandora Jan 22, 2024
0298571
Fix Bugzilla 24349 - object noreturn link is missing
ntrel Jan 22, 2024
39a393a
Shortcircuit mtype.Type._init call to typesem.merge() (dlang/dmd!16052)
RazvanN7 Jan 22, 2024
818bb8c
Address review comments for class name signature support (dlang/dmd!1…
ibuclaw Jan 22, 2024
d26e98a
create templatesem.d, move matchWithInstance() to it (dlang/dmd!16075)
WalterBright Jan 22, 2024
77a93ac
make scopeForTemplateParameters standalone (dlang/dmd!16058)
WalterBright Jan 22, 2024
693a6d0
Remained AboutToStart stuff moved out from osthread
denizzzka Jan 22, 2024
1e14c86
mv static functions from dtemplate.d to templatesem.d (dlang/dmd!16081)
WalterBright Jan 23, 2024
583e767
Move dmd.mtype.Type.merge2 to typesem (dlang/dmd!16078)
RazvanN7 Jan 23, 2024
9630b04
mv deduceFunctionTemplateMatch to templatesem.d (dlang/dmd!16083)
WalterBright Jan 23, 2024
f2568e7
Add strndup to `core.stdc.string` module (dlang/dmd!16085)
ryuukk Jan 23, 2024
8cf0892
improve documentation for -HC switches
WalterBright Jan 23, 2024
d0c741b
imppath does not need to be allocated
WalterBright Jan 24, 2024
ed9bdf3
move semantic functions from func.d to funcsem.d (dlang/dmd!16082)
WalterBright Jan 24, 2024
64a9d4f
change global.path and global.filePath to ref's (dlang/dmd!16089)
WalterBright Jan 24, 2024
25898c0
Separate check for better debugging
denizzzka Jan 24, 2024
cf39de5
Memory allocation call ambiguity fix
denizzzka Jan 24, 2024
ad676f4
Memory DEallocation call without static condition
denizzzka Jan 24, 2024
6f65235
global.versionids and debugids to values (dlang/dmd!16092)
WalterBright Jan 24, 2024
0fa59c7
filename.d: use const more aggressively (dlang/dmd!16090)
WalterBright Jan 25, 2024
3e5b3c8
Allow casting hexstring to int array (dlang/dmd!16079)
dkorpel Jan 25, 2024
6d5a2e9
move declareThis() to funcsem.d (dlang/dmd!16093)
WalterBright Jan 25, 2024
b98713a
Fix hex strings being printed as regular strings
dkorpel Jan 25, 2024
c787d20
debug(MARK_PRINTF) compilation fix (dlang/dmd!16095)
denizzzka Jan 25, 2024
7a2a286
core.internal.array: Replace `_d_newarrayU` with template in `_dup` (…
teodutu Jan 27, 2024
b63b33a
move enum semantic routines into new enumsem.d (dlang/dmd!16099)
WalterBright Jan 27, 2024
6d947a8
Partially fix 15504 - core.demangle: remove OverflowException
denizzzka Jan 27, 2024
ed24aba
Move pragma-related semantic functions to dmd.pragmas module
ibuclaw Jan 1, 2024
d8693b4
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Jan 28, 2024
fbb8dd7
denum.d: remove unused imports (dlang/dmd!16102)
WalterBright Jan 28, 2024
fab9b3d
Merge pull request dlang/dmd!16105 from ibuclaw/merge_stable
ibuclaw Jan 28, 2024
23b829c
test: Add float stringof comparison tests for GDC
ibuclaw Jan 28, 2024
b258b25
Fix signature of StringExp::getIndex for extern(C++) (dlang/dmd!16110)
ibuclaw Jan 28, 2024
4684f55
move doHeaderInstantiation() to templatesem.d (dlang/dmd!16108)
WalterBright Jan 28, 2024
569cdfe
Merge pull request dlang/dmd!16091 from denizzzka/mmap_pr
dlang-bot Jan 29, 2024
4e5ea8d
tidy up initsem.d a bit (dlang/dmd!16109)
WalterBright Jan 29, 2024
1dc0e8c
bslice_empty() returns BufSlice with dst == null to prevent accidenta…
denizzzka Jan 28, 2024
b2fc472
Erroneous isNull() removed
denizzzka Jan 29, 2024
8e20062
formatting
denizzzka Jan 29, 2024
a396c4f
move templateDeclarationSemantic() to templatesem.d (dlang/dmd!16107)
WalterBright Jan 29, 2024
2c00e74
move funcDeclarationSemantic() to funcsem.d (dlang/dmd!16103)
WalterBright Jan 29, 2024
9e909c4
Merge pull request dlang/dmd!16104 from denizzzka/avoid_overflow_ex_pr
dlang-bot Jan 29, 2024
c0f9da9
demangle: minor changes for clarity (dlang/dmd!16112)
denizzzka Jan 30, 2024
563b7ed
mv checkForwardRef() to funcsem.d (dlang/dmd!16116)
WalterBright Jan 30, 2024
48e1e4a
move declareParameter() to templatesem.d (dlang/dmd!16115)
WalterBright Jan 30, 2024
2a354e9
fix bugzilla Issue 23515 - Named Enum of function SIGSEGFAULT (dlang…
WalterBright Jan 30, 2024
750a012
Fix bugzilla issue 24359 - slice equality expression can be discarded
dkorpel Jan 29, 2024
93afddf
Fix Bugzilla 15504 - core.demangle: exceptions gone from normal contr…
denizzzka Jan 31, 2024
308a7db
Fix bugzilla issue 24363 - hex string postfixes are useless (dlang/dm…
dkorpel Jan 31, 2024
b341803
core.demangle: refactor superfluous mixin use (dlang/dmd!16120)
dkorpel Jan 31, 2024
4642171
Move constOf from mtype.type to typesem (dlang/dmd!16121)
RazvanN7 Feb 1, 2024
fd8b542
Remove some errStatus parameters from Demangle (dlang/dmd!16122)
dkorpel Feb 1, 2024
12c0989
core.demangle: Fix array out of bounds with many hex float digits (dl…
dkorpel Feb 1, 2024
0ae844a
Move immutable/shared/wild/mutableOf families of functions to typesem…
RazvanN7 Feb 1, 2024
9ef63a8
core.demangle: refactor errMsg assignment to a function (dlang/dmd!16…
dkorpel Feb 1, 2024
c36cdc0
mv functionResolve() to templatesem.d (dlang/dmd!16124)
WalterBright Feb 1, 2024
d14dc1d
Fix sliceCmpStringWithArray for StringExp with size 8 (dlang/dmd!16123)
dkorpel Feb 2, 2024
432267e
Move mtype.Type.castMod to typesem (dlang/dmd!16133)
RazvanN7 Feb 2, 2024
75f9bff
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Feb 2, 2024
c4eb7b1
mv findVtblIndex() and overrideInterface() to funcsem.d (dlang/dmd!16…
WalterBright Feb 2, 2024
14b70b7
test: Reorganize the unicode tests so those with BOMs are identifiabl…
ibuclaw Feb 2, 2024
5af7753
qsort debug output fix (dlang/dmd!16140)
denizzzka Feb 4, 2024
4754d6f
[REG master] Explicitly instantiate StringValue!Type in dmd.mtype (dl…
ibuclaw Feb 4, 2024
f2ae027
Update constraints of GNU atomicExchange to match DigitalMars (dlang/…
ibuclaw Feb 4, 2024
13badbf
Unsupported platform static asserts
denizzzka Feb 4, 2024
66e5094
druntime: Prepare test/shared source files for Windows support
kinke Jan 14, 2024
b468d91
druntime: Prepare test/shared/Makefile for broader Windows support
kinke Jan 14, 2024
0f0eb84
test/shared for windows:
rainers Feb 4, 2024
9fc1eae
Fix Bugzilla issue 24309 - Memory allocation failed on Azure pipeline
rainers Feb 4, 2024
30a57b7
[nits after rebase]
kinke Feb 4, 2024
376b6ff
Revert "Remove some errStatus parameters from Demangle (dlang/dmd!161…
kinke Feb 5, 2024
2ab3aae
dmd.cppmanglewin: Move checkImmutableShared below the private: line
ibuclaw Feb 5, 2024
e295766
dmd: Remove extern(C++) from global functions that don't need it
ibuclaw Feb 5, 2024
9b8bfc6
dmd: Add extern(C++) functions missing from the headers
ibuclaw Feb 5, 2024
de967c4
Fix IsAtomicLockFree for PPC targets
ibuclaw Feb 5, 2024
595fbeb
functionParameters() - fix some turgid comparisons (dlang/dmd!16162)
WalterBright Feb 6, 2024
2d7d901
Introduce version() which disables memory-greedy unittests (dlang/dmd…
denizzzka Feb 6, 2024
1083530
empty commit, trigger CI
denizzzka Feb 6, 2024
569e2e8
straighten out needsDtor (dlang/dmd!16165)
WalterBright Feb 7, 2024
95a71f5
fix Bugzilla Issue 3543 - [tdpl] ternary operator can't find common t…
WalterBright Jan 17, 2024
05dd05f
background work for caller does destruction (dlang/dmd!16163)
WalterBright Feb 7, 2024
826dacf
pass -visibility=public for SHARED=1
rainers Feb 5, 2024
727c0be
empty commit, trigger CI
denizzzka Feb 7, 2024
87cd002
Merge pull request dlang/dmd!16037 from kinke/druntime_test_shared_win
dlang-bot Feb 8, 2024
978aedc
Add test for parser instantiated with ASTBase in the testsuite (dlang…
RazvanN7 Feb 8, 2024
74c0348
test: Add UNICODE_NAMES directive to files with utf-8 symbols (dlang/…
ibuclaw Feb 8, 2024
5de2309
Extract mtype.Type.addMod and move it to typesem (dlang/dmd!16135)
RazvanN7 Feb 8, 2024
d74b902
Extract mtype.Type.equivalent and move it to dmd.typesem (dlang/dmd!1…
RazvanN7 Feb 8, 2024
44677b1
Merge pull request dlang/dmd!16144 from denizzzka/non_windows_non_pos…
dlang-bot Feb 9, 2024
e5d2fb0
Always run backend inliner when -inline seen on command-line (dlang/d…
ibuclaw Feb 12, 2024
c6bccb0
dmd: Move default field initializers to runtime
ibuclaw Feb 5, 2024
ccba5fd
Remove dmd.iasm from the gluelayer module (dlang/dmd!16182)
ibuclaw Feb 13, 2024
af842d6
Fix Bugzilla 24387 - Base class construction ignores private (dlang/d…
ntrel Feb 13, 2024
a72cafb
Move handleTagSymbols and handleSymbolRedeclarations to dmd.importc
ibuclaw Feb 13, 2024
45ebbc9
Fix Bugzilla 24383 - Index assignment expression in __traits(compiles…
ntrel Feb 13, 2024
775deed
Extract mtype.Type.pointerOf/referenceOf and move to typesem.d (dlang…
RazvanN7 Feb 13, 2024
03ca3c4
dmd: Move all public C++ functions into a dmd namespace
ibuclaw Feb 5, 2024
7921a0b
fix bugzilla Issue 24390 - AssertError@src/dmd/backend/cgxmm.d(1476):…
ibuclaw Feb 14, 2024
626c5fa
Change toString implementations to a common "get empty string" (dlang…
schveiguy Feb 14, 2024
2c79c71
Fix Bugzilla 23786 - __traits(parent, {}) in overloaded function prod…
Spoov Feb 14, 2024
21e7911
add module declaration to test
Spoov Feb 14, 2024
b1b09bf
Merge pull request dlang/dmd!16186 from Spoov/fix23786
dlang-bot Feb 15, 2024
6632eeb
partial bugzilla 24389 - importC: Parser support for top-level asm de…
ibuclaw Feb 15, 2024
88226ce
core.thread.fiber uses more abstract ThreadBase rather than osthread …
denizzzka Feb 15, 2024
49764a5
Extract addStorageClass method from Type AST nodes and move it into t…
RazvanN7 Feb 15, 2024
27d1830
test continue inside do-while (dlang/dmd!16192)
WalterBright Feb 16, 2024
2d3ae36
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Feb 16, 2024
be178d8
Merge pull request dlang/dmd!16195 from ibuclaw/merge_stable
ibuclaw Feb 16, 2024
1ebd1e9
Turn -preview=dip1000 warning into a deprecation (dlang/dmd!16198)
ibuclaw Feb 17, 2024
964f544
Turn foreach_reverse(AA) into an error (dlang/dmd!16197)
ibuclaw Feb 17, 2024
df13aa9
Fix objdump not outputting intel syntax (dlang/dmd!16190)
dkorpel Feb 17, 2024
c8f8c07
refactor runProgram() (dlang/dmd!16196)
WalterBright Feb 18, 2024
17e7708
fix bugzilla Issue 24397 ImportC: support function-like macros (dlang…
WalterBright Feb 19, 2024
7306772
Revert the removal of `Expression.parens` (dlang/dmd!16193)
teodutu Feb 20, 2024
892191d
runPreprocessor - eliminate dependence on a couple globals (dlang/dmd…
WalterBright Feb 20, 2024
f76f9b1
powerpc64-darwin regression fix
denizzzka Feb 20, 2024
387610d
console.d: clearly deliniate Posix/Windows code
WalterBright Feb 20, 2024
119a6be
dinifile.d: fix Windows/Posix, sort imports (dlang/dmd!16215)
WalterBright Feb 21, 2024
02f12a7
toWStrings(): fix unnecessarily complex loop
WalterBright Feb 22, 2024
9e31eac
Move dmd/root/object.h to dmd/rootobject.h
ibuclaw Feb 22, 2024
81a0602
file.d: move Posix/Windows to the top
WalterBright Feb 22, 2024
e594270
Extract staticcond.evalStaticCondition and move it to expressionsem
Feb 23, 2024
346cf21
Fix Bugzilla issue 24405 - FreeBSD's ifaddrs missing the ifa_broadadd…
jmdavis Feb 23, 2024
016ca86
Remove unused imports.
veelo Feb 23, 2024
b5b4d2d
Remove unused imports.
veelo Feb 23, 2024
fa1f741
Eliminate dscope import.
veelo Feb 23, 2024
4dd7829
make sure hello world in C works
WalterBright Feb 23, 2024
389112b
Fix bugzilla issue 24408 - Remove duplicate AF_INET6 declaration.
jmdavis Feb 24, 2024
37d3a1f
Add core.sys.freebsd.net.if_.
jmdavis Feb 24, 2024
6ed29c1
Eliminate templatesem import from func.d.
veelo Feb 24, 2024
a6ae000
Update frontend.h
thewilsonator Feb 24, 2024
d256111
Remove unused dscope import. (dlang/dmd!16243)
veelo Feb 26, 2024
249ba90
Fix Bugzilla issue 24404 - ifaddrs union fields incorrectly name on L…
jmdavis Feb 26, 2024
b453eed
Eliminate statementsem import from func.d.
veelo Feb 26, 2024
48486bb
Move mtype.Type.aliasthisOf to typesem.d
RazvanN7 Feb 26, 2024
d661b9a
Move mtype.Type.sarrayOf to typesem.d
RazvanN7 Feb 26, 2024
8e7479a
Eliminate funcsem import from func.d.
veelo Feb 27, 2024
d1b9263
Move Type.arrayOf to typesem (dlang/dmd!16225)
RazvanN7 Feb 27, 2024
9f64f1a
Eliminate dsymbolsem import from func.d. (dlang/dmd!16258)
veelo Feb 27, 2024
a95dd43
Move mtype.Type.checkAliasThisRec to typesem and make it private. (dl…
RazvanN7 Feb 27, 2024
828de0f
Extract (mtype.Type/mtype.TypeFunction).sunstWildTo into a separate f…
RazvanN7 Feb 27, 2024
5eab381
Fix bugzilla issue 24417: fds_bits named incorrectly on FreeBSD
jmdavis Feb 28, 2024
4eb4d4a
Move mtype.Type.unqualify/toHeadMutable to typesem.d (dlang/dmd!16259)
RazvanN7 Feb 28, 2024
dfe7ee5
don't reinvent assert()
WalterBright Mar 1, 2024
29777d0
reduce use of fatal() in cppmanglewin.d
WalterBright Mar 1, 2024
0dac193
remove fatal() from optimize.d (dlang/dmd!16273)
WalterBright Mar 1, 2024
7af273e
remove fatal() from typesem.d (dlang/dmd!16272)
WalterBright Mar 1, 2024
b23f270
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Mar 1, 2024
fdd92df
Merge pull request dlang/dmd!16276 from ibuclaw/merge_stable
ibuclaw Mar 1, 2024
4cb9610
Merge remote-tracking branch 'upstream/master' into stable
ibuclaw Mar 2, 2024
217888f
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Mar 3, 2024
9041c0b
Adapt to free functions in `dmd` C++ namespace now
kinke Mar 3, 2024
3f1c8a7
Adapt to global.params.{imp,fileImp}path now being Strings, not Strings*
kinke Mar 3, 2024
113443d
Adapt to changed C preprocessor hook
kinke Mar 3, 2024
8b2fa98
Misc. merge fixes on the D side
kinke Mar 3, 2024
81cdec0
Add missing getDefaultValue() to frontend C++ interface
kinke Mar 3, 2024
bb2dec2
Adapt to free arrayOf(Type*) function
kinke Mar 3, 2024
e122f7d
Adapt to new argtypes.h header
kinke Mar 3, 2024
5b2dcf3
Fix little upstream C++ header regression
kinke Mar 3, 2024
51072e9
Bump LDC version / frontend version / Phobos submodule
kinke Mar 3, 2024
8dd1957
Adapt to object.TypeInfo_Class layout change
kinke Mar 3, 2024
cf3572e
druntime: 2 little merge fixes
kinke Mar 3, 2024
05695a1
druntime: Fix upstream regression wrt. onOutOfMemoryError() fwd decla…
kinke Mar 3, 2024
33a744f
druntime: Fix outdated signatures in onOutOfMemoryError() fwd declara…
kinke Mar 3, 2024
024ea42
Fix C++ interface: No more Type::arrayOf() and Type::sarrayOf()
kinke Mar 3, 2024
f61a3f4
Fix C++ interface: FileName::searchPath() signature
kinke Mar 3, 2024
67ec88a
C++ interface: Expose dmd.enumsem.getDefaultValue()
kinke Mar 3, 2024
20415c0
Add L postfix for hex string
dkorpel Jan 31, 2024
c58fe3a
Fix named arguments with IFTI
dkorpel Jan 3, 2024
fc7006f
Windows: Fix upstream 'regression' wrt. narrow code page
kinke Mar 8, 2024
0a69a84
Add support for new ulong[] hex string literals
kinke Mar 8, 2024
55cec1b
druntime: Disable rt.tracegc for LDC
kinke Mar 9, 2024
a4c46cb
Minimally adapt 2 dmd-testsuite tests for LDC
kinke Mar 9, 2024
ea9751a
druntime: Revert upstream addition of DllMain() for druntime DLL
kinke Mar 10, 2024
28f13f3
GHA Main: Reduce job time-outs
kinke Mar 10, 2024
561b9ba
Add support for new CAsmDeclarations
kinke Mar 11, 2024
f0530e8
Add support for new TypeInfo_Class.nameSig
kinke Mar 11, 2024
776db60
Fix compiler va_list type for (hypothetical?) Apple 32-bit ARM targets
kinke Mar 11, 2024
374b1da
GHA: Bump 'bootstrap LDC' to v1.19, with required `extern(C++, "dmd")…
kinke Mar 11, 2024
be00cbb
Hack around little dynamic-compile test regression
kinke Mar 11, 2024
3778f66
Make hex strings implicitly convert to integer arrays
dkorpel Feb 28, 2024
b65f475
Merge pull request dlang/dmd!16293 from dkorpel/hexstring-impl-conv-s…
ibuclaw Mar 15, 2024
0ecec85
Fix endian issue when printing hex string literals
dkorpel Mar 15, 2024
0f3ca45
Remove StringExp.peekString casts
dkorpel Mar 15, 2024
078f053
Don't forward-declare magic intrinsics mapping to instructions
kinke Mar 16, 2024
c467ff2
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Mar 16, 2024
837bf63
Adopt DMD's minimally changed description for -HC[f]
kinke Mar 17, 2024
d6dcfd2
Add changelog entry
kinke Mar 17, 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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ jobs:

name: ${{ matrix.job_name }}
runs-on: ${{ matrix.os }}
timeout-minutes: 150
timeout-minutes: 90
env:
MACOSX_DEPLOYMENT_TARGET: 10.12
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/supported_llvm_versions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
cmake_flags: -DRT_SUPPORT_SANITIZERS=ON
- job_name: Ubuntu 20.04, LLVM 12, bootstrap LDC
os: ubuntu-20.04
host_dc: ldc-1.9.0
host_dc: ldc-1.19.0
llvm_version: 12.0.1
cmake_flags: -DBUILD_SHARED_LIBS=ON -DLIB_SUFFIX=64
- job_name: Ubuntu 20.04, LLVM 11, latest DMD beta
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.108.0](https://dlang.org/changelog/2.108.0.html). (#4591)

#### 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.37.0") # May be overridden by git hash tag
set(LDC_VERSION "1.38.0") # May be overridden by git hash tag
set(DMDFE_MAJOR_VERSION 2)
set(DMDFE_MINOR_VERSION 107)
set(DMDFE_PATCH_VERSION 1)
set(DMDFE_MINOR_VERSION 108)
set(DMDFE_PATCH_VERSION 0)

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

Expand Down
5 changes: 5 additions & 0 deletions dmd/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,13 +110,17 @@ Note that these groups have no strict meaning, the category assignments are a bi
| File | Purpose |
|-------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| [dsymbolsem.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/dsymbolsem.d) | Do semantic 1 pass (symbol identifiers/types) |
| [enumsem.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/enumsem.d) | Enum semantics |
| [funcsem.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/funcsem.d) | Function semantics |
| [semantic2.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/semantic2.d) | Do semantic 2 pass (symbol initializers) |
| [semantic3.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/semantic3.d) | Do semantic 3 pass (function bodies) |
| [inline.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/inline.d) | Do inline pass (optimization pass that dmd does in the front-end) |
| [inlinecost.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/inlinecost.d) | Compute the cost of inlining a function call. |
| [expressionsem.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/expressionsem.d) | Do semantic analysis for expressions |
| [statementsem.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/statementsem.d) | Do semantic analysis for statements |
| [initsem.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/initsem.d) | Do semantic analysis for initializers |
| [pragmasem.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/pragmasem.d) | Do semantic analysis for pragmas |
| [templatesem.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/templatesem.d) | Do semantic analysis for templates |
| [templateparamsem.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/templateparamsem.d) | Do semantic analysis for template parameters |
| [typesem.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/typesem.d) | Do semantic analysis for types |

Expand Down Expand Up @@ -230,6 +234,7 @@ Note that these groups have no strict meaning, the category assignments are a bi
|-----------------------------------------------------------------------------------|------------------------------------------------------------------|
| [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) |

### Linking
Expand Down
2 changes: 1 addition & 1 deletion dmd/aggregate.d
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ import dmd.identifier;
import dmd.location;
import dmd.mtype;
import dmd.tokens;
import dmd.typesem : defaultInit;
import dmd.typesem : defaultInit, addMod;
import dmd.visitor;

/**
Expand Down
9 changes: 7 additions & 2 deletions dmd/aggregate.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,11 @@ enum class Baseok : uint8_t
semanticdone // all base classes semantic done
};

FuncDeclaration *search_toString(StructDeclaration *sd);
namespace dmd
{
FuncDeclaration *search_toString(StructDeclaration *sd);
void semanticTypeInfoMembers(StructDeclaration *sd);
}

enum class ClassKind : uint8_t
{
Expand Down Expand Up @@ -238,7 +242,8 @@ struct ClassFlags
hasTypeInfo = 0x20,
isAbstract = 0x40,
isCPPclass = 0x80,
hasDtor = 0x100
hasDtor = 0x100,
hasNameSig = 0x200,
};
};

Expand Down
25 changes: 25 additions & 0 deletions dmd/argtypes.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

/* Compiler implementation of the D programming language
* 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.
* https://www.boost.org/LICENSE_1_0.txt
* https://github.com/dlang/dmd/blob/master/compiler/src/dmd/argtypes.h
*/

#pragma once

class Type;
class TypeTuple;

namespace dmd
{
// in argtypes_x86.d
TypeTuple *toArgTypes_x86(Type *t);
// in argtypes_sysv_x64.d
TypeTuple *toArgTypes_sysv_x64(Type *t);
// in argtypes_aarch64.d
TypeTuple *toArgTypes_aarch64(Type *t);
bool isHFVA(Type *t, int maxNumElements = 4, Type **rewriteType = nullptr);
}
9 changes: 6 additions & 3 deletions dmd/argtypes_aarch64.d
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import dmd.mtype;
* A tuple of zero length means the type cannot be passed/returned in registers.
* null indicates a `void`.
*/
extern (C++) TypeTuple toArgTypes_aarch64(Type t)
TypeTuple toArgTypes_aarch64(Type t)
{
if (t == Type.terror)
return new TypeTuple(t);
Expand Down Expand Up @@ -64,7 +64,9 @@ extern (C++) TypeTuple toArgTypes_aarch64(Type t)
case 2: return Type.tint16;
case 4: return Type.tint32;
case 8: return Type.tint64;
default: return Type.tint64.sarrayOf((size + 7) / 8);
default:
import dmd.typesem : sarrayOf;
return Type.tint64.sarrayOf((size + 7) / 8);
}
}
return new TypeTuple(getGPType(size));
Expand All @@ -82,7 +84,7 @@ extern (C++) TypeTuple toArgTypes_aarch64(Type t)
* If the type is an HFVA and `rewriteType` is specified, it is set to a
* corresponding static array type.
*/
extern (C++) bool isHFVA(Type t, int maxNumElements = 4, Type* rewriteType = null)
bool isHFVA(Type t, int maxNumElements = 4, Type* rewriteType = null)
{
t = t.toBasetype();
if ((t.ty != Tstruct && t.ty != Tsarray && !t.iscomplex()) || !isPOD(t))
Expand All @@ -93,6 +95,7 @@ extern (C++) bool isHFVA(Type t, int maxNumElements = 4, Type* rewriteType = nul
if (N < 1 || N > maxNumElements)
return false;

import dmd.typesem : sarrayOf;
if (rewriteType)
*rewriteType = fundamentalType.sarrayOf(N);

Expand Down
3 changes: 2 additions & 1 deletion dmd/argtypes_sysv_x64.d
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import dmd.visitor;
* A tuple of zero length means the type cannot be passed/returned in registers.
* null indicates a `void`.
*/
extern (C++) TypeTuple toArgTypes_sysv_x64(Type t)
TypeTuple toArgTypes_sysv_x64(Type t)
{
if (t == Type.terror)
return new TypeTuple(t);
Expand Down Expand Up @@ -65,6 +65,7 @@ extern (C++) TypeTuple toArgTypes_sysv_x64(Type t)
assert(c == Class.sseUp);

assert(size % 8 == 0);
import dmd.typesem : sarrayOf;
return new TypeTuple(new TypeVector(Type.tfloat64.sarrayOf(N)));
}

Expand Down
2 changes: 1 addition & 1 deletion dmd/argtypes_x86.d
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ import dmd.visitor;
* A tuple of zero length means the type cannot be passed/returned in registers.
* null indicates a `void`.
*/
extern (C++) TypeTuple toArgTypes_x86(Type t)
TypeTuple toArgTypes_x86(Type t)
{
extern (C++) final class ToArgTypes : Visitor
{
Expand Down
2 changes: 1 addition & 1 deletion dmd/arrayop.d
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import dmd.dsymbol;
import dmd.errors;
import dmd.expression;
import dmd.expressionsem;
import dmd.func;
import dmd.funcsem;
import dmd.hdrgen;
import dmd.id;
import dmd.identifier;
Expand Down
2 changes: 1 addition & 1 deletion dmd/ast_node.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

#pragma once

#include "root/object.h"
#include "rootobject.h"

class Visitor;

Expand Down
1 change: 1 addition & 0 deletions dmd/astcodegen.d
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ struct ASTCodegen
alias Tcomplex64 = dmd.mtype.Tcomplex64;
alias Tcomplex80 = dmd.mtype.Tcomplex80;

alias ModToStc = dmd.mtype.ModToStc;
alias ParameterList = dmd.mtype.ParameterList;
alias VarArg = dmd.mtype.VarArg;
alias STC = dmd.declaration.STC;
Expand Down
8 changes: 7 additions & 1 deletion dmd/astenums.d
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ bool isRefReturnScope(const ulong stc)

/* This is different from the one in declaration.d, make that fix a separate PR */
static if (0)
extern (C++) __gshared const(StorageClass) STCStorageClass =
__gshared const(StorageClass) STCStorageClass =
(STC.auto_ | STC.scope_ | STC.static_ | STC.extern_ | STC.const_ | STC.final_ |
STC.abstract_ | STC.synchronized_ | STC.deprecated_ | STC.override_ | STC.lazy_ |
STC.alias_ | STC.out_ | STC.in_ | STC.manifest | STC.immutable_ | STC.shared_ |
Expand Down Expand Up @@ -459,3 +459,9 @@ extern (C++) struct structalign_t
bool isPack() const { return pack; }
void setPack(bool pack) { this.pack = pack; }
}

/// Use to return D arrays from C++ functions
extern (C++) struct DArray(T)
{
T[] data;
}
109 changes: 109 additions & 0 deletions dmd/basicmangle.d
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
/**
* Defines the building blocks for creating the mangled names for basic types.
*
* Copyright: Copyright (C) 1999-2024 by The D Language Foundation, All Rights Reserved
* 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/basicmangle.d, _basicmangle.d)
* Documentation: https://dlang.org/phobos/dmd_basicmangle.html
* Coverage: https://codecov.io/gh/dlang/dmd/src/master/src/dmd/basicmangle.d
*/
module dmd.basicmangle;

import dmd.astenums;
import dmd.common.outbuffer : OutBuffer;

/// Type mangling mapping for basic, derived and user defined types
immutable char[TMAX] mangleChar =
[
Tchar : 'a',
Tbool : 'b',
Tcomplex80 : 'c',
Tfloat64 : 'd',
Tfloat80 : 'e',
Tfloat32 : 'f',
Tint8 : 'g',
Tuns8 : 'h',
Tint32 : 'i',
Timaginary80 : 'j',
Tuns32 : 'k',
Tint64 : 'l',
Tuns64 : 'm',
Tnull : 'n',
Timaginary32 : 'o',
Timaginary64 : 'p',
Tcomplex32 : 'q',
Tcomplex64 : 'r',
Tint16 : 's',
Tuns16 : 't',
Twchar : 'u',
Tvoid : 'v',
Tdchar : 'w',
// x // const
// y // immutable
Tint128 : 'z', // zi
Tuns128 : 'z', // zk

Tarray : 'A',
Ttuple : 'B',
Tclass : 'C',
Tdelegate : 'D',
Tenum : 'E',
Tfunction : 'F', // D function
Tsarray : 'G',
Taarray : 'H',
// I // in
// J // out
// K // ref
// L // lazy
// M // has this, or scope
// N // Nh:vector Ng:wild Nn:noreturn
// O // shared
Tpointer : 'P',
// Q // Type/symbol/identifier backward reference
Treference : 'R',
Tstruct : 'S',
// T // Ttypedef
// U // C function
// W // Windows function
// X // variadic T t...)
// Y // variadic T t,...)
// Z // not variadic, end of parameters

// '@' shouldn't appear anywhere in the deco'd names
Tnone : '@',
Tident : '@',
Tinstance : '@',
Terror : '@',
Ttypeof : '@',
Tslice : '@',
Treturn : '@',
Tvector : '@',
Ttraits : '@',
Tmixin : '@',
Ttag : '@',
Tnoreturn : '@', // becomes 'Nn'
];

unittest
{
foreach (i, mangle; mangleChar)
{
if (mangle == char.init)
{
import core.stdc.stdio;
fprintf(stderr, "ty = %u\n", cast(uint)i);
assert(0);
}
}
}

/***********************
* Mangle basic type ty to buf.
*/
void tyToDecoBuffer(ref OutBuffer buf, int ty) @safe
{
const c = mangleChar[ty];
buf.writeByte(c);
if (c == 'z')
buf.writeByte(ty == Tint128 ? 'i' : 'k');
}
15 changes: 7 additions & 8 deletions dmd/cli.d
Original file line number Diff line number Diff line change
Expand Up @@ -423,22 +423,21 @@ dmd -cov -unittest myprog.d
Option("Hf=<filename>",
"write 'header' file to filename"
),
Option("HC[=[silent|verbose]]",
"generate C++ 'header' file",
`Generate C++ 'header' files using the given configuration:",
Option("HC[=[?|h|help|silent|verbose]]",
"write C++ 'header' equivalent to stdout",
`write C++ 'header' equivalent to stdout configured with:",
$(DL
$(DT ?|h|help)$(DD list available options for C++ 'header' file generation)
$(DT silent)$(DD only list extern(C[++]) declarations (default))
$(DT verbose)$(DD also add comments for ignored declarations (e.g. extern(D)))
)`,
),
Option("HC=[?|h|help]",
"list available modes for C++ 'header' file generation"
),
Option("HCd=<directory>",
"write C++ 'header' file to directory"
"write C++ 'header' file to directory",
"write C++ 'header' file to directory, ignored if -HCf=<filename> is not present",
),
Option("HCf=<filename>",
"write C++ 'header' file to filename"
"write C++ 'header' file to filename instead of stdout"
),
Option("-help",
"print help and exit"
Expand Down
Loading
Loading