Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
207 commits
Select commit Hold shift + click to select a range
cab26d1
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Jan 1, 2023
d110ee2
Merge pull request dlang/dmd!14767 from ibuclaw/merge_stable
dlang-bot Jan 1, 2023
8f02a05
Update copyright years of dmd sources to 2023
ibuclaw Jan 1, 2023
3479b18
Makefile: stub out all auto-tester-build and auto-tester-test recipes
ibuclaw Jan 2, 2023
c3dbaa9
ci: Update cirrus macOS image to M1-based runners (dlang/dmd!14772)
ibuclaw Jan 2, 2023
dbba06b
Remove old 'Calling member function before dip1000'
dkorpel Jan 2, 2023
12b5b08
[dsymbolsem] Tweak punctuation for 3 error messages (dlang/dmd!14780)
ntrel Jan 5, 2023
0413798
[dsymbolsem] Fix error punctuation (part 2) (dlang/dmd!14784)
ntrel Jan 5, 2023
d56968f
[dsymbolsem] Fix error punctuation (part 3) (dlang/dmd!14785)
ntrel Jan 5, 2023
d253d87
[dsymbolsem] Fix error punctuation (part 4) (dlang/dmd!14786)
ntrel Jan 5, 2023
43e2826
Fix Issue 23597 - .di files not compatible with -i (dlang/dmd!14783)
CyberShadow Jan 5, 2023
59c87bf
add support for 64 bit memset (dlang/dmd!14788)
WalterBright Jan 5, 2023
28a4f45
Fix Issue 23261 - druntime core.std.attribute.Tagged1_2 constructor i…
RazvanN7 Jan 6, 2023
5fadcec
fix Issue 20101 - BetterC: Template instantiation in CTFE only contex…
WalterBright Jan 7, 2023
a8b20f8
fix Issue 23584 - ImportC: __builtin_bit_cast not supported (dlang/dm…
WalterBright Jan 9, 2023
76e1f01
ImportC better error message for __int128 (dlang/dmd!14797)
WalterBright Jan 9, 2023
74c9c49
fix Issue 23606 - betterC with CTFE and gc (dlang/dmd!14791)
WalterBright Jan 10, 2023
9075167
fix Issue 23616 - ImportC: clang __has_feature and __has_extension no…
WalterBright Jan 10, 2023
3f6238b
Follow up "- betterC with CTFE and gc" (dlang/dmd!14800)
dkorpel Jan 11, 2023
db5d6f1
fix Issue 23407 - ImportC: function-local struct definition as part o…
WalterBright Jan 12, 2023
484601a
Handle `null` elements in `Array.toString`
dkorpel Jan 12, 2023
704960c
Fix Issue 23617 - traits(child) compile error need this for something…
RazvanN7 Jan 12, 2023
1188b73
fix Issue 21772 - [REG2.069] Consecutive different-signed double.nans…
WalterBright Dec 20, 2022
a759d7f
fix Issue 23622 - ImportC #defines conflict with declarations
WalterBright Jan 13, 2023
ed337b4
fix Issue 23583 - ImportC: undefined identifier __builtin___memmove_chk
WalterBright Jan 11, 2023
ce6f4c6
Merge pull request dlang/dmd!14813 from dlang/stable
dlang-bot Jan 14, 2023
c7488bc
Merge pull request dlang/dmd!14815 from dlang/stable
dlang-bot Jan 14, 2023
96a8380
Fix Issue 23624 - Race condition in test runner for DMD
ntrel Jan 14, 2023
c9529c8
Fix 23625 - Add missing memory functions for windows
KytoDragon Jan 14, 2023
1842a68
Declare failedTargets shared
ntrel Jan 15, 2023
ba72485
Merge pull request dlang/dmd!14817 from ntrel/dmd-test-fails
dlang-bot Jan 15, 2023
41f70f2
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Jan 15, 2023
639118b
Merge pull request dlang/dmd!14823 from ibuclaw/merge_stable
ibuclaw Jan 15, 2023
aedb971
follow-up Issue 23626 - invert trustSystemEqualsDefault initializer t…
ibuclaw Jan 14, 2023
dadf9e9
core.sys.posix.sys.stat: Fix duplicate definition of __mode_t on Musl
CyberShadow Jan 8, 2023
7b54943
src/dmd/errors.d(384): `old_loc` is thread local
ibuclaw Jan 16, 2023
8b5ae23
druntime: avoid using compiler tricks of unspeciefied .mangleof (dlan…
ljmf00 Jan 17, 2023
0ccd11c
fix Issue 21492 - betterC: TypeInfo is generated for code guarded by …
WalterBright Jan 17, 2023
4a2cd0b
Add named arguments to struct literals (dlang/dmd!14776)
dkorpel Jan 17, 2023
29d1e16
remove untag.d from test suite (dlang/dmd!14833)
WalterBright Jan 17, 2023
38f8478
Fix parens in expandTuples documentation
dkorpel Jan 17, 2023
e5b56e4
dmd.expression: Fix another stray paren in DDoc
CyberShadow Jan 18, 2023
d934d2f
Merge pull request dlang/dmd!14835 from CyberShadow/pull-20230118-030238
CyberShadow Jan 18, 2023
e35d5ef
druntime: refactor PAGESIZE to use core.memory.pageSize
ljmf00 Jan 16, 2023
ca709bf
Deprecate traits(isVirtualFunction) and traits(getVirtualFunctions) (…
RazvanN7 Jan 20, 2023
f159de7
Fix Issue 23639 - Casting to shared not allowed with -preview=noshare…
RazvanN7 Jan 20, 2023
06a13c9
Fix Issue 23635 - Nonsensical "`case` must be a `string` or an integr…
ntrel Jan 21, 2023
e023a6c
fix Issue 16495 - __traits(fullyQualifedName) instead of std.traits.f…
WalterBright Jan 22, 2023
c80da7d
AliasDeclaration semantic
WalterBright Jan 24, 2023
060c55f
fix Issue 23651 - Order dependency in semantic analysis of template m…
WalterBright Jan 24, 2023
498dd36
Fix issue 11051 - Unmatched case in a final switch should throw in bo…
ntrel Jan 24, 2023
626f154
Merge pull request dlang/dmd!14843 from WalterBright/aliassem
dlang-bot Jan 25, 2023
17b9e8f
Add -verror-supplements, to let the user define how many supplemental…
JohanEngelen Oct 22, 2022
75e6e39
rename VarDeclaration.aliassym to aliasTuple (dlang/dmd!14845)
WalterBright Jan 25, 2023
ab320cf
Propagate SCOPE.compiles for nested functions in traits(compiles) blo…
RazvanN7 Jan 25, 2023
f634e2a
core.int128 alignment is adjusted (dlang/dmd!14768)
WalterBright Jan 26, 2023
e38b47e
fix Issue 23598 - Circular reference bug with static if and eponymous…
WalterBright Jan 26, 2023
d8fcab3
Add test for calling a function type (dlang/dmd!14848)
dkorpel Jan 26, 2023
d012657
fix Issue 19575 - core.cpuid not usable without a runtime
WalterBright Dec 4, 2022
805e6ec
Fix Issue 23650 - Using typeid with struct defined in __traits(compil…
RazvanN7 Jan 26, 2023
a00e99e
Remove FUNCFLAG.compileTimeOnly
RazvanN7 Jan 25, 2023
48a5fa2
Translate `_d_newclass` to a template (dlang/dmd!14837)
teodutu Jan 27, 2023
d55c5a5
Tweak @live undisposed owner error
ntrel Jan 28, 2023
5eb575f
runnable_cxx: Remove new_allocator test from cppa.d
ibuclaw Jan 15, 2023
7978943
importc: Remove __has_builtin redefine
ibuclaw Jan 15, 2023
041d207
ci: Version out C++ test that doesn't work with DMD
ibuclaw Jan 29, 2023
ba993c8
druntime: Match either _Dmain or D main
ibuclaw Jan 29, 2023
b9883e2
Merge pull request dlang/dmd!14824 from ibuclaw/ci-ubuntu-image
dlang-bot Jan 30, 2023
9216420
fix Issue 23658 - .di generation of variables should turn them into d…
WalterBright Jan 31, 2023
3b3180a
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Feb 1, 2023
4bd6cf5
Merge pull request dlang/dmd!14857 from ibuclaw/merge_stable
dlang-bot Feb 2, 2023
67e7de3
add const scope to IN6* functions taking inet 6 address pointers
benjones Feb 2, 2023
817b127
Fix Issue 23648 - replace uses of sprintf with snprintf in the compil…
RazvanN7 Feb 3, 2023
6c3bdc6
Remove dead `return ref` check
dkorpel Feb 4, 2023
8b278d9
fix Issue 23387 - ImportC: identical structs defined in two C files l…
WalterBright Oct 9, 2022
e1a5a39
dmd.root.filename: Add FileName::create helper
ibuclaw Feb 5, 2023
389558e
replace addLocalClass() with ScopeDsymbol._foreach
WalterBright Dec 17, 2022
40d69b4
d_do_test: allow separately compiling c sources
dkorpel Feb 6, 2023
a576b28
fix Issue 20781 - Can call @live function without checking dip1021 ru…
WalterBright Feb 7, 2023
8dce078
ImportC: add __check(assign-expression) extension (dlang/dmd!14026)
WalterBright Feb 7, 2023
39986ae
Merge pull request dlang/dmd!14541 from WalterBright/fix23387
dlang-bot Feb 7, 2023
b794cdf
fix Issue 21821 - Optimizer assumes immutables do not change, but the…
WalterBright Feb 7, 2023
b1beea5
add scope to constructors (dlang/dmd!14323)
WalterBright Feb 7, 2023
6a19aca
fix Issue 15985 - [REG2.068/2.069] Code doesn't link unless compiled …
WalterBright Feb 8, 2023
0b215ec
fix Issue 23545 - export int a; should generate dllexport, not dllimp…
WalterBright Feb 8, 2023
28d4c1c
fix Issue 23145 - Stack allocation of scope new variables defeats @sa…
WalterBright Feb 9, 2023
7db0ad0
fix Issue 23195 - Win64 function ABI bug for small non-POD arguments …
WalterBright Feb 9, 2023
4e15f10
fix Issue 23558 - add __traits(getModuleClasses [, module name]) (dla…
WalterBright Feb 9, 2023
38073d0
reapply fix Issue 23479 - ImportC recognizes .i and .c files, but not…
ibuclaw Feb 5, 2023
eaa911c
fix Issue 23688 - FTBFS: error: cannot convert 'Expression' to 'Expre…
ibuclaw Feb 12, 2023
cd7ba0e
fix Issue 23682 - dip1000 problem with return by ref (dlang/dmd!14869)
WalterBright Feb 12, 2023
4c15f2f
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Feb 13, 2023
a763e80
Merge pull request dlang/dmd!14875 from ibuclaw/merge_stable
dlang-bot Feb 13, 2023
29ec7be
Implement named args resolution
dkorpel Oct 14, 2022
398b71f
Pass names along with arguments
dkorpel Jan 19, 2023
230e99a
Don't reorder arguments too soon
dkorpel Jan 21, 2023
1a6c8ce
Add named arguments to `new class`
dkorpel Jan 25, 2023
d84aaee
Improve `resolveNamedArgs` signature
dkorpel Jan 26, 2023
c1858a0
Implement named arguments for `new` expressions
dkorpel Jan 26, 2023
a0aa968
Fix named arguments with `opCall`
dkorpel Feb 3, 2023
473bc10
print named arguments in error messages
dkorpel Feb 3, 2023
55b3c95
Handle named arguments in template deduction
dkorpel Feb 3, 2023
bdd1af5
Address Walter's review
dkorpel Feb 13, 2023
e3871fe
Add test for unknown named argument
dkorpel Feb 13, 2023
d8983de
Merge pull request dlang/dmd!14575 from dkorpel/named-arg-resolve
dlang-bot Feb 13, 2023
efdbd89
Revert "reapply fix Issue 23479 - ImportC recognizes .i and .c files,…
WalterBright Feb 13, 2023
7eb95d0
reboot separate out mangleType() (dlang/dmd!14862)
WalterBright Feb 14, 2023
ef1cb2e
Remove old dead code from parse.d
dkorpel Feb 14, 2023
658b40f
[refactor] Expression: change parens type from ubyte to bool
ibuclaw Feb 14, 2023
0e28d59
Revert "deprecate Object.factory"
dkorpel Feb 12, 2023
dbbffcd
Allow default arguments in the middle (dlang/dmd!14879)
dkorpel Feb 15, 2023
03b39c5
Deprecate alias this for classes v2 (dlang/dmd!14812)
RazvanN7 Feb 15, 2023
6a5c037
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Feb 16, 2023
44a5432
Merge pull request dlang/dmd!14887 from dlang/merge_stable
dlang-bot Feb 16, 2023
9aae445
Fix inconsistent names and arguments arrays
dkorpel Feb 14, 2023
29e7ad7
Deduplicate return parameter destination logic (dlang/dmd!14885)
dkorpel Feb 17, 2023
34faf88
Fix Issue 23669 - [DIP1000] Compound assignment to length of slice me…
ntrel Feb 17, 2023
82d86a4
Move incorrectly places runnable tests
dkorpel Feb 17, 2023
91af495
Fix 22916 - copy of ref return still treated as scope variable (dlang…
dkorpel Feb 20, 2023
cb64bc5
fix Issue 23717 - runnable/bitfields.c:192:5: error: unknown type nam…
WalterBright Feb 20, 2023
6e2bc33
ImportC: smoke test all C Standard .h files (dlang/dmd!14810)
WalterBright Feb 21, 2023
2197735
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Feb 21, 2023
725f264
fix Issue 23711 - compilable/testcstuff1.c:63:1: error: invalid use o…
WalterBright Feb 20, 2023
2d952a9
Merge pull request dlang/dmd!14904 from ibuclaw/merge_stable
dlang-bot Feb 22, 2023
283deba
add core.factory (dlang/dmd!14888)
WalterBright Feb 22, 2023
fc51f61
Revert "fix Issue 23558 - add __traits(getModuleClasses [, module nam…
dkorpel Feb 22, 2023
57f4df2
Deprecate `-preview=dip25` switch (dlang/dmd!14891)
dkorpel Feb 22, 2023
f787928
Fix 23676 - Static foreach hangs compilation for some time (dlang/dmd…
dkorpel Feb 22, 2023
07ece66
Tweak semicolon expected to close `alias` declaration error
ntrel Feb 19, 2023
79de6ee
fix Issue 16098 - align(N) not respected for stack variables if N > p…
WalterBright Feb 25, 2023
5a3a341
Strip trailing whitespace in `Outbuffer.writenl`
dkorpel Feb 25, 2023
53c8f9b
fix Issue 23710 - [REG master] Reachable code inside an 'if (false)' …
WalterBright Feb 26, 2023
e67d814
add errorsink.d, an abstract interface to error messages (dlang/dmd!1…
WalterBright Feb 26, 2023
ee13bcb
recognize if(__ctfe) blocks (dlang/dmd!14913)
WalterBright Feb 27, 2023
ece94a0
lexer.d: revise unittests to use ErrorSinks
WalterBright Feb 27, 2023
aef3785
tokens.d: use buffer properly
WalterBright Feb 27, 2023
dee70f2
parseModulePatternDepth: replace pointer with array
WalterBright Feb 27, 2023
6f14fd1
lexer.d: remove errors and globals imports
WalterBright Feb 27, 2023
8b3e196
Fix 11316: Infer storage class of parameters with function literals
Geod24 Feb 27, 2023
483a580
Deduplicate lexer unittest code
dkorpel Feb 27, 2023
7cf1dad
fix Issue 18472: betterC cannot use format at compile time
WalterBright Feb 28, 2023
ef079c0
Add 'override' on functions overriding interface functions
Geod24 Sep 4, 2022
404b79d
Remove unused core.demangler : parseType name argument
Geod24 Mar 1, 2023
e07ff60
Merge remote-tracking branch 'upstream/stable' into merge_stable
ibuclaw Mar 1, 2023
c796f43
Fix tests broken by divergent changes in stable
ibuclaw Mar 1, 2023
e86bce1
Merge remote-tracking branch 'upstream/master' into stable
ibuclaw Mar 1, 2023
bf29655
Fix Issue 22039 - ICE on infinite recursion in default parameter (dla…
RazvanN7 Mar 2, 2023
a8a2d00
Issue 23759 - [REG 2.103][FTBFS] Undefined symbols for architecture i…
ibuclaw Mar 4, 2023
544063b
fix Issue 23758 - [REG 2.103] Segfault accessing NewExp::argprefix fr…
ibuclaw Mar 3, 2023
d6995eb
Fix 23763: Correctly handle struct constants with 0 initializer
Geod24 Mar 8, 2023
32cf8f3
Fix Issue 23760 - Unknown error for type used with traits(getOverload…
RazvanN7 Mar 8, 2023
7f7a6ac
Fix Issue 16213 - CTFE internal error with static array $ as template…
RazvanN7 Mar 10, 2023
7c08ef4
Fix 23752 - ImportC: can't take address of dereferenced void pointer …
dkorpel Mar 10, 2023
b640f5d
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Mar 12, 2023
935fa13
Bump LDC version / frontend version / Phobos submodule
kinke Mar 12, 2023
e0bc077
Adapt to renamed VarDeclaration.aliasTuple (from aliassym)
kinke Mar 12, 2023
0262ec4
Adapt to removed Dsymbol.addLocalClass()
kinke Mar 12, 2023
d5cb758
Fix up genTypeInfo() fwd declaration
kinke Mar 12, 2023
8c69a49
[tiny fix to make ldc2-unittest compile]
kinke Mar 12, 2023
afa2afa
[little important merge fix]
kinke Mar 12, 2023
28ac391
Adopt new CLI option -verror-supplements=<num>
kinke Mar 12, 2023
0466088
Fix Issue 21288 & 10886 - incorrect this pointer (dlang/dmd!14969)
RazvanN7 Mar 13, 2023
3321630
Fix 23767 - ImportC: ternary with null constant has wrong pointer typ…
dkorpel Mar 13, 2023
2cb0628
Fix 23781: Segmentation fault on taking the address of a ref return a…
Geod24 Mar 15, 2023
c70428f
fix Issue 23778 - Code generator fails to handle __c_complex_real pro…
WalterBright Mar 14, 2023
3a5e778
Fix missing directives in testsuite
ibuclaw Mar 16, 2023
ce1ab85
dmd.gluelayer: Add toObjFile declaration for version IN_GCC
ibuclaw Mar 16, 2023
f95421d
dmd.target: Remove stackAlign from C++ headers
ibuclaw Mar 16, 2023
127c2a6
dmd/declaration.h: Align header with D definition
ibuclaw Mar 16, 2023
289b6a4
core.sys.freebsd.config: Update __FreeBSD_version with new values (dl…
ibuclaw Mar 17, 2023
cfef500
Fix 23792 - lexer warns about preprocessor inside token strings
dkorpel Mar 18, 2023
5fddf80
Fix Issue 23783 - -preview=nosharedaccess does not detect comparison …
RazvanN7 Mar 21, 2023
4393c2c
Fix Issue 23790 - Cannot use cas on member variable with -preview=nos…
RazvanN7 Mar 22, 2023
c6bc923
Fix Issue 20908 - -preview=nosharedaccess requires zero-initializion…
RazvanN7 Mar 22, 2023
43af919
Fix Issue 23799 - Link error with -betterC (dlang/dmd!15028)
RazvanN7 Mar 23, 2023
96a192e
Merge remote-tracking branch 'origin/master' into merge-2.103
kinke Mar 25, 2023
14de74b
Re-enable subtest in runnable/xtest46.d
kinke Mar 25, 2023
5c90eba
Fix lit-test codegen/const_struct_export.d
kinke Mar 25, 2023
145cf71
ImportC: Lower AssertExp to C assert
kinke Mar 25, 2023
5dd0092
Deprecate -dip25 (following DMD)
kinke Mar 25, 2023
b796588
Use new FuncDeclaration::skipCodegen()
kinke Mar 25, 2023
6f549b7
Disable some new dmd-testsuite ImportC tests requiring a preprocessor
kinke Mar 25, 2023
d01d3b6
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Mar 25, 2023
5f94289
Phobos: Merge latest upstream stable
kinke Mar 25, 2023
c2b947e
Adapt to newly-non-optional parameter in C++ frontend header
kinke Mar 26, 2023
b6695cd
Fix Issue 23816 - Typing invalid mnemonic in asm{} block segfaults (d…
RazvanN7 Apr 4, 2023
c0107c6
Deprecate invalid `#` tokens in `q{}` strings (dlang/dmd!15002)
dkorpel Apr 6, 2023
c9d596f
Fix Issue 22857 - Segfault for malformed static if in imported templa…
RazvanN7 Apr 13, 2023
7d8e299
Fix Issue 22739 - Segmentation fault in CppMangleVisitor.headOfType (…
RazvanN7 Apr 13, 2023
d40e279
Fix Issue 22765 - Assertion failure in CppMangleVisitor.template_args…
RazvanN7 Apr 13, 2023
b5d67d0
Fix Issue 20090 - Header generation wrongfully outputs constructor bo…
RazvanN7 Apr 19, 2023
e97f5a5
Merge remote-tracking branch 'origin/dmd-rewrite-stable' into merge-2…
kinke Apr 21, 2023
5a76cb9
Bump Phobos and frontend patch version
kinke Apr 21, 2023
9fc6ef0
Slightly adapt new fail_compilation/fail23816.d for LDC
kinke Apr 21, 2023
422555a
Merge remote-tracking branch 'origin/master' into merge-2.103
kinke Apr 21, 2023
9bc3e01
Fix Issue 22765 for windows (dlang/dmd!15118)
RazvanN7 Apr 25, 2023
fe46211
fix issue 23859 - [REG 2.103] Throwing while in a deep callstack caus…
rainers Apr 25, 2023
7b7eeb3
CI: Disable tests so Azure OMG targets pass (stable) (dlang/dmd!15132)
RazvanN7 Apr 26, 2023
2a761f1
Merge tag 'dmd-rewrite-v2.103.1' into merge-2.103
kinke May 4, 2023
8d98352
Disable _d_newclassT lowering for LDC for now
kinke May 4, 2023
7d766e7
Merge remote-tracking branch 'origin/master' into merge-2.103
kinke May 4, 2023
210e1a0
CMake: On Windows, resort to a response file for dc() to overcome max…
kinke May 6, 2023
8fe1c19
Merge remote-tracking branch 'origin/master' into merge-2.103
kinke May 7, 2023
9539044
ldmd: Remove unused variable
kinke May 7, 2023
80b215b
GH Actions Win32: Disable LTO for LDC itself
kinke May 7, 2023
1ca2e49
[add changelog entry]
kinke May 7, 2023
a60ba69
Bump bundled dlang tools, dub & reggae
kinke May 7, 2023
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: 3 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,11 @@ jobs:
os: windows-2022
arch: x86
bootstrap_cmake_flags: -DBUILD_LTO_LIBS=ON
# Undefined symbol errors with FullLTO; ThinLTO works.
extra_cmake_flags: >-
-DBUILD_LTO_LIBS=ON
"-DD_COMPILER_FLAGS=-O -flto=thin -defaultlib=phobos2-ldc-lto,druntime-ldc-lto"
-DEXTRA_CXXFLAGS=-flto=thin
# Undefined symbol errors with FullLTO; ThinLTO used to work, but apparently miscompiles a lexer.d:130 assertion since v1.33.
# "-DD_COMPILER_FLAGS=-O -flto=thin -defaultlib=phobos2-ldc-lto,druntime-ldc-lto"
# -DEXTRA_CXXFLAGS=-flto=thin
with_pgo: true

name: ${{ matrix.job_name }}
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.103.1](https://dlang.org/changelog/2.103.0.html), incl. new command-line option `-verror-supplements`. (#4345)

#### Platform support

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

# Version information
set(LDC_VERSION "1.32.0") # May be overridden by git hash tag
set(LDC_VERSION "1.33.0") # May be overridden by git hash tag
set(DMDFE_MAJOR_VERSION 2)
set(DMDFE_MINOR_VERSION 102)
set(DMDFE_PATCH_VERSION 2)
set(DMDFE_MINOR_VERSION 103)
set(DMDFE_PATCH_VERSION 1)

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

Expand Down
3 changes: 2 additions & 1 deletion dmd/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ Note that these groups have no strict meaning, the category assignments are a bi
| [dinifile.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/dinifile.d) | Parse settings from .ini file (`sc.ini` / `dmd.conf`) |
| [vsoptions.d](https://github.com/dlang/dmd/blob/master/compiler/src/dmd/vsoptions.d) | Detect the Microsoft Visual Studio toolchain for linking |
| [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 functionality |
| [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 |
| [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 |

Expand Down
1 change: 0 additions & 1 deletion dmd/aggregate.h
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,6 @@ class ClassDeclaration : public AggregateDeclaration
virtual int vtblOffset() const;
const char *kind() const override;

void addLocalClass(ClassDeclarations *) override final;
void addObjcSymbols(ClassDeclarations *classes, ClassDeclarations *categories) override final;

// Back end
Expand Down
2 changes: 1 addition & 1 deletion dmd/apply.d
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ private extern (C++) final class PostorderExpressionVisitor : StoppableVisitor
public:
StoppableVisitor v;

extern (D) this(StoppableVisitor v)
extern (D) this(StoppableVisitor v) scope
{
this.v = v;
}
Expand Down
2 changes: 1 addition & 1 deletion dmd/argtypes_sysv_x64.d
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ extern (C++) final class ToClassesVisitor : Visitor
int numEightbytes;
Class[4] result = Class.noClass;

this(size_t size)
this(size_t size) scope
{
assert(size > 0);
this.size = size;
Expand Down
4 changes: 2 additions & 2 deletions dmd/arrayop.d
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ Expression arrayOp(BinExp e, Scope* sc)
ObjectNotFound(idArrayOp); // fatal error
}

auto fd = resolveFuncCall(e.loc, sc, arrayOp, tiargs, null, args, FuncResolveFlag.standard);
auto fd = resolveFuncCall(e.loc, sc, arrayOp, tiargs, null, ArgumentList(args), FuncResolveFlag.standard);
if (!fd || fd.errors)
return ErrorExp.get();
return new CallExp(e.loc, new VarExp(e.loc, fd, false), args).expressionSemantic(sc);
Expand Down Expand Up @@ -194,7 +194,7 @@ private Expressions* buildArrayOp(Scope* sc, Expression e, Objects* tiargs)
Expressions* args;

public:
extern (D) this(Scope* sc, Objects* tiargs)
extern (D) this(Scope* sc, Objects* tiargs) scope
{
this.sc = sc;
this.tiargs = tiargs;
Expand Down
12 changes: 6 additions & 6 deletions dmd/attrib.d
Original file line number Diff line number Diff line change
Expand Up @@ -197,17 +197,12 @@ extern (C++) abstract class AttribDeclaration : Dsymbol

/****************************************
*/
override final void addLocalClass(ClassDeclarations* aclasses)
{
include(null).foreachDsymbol( s => s.addLocalClass(aclasses) );
}

override final void addObjcSymbols(ClassDeclarations* classes, ClassDeclarations* categories)
{
objc.addSymbols(this, classes, categories);
}

override final inout(AttribDeclaration) isAttribDeclaration() inout pure @safe
override inout(AttribDeclaration) isAttribDeclaration() inout pure @safe
{
return this;
}
Expand Down Expand Up @@ -1101,6 +1096,11 @@ extern (C++) final class StaticIfDeclaration : ConditionalDeclaration
return "static if";
}

override inout(StaticIfDeclaration) isStaticIfDeclaration() inout pure @safe
{
return this;
}

override void accept(Visitor v)
{
v.visit(this);
Expand Down
4 changes: 2 additions & 2 deletions dmd/attrib.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@ class AttribDeclaration : public Dsymbol
bool hasPointers() override final;
bool hasStaticCtorOrDtor() override final;
void checkCtorConstInit() override final;
void addLocalClass(ClassDeclarations *) override final;
AttribDeclaration *isAttribDeclaration() override final { return this; }
AttribDeclaration *isAttribDeclaration() override { return this; }

void accept(Visitor *v) override { v->visit(this); }
};
Expand Down Expand Up @@ -184,6 +183,7 @@ class StaticIfDeclaration final : public ConditionalDeclaration
void addMember(Scope *sc, ScopeDsymbol *sds) override;
void setScope(Scope *sc) override;
void importAll(Scope *sc) override;
StaticIfDeclaration *isStaticIfDeclaration() override { return this; }
const char *kind() const override;
void accept(Visitor *v) override { v->visit(this); }
};
Expand Down
2 changes: 1 addition & 1 deletion dmd/blockexit.d
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ int blockExit(Statement s, FuncDeclaration func, bool mustNotThrow)
bool mustNotThrow;
int result;

extern (D) this(FuncDeclaration func, bool mustNotThrow)
extern (D) this(FuncDeclaration func, bool mustNotThrow) scope
{
this.func = func;
this.mustNotThrow = mustNotThrow;
Expand Down
2 changes: 1 addition & 1 deletion dmd/canthrow.d
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ extern (C++) /* CT */ BE canThrow(Expression e, FuncDeclaration func, bool mustN
CT result;

public:
extern (D) this(FuncDeclaration func, bool mustNotThrow)
extern (D) this(FuncDeclaration func, bool mustNotThrow) scope
{
this.func = func;
this.mustNotThrow = mustNotThrow;
Expand Down
7 changes: 5 additions & 2 deletions dmd/cli.d
Original file line number Diff line number Diff line change
Expand Up @@ -774,6 +774,9 @@ dmd -cov -unittest myprog.d
$(DT gnu)$(DD 'file:line[:column]: message', conforming to the GNU standard used by gcc and clang.)
)`,
),
Option("verror-supplements=<num>",
"limit the number of supplemental messages for each error (0 means unlimited)"
),
Option("verrors=<num>",
"limit the number of error messages (0 means unlimited)"
),
Expand Down Expand Up @@ -855,7 +858,7 @@ dmd -cov -unittest myprog.d

/// Returns all available reverts
static immutable reverts = [
Feature("dip25", "useDIP25", "revert DIP25 changes https://github.com/dlang/DIPs/blob/master/DIPs/archive/DIP25.md"),
Feature("dip25", "useDIP25", "revert DIP25 changes https://github.com/dlang/DIPs/blob/master/DIPs/archive/DIP25.md", true, true),
Feature("dip1000", "useDIP1000",
"revert DIP1000 changes https://github.com/dlang/DIPs/blob/master/DIPs/other/DIP1000.md (Scoped Pointers)"),
Feature("intpromote", "fix16997", "revert integral promotions for unary + - ~ operators"),
Expand All @@ -865,7 +868,7 @@ dmd -cov -unittest myprog.d
/// Returns all available previews
static immutable previews = [
Feature("dip25", "useDIP25",
"implement https://github.com/dlang/DIPs/blob/master/DIPs/archive/DIP25.md (Sealed references)"),
"implement https://github.com/dlang/DIPs/blob/master/DIPs/archive/DIP25.md (Sealed references)", true, true),
Feature("dip1000", "useDIP1000",
"implement https://github.com/dlang/DIPs/blob/master/DIPs/other/DIP1000.md (Scoped Pointers)"),
Feature("dip1008", "ehnogc",
Expand Down
13 changes: 7 additions & 6 deletions dmd/clone.d
Original file line number Diff line number Diff line change
Expand Up @@ -113,11 +113,11 @@ FuncDeclaration hasIdentityOpAssign(AggregateDeclaration ad, Scope* sc)
sc.minst = null;

a[0] = er;
auto f = resolveFuncCall(ad.loc, sc, assign, null, ad.type, &a, FuncResolveFlag.quiet);
auto f = resolveFuncCall(ad.loc, sc, assign, null, ad.type, ArgumentList(&a), FuncResolveFlag.quiet);
if (!f)
{
a[0] = el;
f = resolveFuncCall(ad.loc, sc, assign, null, ad.type, &a, FuncResolveFlag.quiet);
f = resolveFuncCall(ad.loc, sc, assign, null, ad.type, ArgumentList(&a), FuncResolveFlag.quiet);
}

sc = sc.pop();
Expand Down Expand Up @@ -478,7 +478,7 @@ private FuncDeclaration hasIdentityOpEquals(AggregateDeclaration ad, Scope* sc)
{
a[0] = e;
a[0].type = tthis;
return resolveFuncCall(ad.loc, sc, eq, null, tthis, &a, FuncResolveFlag.quiet);
return resolveFuncCall(ad.loc, sc, eq, null, tthis, ArgumentList(&a), FuncResolveFlag.quiet);
}

f = rfc(er);
Expand Down Expand Up @@ -1065,7 +1065,7 @@ private DtorDeclaration buildWindowsCppDtor(AggregateDeclaration ad, DtorDeclara
{
auto cldec = ad.isClassDeclaration();
if (!cldec || cldec.cppDtorVtblIndex == -1) // scalar deleting dtor not built for non-virtual dtors
return dtor;
return dtor; // perhaps also do this if STC.scope_ is set

// generate deleting C++ destructor corresponding to:
// void* C::~C(int del)
Expand All @@ -1077,8 +1077,9 @@ private DtorDeclaration buildWindowsCppDtor(AggregateDeclaration ad, DtorDeclara
Parameter delparam = new Parameter(STC.undefined_, Type.tuns32, Identifier.idPool("del"), new IntegerExp(dtor.loc, 0, Type.tuns32), null);
Parameters* params = new Parameters;
params.push(delparam);
auto ftype = new TypeFunction(ParameterList(params), Type.tvoidptr, LINK.cpp, dtor.storage_class);
auto func = new DtorDeclaration(dtor.loc, dtor.loc, dtor.storage_class, Id.cppdtor);
const stc = dtor.storage_class & ~STC.scope_; // because we add the `return this;` later
auto ftype = new TypeFunction(ParameterList(params), Type.tvoidptr, LINK.cpp, stc);
auto func = new DtorDeclaration(dtor.loc, dtor.loc, stc, Id.cppdtor);
func.type = ftype;

// Always generate the function with body, because it is not exported from DLLs.
Expand Down
20 changes: 19 additions & 1 deletion dmd/common/outbuffer.d
Original file line number Diff line number Diff line change
Expand Up @@ -338,9 +338,12 @@ struct OutBuffer
offset += len;
}

/// write newline
/// strip trailing tabs or spaces, write newline
extern (C++) void writenl() pure nothrow @safe
{
while (offset > 0 && (data[offset - 1] == ' ' || data[offset - 1] == '\t'))
offset--;

version (Windows)
{
writeword(0x0A0D); // newline is CR,LF on Microsoft OS's
Expand Down Expand Up @@ -919,3 +922,18 @@ unittest
buf.setsize(4);
assert(buf.length == 4);
}

unittest
{
OutBuffer buf;

buf.writenl();
buf.writestring("abc \t ");
buf.writenl(); // strips trailing whitespace
buf.writenl(); // doesn't strip previous newline

version(Windows)
assert(buf[] == "\r\nabc\r\n\r\n");
else
assert(buf[] == "\nabc\n\n");
}
28 changes: 13 additions & 15 deletions dmd/compiler.d
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

module dmd.compiler;

import core.stdc.string;

import dmd.astcodegen;
import dmd.astenums;
import dmd.arraytypes;
Expand Down Expand Up @@ -142,7 +144,7 @@ extern (C++) struct Compiler
*/
extern(C++) static bool onImport(Module m)
{
if (includeImports)
if (includeImports && m.filetype == FileType.d)
{
if (includeImportedModuleCheck(ModuleComponentRange(
m.md ? m.md.packages : [], m.ident, m.isPackageFile)))
Expand Down Expand Up @@ -305,7 +307,7 @@ private void createMatchNodes()
{
foreach (modulePattern; includeModulePatterns)
{
auto depth = parseModulePatternDepth(modulePattern);
auto depth = parseModulePatternDepth(modulePattern[0 .. strlen(modulePattern)]);
auto entryIndex = findSortedIndexToAddForDepth(depth);
matchNodes.split(entryIndex, depth + 1);
parseModulePattern(modulePattern, &matchNodes[entryIndex], depth);
Expand Down Expand Up @@ -343,24 +345,20 @@ private void createMatchNodes()
* Returns:
* The component depth of the given module pattern.
*/
private ushort parseModulePatternDepth(const(char)* modulePattern)
pure @safe
private ushort parseModulePatternDepth(const char[] modulePattern)
{
if (modulePattern[0] == '-')
modulePattern++;
const length = modulePattern.length;
size_t i = (length && modulePattern[0] == '-'); // skip past leading '-'

// handle special case
if (modulePattern[0] == '.' && modulePattern[1] == '\0')
if (i + 1 == length && modulePattern[i] == '.')
return 0;

ushort depth = 1;
for (;; modulePattern++)
{
auto c = *modulePattern;
if (c == '.')
depth++;
if (c == '\0')
return depth;
}
int depth = 1;
foreach (c; modulePattern[i .. length])
depth += c == '.';
return cast(ushort)depth;
}
unittest
{
Expand Down
3 changes: 0 additions & 3 deletions dmd/cond.d
Original file line number Diff line number Diff line change
Expand Up @@ -935,9 +935,6 @@ extern (C++) final class StaticIfCondition : Condition
import dmd.staticcond;
bool errors;

if (!exp)
return errorReturn();

bool result = evalStaticCondition(sc, exp, exp, errors);

// Prevent repeated condition evaluation.
Expand Down
16 changes: 2 additions & 14 deletions dmd/constfold.d
Original file line number Diff line number Diff line change
Expand Up @@ -858,20 +858,8 @@ UnionExp Identity(EXP op, const ref Loc loc, Type type, Expression e1, Expressio
}
else
{
if (e1.type.isreal())
{
cmp = CTFloat.isIdentical(e1.toReal(), e2.toReal());
}
else if (e1.type.isimaginary())
{
cmp = RealIdentical(e1.toImaginary(), e2.toImaginary());
}
else if (e1.type.iscomplex())
{
complex_t v1 = e1.toComplex();
complex_t v2 = e2.toComplex();
cmp = RealIdentical(creall(v1), creall(v2)) && RealIdentical(cimagl(v1), cimagl(v1));
}
if (e1.type.isfloating())
cmp = e1.isIdentical(e2);
else
{
ue = Equal((op == EXP.identity) ? EXP.equal : EXP.notEqual, loc, type, e1, e2);
Expand Down
Loading