swift-ci
753b917274
Merge remote-tracking branch 'origin/main' into rebranch
2024-09-25 05:36:07 -07:00
Slava Pestov
bfc4f956fd
Merge pull request #76662 from slavapestov/fine-grained-timers-flag
...
Add -fine-grained-timers flag
2024-09-25 08:26:08 -04:00
swift-ci
a0d7a9e5b8
Merge remote-tracking branch 'origin/main' into rebranch
2024-09-24 19:19:27 -07:00
Rintaro Ishizaki
c57025af67
Avoid #include AST headers in Basic headers
...
Resolve a layering violation. `DiagnosticBehavior` was used in
`LangOptions`. Introduce a dedicated 'enum' for the possible values.
2024-09-24 15:18:26 -07:00
swift-ci
5b6002caeb
Merge remote-tracking branch 'origin/main' into rebranch
2024-09-24 01:55:37 -07:00
Allan Shortlidge
0fb36a5f39
AST: Make $SpecializeAttributeWithAvailability a baseline feature.
...
It has been available since at least Swift 5.8.
2024-09-23 21:48:09 -07:00
Slava Pestov
c77fae3a2d
Basic: Add -fine-grained-timers flag
...
By default, -stats-output-dir does not collect per-request timers and
counters, because of overhead.
2024-09-23 18:04:25 -04:00
swift-ci
810501b86a
Merge remote-tracking branch 'origin/main' into rebranch
2024-09-23 10:15:55 -07:00
Hiroshi Yamauchi
34def0ea27
Merge pull request #76589 from hjyamauchi/issue74866-3
...
Ensure that bridged types are indirectly returned on Windows ARM64
2024-09-23 10:00:31 -07:00
Konrad `ktoso` Malawski
d89347bed0
Merge branch 'main' into wip-experimental-isolated-deinit
2024-09-20 18:34:45 +09:00
Hiroshi Yamauchi
dedfb9e0ab
Ensure that bridged types are indirectly returned on Windows ARM64
...
On Windows ARM64, how a struct value type is returned is sensitive to
conditions including whether a user-defined constructor exists,
etc. See
https://learn.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=msvc-170#return-values
That caused a calling convention mismatch between the
non-USED_IN_CPP_SOURCE (Swift) side and the USE_IN_CPP_SOURCE (C++)
side and a crash.
Following https://github.com/swiftlang/swift/pull/76433 add
constructors to several bridged C++ struct/class types so that the
calling convention matches.
This is a partial fix for https://github.com/swiftlang/swift/issues/74866
2024-09-19 16:00:15 -07:00
swift-ci
9bd7daddb9
Merge remote-tracking branch 'origin/main' into rebranch
2024-09-19 15:14:52 -07:00
Sima Nerush
7e5a57a07a
Guard the changes behind an experimental feature flag.
2024-09-19 10:09:56 -07:00
swift-ci
df338c19a8
Merge remote-tracking branch 'origin/main' into rebranch
2024-09-19 09:34:45 -07:00
Gábor Horváth
4d01253674
Merge pull request #76429 from swiftlang/gaborh/safe-cxx-interop-mode
...
[cxx-interop] Introduce a safe C++ interop mode
2024-09-19 17:25:28 +01:00
Michael Gottesman
fb281331b3
Merge pull request #76558 from gottesmm/pr-39b63781333d46b16f086a7c192efc67b26255db
...
[concurrency] Behind the flag UnspecifiedMeansMainActorIsolated, try inferring by default main actor isolation instead of nonisolated for unspecified.
2024-09-19 09:18:33 -07:00
Gabor Horvath
929c0ca7d8
[cxx-interop] Introduce a safe C++ interop mode
...
In this mode all C++ types are imported as unsafe by default. Users
explicitly marking types are escapable or not escapable can make them
imported as safe. In the future, we also want to import unannotated
functions as unsafe and add more logic to infer types that are actually
safe, like agregates of escapable types.
2024-09-19 12:34:07 +01:00
Michael Gottesman
3843899c19
[concurrency] Behind the flag UnspecifiedMeansMainActorIsolated, try inferring by default main actor isolation instead of nonisolated for unspecified.
...
Just to play with.
2024-09-18 13:23:23 -07:00
swift-ci
6964118e7e
Merge remote-tracking branch 'origin/main' into rebranch
2024-09-18 13:17:04 -07:00
Doug Gregor
6f88c228df
Maintain a buffer ID -> source file(s) mapping in the source manager
...
Now that every source file has a buffer ID, introduce the reverse mapping
so clients can find the source file(s) in their module that reference
that buffer ID.
2024-09-17 14:01:58 -07:00
Konrad `ktoso` Malawski
7d1ce789ad
Revert "Revert "Isolated synchronous deinit""
2024-09-17 17:35:38 +09:00
Ben Barham
a7b50f357f
Merge remote-tracking branch 'origin/main' into manual-main-merge
...
Conflicts:
- `lib/Driver/ToolChains.cpp` conflicting with the `addAllArgs` rename
for multiple options
2024-09-16 13:53:18 -07:00
Egor Zhdan
586ac0953c
Merge pull request #76408 from swiftlang/egorzhdan/scs-owned-string
...
[cxx-interop][SwiftCompilerSources] Do not use `SWIFT_IMPORT_UNSAFE` with `BridgedOwnedString`
2024-09-16 20:00:20 +01:00
Meghana Gupta
68bfc0d3b4
Make NonEscapableTypes as a suppressible experimental feature
2024-09-13 13:13:17 -07:00
Rintaro Ishizaki
107027920e
Merge pull request #76436 from rintaro/basic-remove-llvmjson
...
[Basic] Remove llvm::JSON C bridging
2024-09-12 19:40:27 -07:00
Kavon Farvardin
ba0aac3f39
Merge pull request #76093 from kavon/coldsplit-2
...
ColdBlockInfo: overhaul analysis pass
2024-09-12 16:06:07 -07:00
Rintaro Ishizaki
d7303d141c
[Basic] Remove llvm::JSON C bridging
...
This was used for plugin message serialization, but it's migrated to
SwiftCompilerPluginMessageHandling JSON.
2024-09-12 12:04:28 -07:00
Egor Zhdan
35263ef9d6
[cxx-interop][SwiftCompilerSources] Do not use SWIFT_IMPORT_UNSAFE with BridgedOwnedString
...
`SWIFT_IMPORT_UNSAFE` is an escape hatch that can be used to make the Swift compiler ignore its usual safety heuristics for C++ types.
`BridgedOwnedString` fits into the definition of a self-contained C++ type in Swift: it manages the lifetimes of its own fields.
This removes the usages of `SWIFT_IMPORT_UNSAFE` for C++ functions that return `BridgedOwnedString`, and annotates `BridgedOwnedString` as a self-contained type.
2024-09-11 19:58:14 +01:00
Dmitrii Galimzianov
a8b71ea97f
Add -print-diagnostic-groups flag
...
This change adds the `-print-diagnostic-groups` flag as described by SE-0443.
2024-09-11 13:34:42 +02:00
Doug Gregor
08e339b7b4
Merge pull request #74466 from DmT021/wp/no-warning-as-error
...
[Diagnostics] Add -no-warning-as-error to except a specific warning from being treated as an error
2024-09-09 09:35:05 -07:00
Dmitrii Galimzianov
070c77ebcf
fixup! [Diagnostics] Add -[no-]warning-as-error flags for precise control over warning behavior
2024-09-07 07:55:27 +02:00
Dmitrii Galimzianov
28883b6654
[Diagnostics] Add -[no-]warning-as-error flags for precise control over warning behavior
...
This commit adds new compiler options -no-warning-as-error/-warning-as-error which allows users to specify behavior for exact warnings and warning groups.
2024-09-07 01:14:43 +02:00
swift-ci
da55e84c74
Merge remote-tracking branch 'origin/main' into rebranch
2024-09-05 15:35:33 -07:00
Alejandro Alonso
451e7259a1
Add ValueGenerics experimental feature
2024-09-04 15:13:49 -07:00
swift-ci
756fe355fa
Merge remote-tracking branch 'origin/main' into rebranch
2024-09-03 22:34:34 -07:00
Alex Hoppen
c5aa49ba64
Revert "Isolated synchronous deinit"
2024-09-03 18:11:26 -07:00
Kavon Farvardin
7203a4fa73
ColdBlockInfo: overhaul analysis pass
...
The old analysis pass doesn't take into account profile data, nor does
it consider post-dominance. It primarily dealt with _fastPath/_slowPath.
A block that is dominated by a cold block is itself cold. That's true
whether it's forwards or backwards dominance.
We can also consider a call to any `Never` returning function as a
cold-exit, though the block(s) leading up to that call may be executed
frequently because of concurrency. For now, I'm ignoring the concurrency
case and assuming it's cold. To make use of this "no return" prediction,
use the `-enable-noreturn-prediction` flag, which is currently off by
default.
2024-09-03 15:41:10 -07:00
swift-ci
dd7533d4e7
Merge remote-tracking branch 'origin/main' into rebranch
2024-09-03 09:33:55 -07:00
Mykola Pokhylets
e0ad7bde82
Merge branch 'main' into mpokhylets/isolated-deinit
...
# Conflicts:
# include/swift/Basic/Features.def
# lib/AST/ASTPrinter.cpp
# lib/AST/FeatureSet.cpp
2024-08-29 11:28:43 +02:00
swift-ci
a5d12a6c87
Merge remote-tracking branch 'origin/main' into rebranch
2024-08-25 03:44:58 -07:00
Doug Gregor
225e562dda
Requestify the #if computation using SwiftIfConfig
...
We're not caching this now, but it lets us dodge annoying layering
issues because ASTGen (where this is available) sits on top of the C++
parser, which needs to call it.
2024-08-24 21:31:41 -07:00
swift-ci
d1f642c28f
Merge remote-tracking branch 'origin/main' into rebranch
2024-08-24 19:34:29 -07:00
Michael Gottesman
f075e4eb28
Change DiagnosticBehavior into a struct enum so we can put methods on it.
...
The reason why I am making this change is because I want to put a merge
operation on DiagnosticBehavior. This merge operation allows for
DiagnosticBehavior to work like a lattice. When one merges, one moves
potentially from fatal, error to things like note, ignore.
2024-08-22 15:59:04 -04:00
swift-ci
5a20ae5fce
Merge remote-tracking branch 'origin/main' into rebranch
2024-08-20 06:35:14 -07:00
Doug Gregor
571859f294
Move "unsafe" diagnostics from errors to warnings
...
Warnings fit better with the approach we're going for, and can be
escalated to errors by `-warnings-as-errors` for clients that need it.
2024-08-19 14:34:00 -07:00
Doug Gregor
cccf6c1114
Introduce @unsafe and the ability to prohibit use of unsafe declarations
...
Allow any declaration to be marked with `@unsafe`, meaning that it
involves unsafe code. This also extends to C declarations marked with
the `swift_attr("unsafe")` attribute.
Under a separate experimental flag (`DisallowUnsafe`), diagnose any
attempt to use an `@unsafe` declaration or any unsafe language feature
(such as `unowned(unsafe)`, `@unchecked Sendable`). This begins to
define a "safe" mode in Swift that prohibits memory-unsafe constructs.
2024-08-19 14:33:07 -07:00
swift-ci
c19582ba53
Merge remote-tracking branch 'origin/main' into rebranch
2024-08-16 21:34:46 -07:00
Mykola Pokhylets
50b1313175
Merge branch 'main' into mpokhylets/isolated-deinit
...
# Conflicts:
# lib/SILGen/SILGenDistributed.cpp
# lib/Sema/TypeCheckConcurrency.cpp
2024-08-15 16:58:43 +02:00
Alex Hoppen
577727ad55
Remove DiagnosticsEditorMode
...
Migrate the last diagnostic to be independent of `DiagnosticEditorMode` and remove that option.
rdar://133111163
2024-08-14 11:24:31 -07:00
Ben Barham
467e528200
Merge remote-tracking branch 'origin/main' into manual-rebranch-merge
...
Conflicts:
- `lib/Serialization/ModuleFormat.h` bumped version to account for
differences between main and rebranch.
2024-08-09 15:22:39 -07:00