Commit Graph

185384 Commits

Author SHA1 Message Date
eeckstein
f6124c362d Merge pull request #82679 from eeckstein/fix-mowte
MoveOnlyWrappedTypeEliminator: handle `end_cow_mutation_addr` instruction
2025-07-01 17:48:05 +02:00
Alastair Houghton
26878c98de [Concurrency] Add functions to allow testing of external executors.
Added a couple of functions to allow for the testing of executors that
aren't implemented inside the concurrency runtime itself.

rdar://154195821
2025-07-01 16:48:03 +01:00
Doug Gregor
f736677022 Switch to the appropriate C calling convention for pthread_main_np 2025-07-01 08:15:54 -07:00
Saleem Abdulrasool
87b0ca4cc7 Merge pull request #82577 from compnerd/linkage
Runtimes: adjust the linking to `_Concurrency`
2025-07-01 08:08:43 -07:00
Max Desiatov
ca3d6bcdbf Restrict Wasm tests to wasip1 in lit.local.cfg 2025-07-01 15:40:05 +01:00
Arnold Schwaighofer
b30bd40b83 Add code to create llvm::RemarkStreamer objects for all the LLVMModules in WMO mode
rdar://154403078
2025-07-01 07:19:33 -07:00
Gábor Horváth
bd3c3024af Merge pull request #82625 from swiftlang/gaborh/nonescapable-noncopyable
[cxx-interop] Add test for move-only non-escapable types
2025-07-01 15:36:00 +02:00
eeckstein
2113752b00 Merge pull request #82678 from eeckstein/fix-bridged-debug-var
SILBridging: remove OptionalBridgedSILDebugVariable
2025-07-01 15:26:48 +02:00
Hamish Knight
dc880588ff Merge pull request #82619 from hamishknight/fuzzy
[test] Add some more known crashers
2025-07-01 13:24:42 +01:00
Hamish Knight
2d929fd37d [test] Add test case for fixed issue 2025-07-01 13:06:29 +01:00
Gábor Horváth
11cb7e5800 Merge pull request #82333 from swiftlang/gaborh/default-arg-duplicate-symbols 2025-07-01 13:50:00 +02:00
eeckstein
a3c49524a8 Merge pull request #82599 from valeriyvan/WarningDiffingMyers
Fix warning in benchmark: generic parameter 'C' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode
2025-07-01 13:44:36 +02:00
Max Desiatov
db33d703bd Use %module-target-triple in concurrency-simple.swift 2025-07-01 12:16:31 +01:00
Max Desiatov
48ea5f1eec Disable one more ARM-specific IR/SIL test on WASI 2025-07-01 11:43:43 +01:00
Max Desiatov
7a117df7b2 For now disable previously ARM-specific tests on WASI
The overall change should be only localized to executable tests for now.
2025-07-01 11:43:43 +01:00
Max Desiatov
3505257161 Update for more tests 2025-07-01 11:43:43 +01:00
Max Desiatov
27e5d5c551 Fix/xfail/disable remaining tests for embedded Wasm 2025-07-01 11:43:43 +01:00
Max Desiatov
b10da622e9 Add OS=wasi as supported to embedded/lit.local.cfg
There's a predefined list of supported platforms that WASI should be added now that it has an official Embedded Swift SDK.
2025-07-01 11:43:43 +01:00
Max Desiatov
ce162890cf Use OS=wasi in test/embedded/hello.swift 2025-07-01 11:43:43 +01:00
Max Desiatov
1efd278f24 Enable more tests for Embedded Wasm 2025-07-01 11:43:43 +01:00
Alastair Houghton
76f235154d Merge pull request #82624 from al45tair/eng/PR-154282813
[Backtracing][Linux] Fix crash handler for musl.
2025-07-01 11:17:28 +01:00
Erik Eckstein
50b50af70f MoveOnlyWrappedTypeEliminator: handle EndCOWMutationAddr
fixes a compiler crash
rdar://154416511
2025-07-01 11:40:26 +02:00
Steven Wu
da3d9f39bd Merge pull request #82608 from cachemeifyoucan/eng/PR-153851818 2025-07-01 01:49:43 -07:00
Erik Eckstein
1343dc562d SILBridging: remove OptionalBridgedSILDebugVariable
This didn't work because the BridgedSILDebugVariable destructor was called even in the "none" case.

Fixes a compiler crash
rdar://154689481
2025-07-01 10:31:30 +02:00
Erik Eckstein
606f7693d4 MandatoryPerformanceOptimizations: don't de-virtualize a generic class method call to specialized method
This results in wrong argument/return calling conventions.
First, the method call must be specialized. Only then the call can be de-virtualized.
Usually, it's done in this order anyway, because the `class_method` instruction is located before the `apply`.
But when inlining functions, the order (in the worklist) can be the other way round.

Fixes a compiler crash.
rdar://154631438
2025-07-01 09:44:47 +02:00
Pavel Yaskevich
fc442893ea Merge pull request #82652 from xedin/rdar-153461854-serialization-fix
[Serialization] A temporary fix for `LocatableType`
2025-07-01 00:35:57 -07:00
Pavel Yaskevich
529a9f80a4 Merge pull request #82645 from xedin/rdar-153646123
[Concurrency] Forego Sendable checking if conversion doesn't change t…
2025-07-01 00:20:38 -07:00
Pavel Yaskevich
30f0fa8d75 [Concurrency] SE-0463: Sendable inference on sync and async variants of imported APIs should match
This is a follow-up to https://github.com/swiftlang/swift/pull/82085
which made it so async variant doesn't get `@Sendable` inferred because
the proposal specified that inference should happen only on completion
handler parameter type of a synchronous variant of an imported API.

This runs into implementation issues related to thunking in some
cases were async convention expects the type of a completion handler
to match exactly for both variants of the imported API.

Resolves: rdar://154695053
2025-07-01 00:05:20 -07:00
Allan Shortlidge
7651db7902 Merge pull request #82660 from tshortli/catalyst-silgen-availability-tests
Tests: Improve SILGen tests for `if #available()` on macCatalyst
2025-06-30 22:14:33 -07:00
Doug Gregor
78464f8592 [SE-0466] Infer isolated deinit in main-actor-by-default mode
Now that main-actor-isolated deinit can be back-deployed, enable
inference of isolated deinit within main-actor-by-default mode.

Implements rdar://154729369.
2025-06-30 22:03:07 -07:00
Erik Eckstein
18499e2bbd Optimizer: revert to legacy alloc-box-to-stack optimization
The new implementation causes some problems
rdar://154686063, rdar://154713388
2025-07-01 07:02:36 +02:00
Doug Gregor
642214d6cb Update test 2025-06-30 20:51:18 -07:00
Konrad 'ktoso' Malawski
9d16901b59 changelog: include isolated deinit in changelog 2025-07-01 12:26:35 +09:00
Konrad 'ktoso' Malawski
61e179df6c changelog: nonisolated async funcs may run on caller isolation now 2025-07-01 12:21:37 +09:00
Konrad 'ktoso' Malawski
a27cf87737 changelog: task priority escalation handlers 2025-07-01 12:16:17 +09:00
Konrad 'ktoso' Malawski
9f5d8a60de [changelog] add task names to changelog 2025-07-01 12:13:09 +09:00
Konrad 'ktoso' Malawski
81a06ccb2d [changelog] add Task.immediate SE-0472 to changelog 2025-07-01 12:08:34 +09:00
Konrad `ktoso` Malawski
441f9f8ad3 Merge pull request #82611 from ktoso/wip-cleanup-mergeconflict-potential 2025-07-01 12:08:25 +09:00
Doug Gregor
195c7b03c1 Merge pull request #82651 from DougGregor/fixed-synthesized-init-82168
Add already-fixed test case from #82168
2025-06-30 19:15:04 -07:00
Luke Howard
451f309935 build with 64-bit time_t on 32-bit platforms (#82595)
It is good practice to build with 64-bit `time_t`/timeval on 32-bit
platforms to avoid the Y2038 issue. This is the default when building on
Yocto for armv7, for example. Unfortunately `suseconds_t` is not an
alias to a type of the correct width (unlike time_t).

Question: on release/6.1, tv_usec is assumed to be `Int32`, but on main
it is `Int`, but appears to be the same commit hash?

#### git blame main stdlib/public/Platform/Platform.swift

```
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 350) @available(SwiftStdlib 5.7, *)
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 351) extension timeval {
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 352)   @available(SwiftStdlib 5.7, *)
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 353)   public init(_ duration: Duration) {
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 354)     let comps = duration.components
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 355)   // Linux platforms define timeval as Int/Int
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 356)   self.init(tv_sec: Int(comps.seconds),
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 357)               tv_usec: Int(comps.attoseconds / 1_000_000_000_000))
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 358)   }
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 359) }
```

#### git blame release/6.1 stdlib/public/Platform/Platform.swift

```
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 455) @available(SwiftStdlib 5.7, *)
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 456) extension timeval {
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 457)   @available(SwiftStdlib 5.7, *)
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 458)   public init(_ duration: Duration) {
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 459)     let comps = duration.components
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 460) #if os(Linux)
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 461)   // Linux platforms define timeval as Int/Int
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 462)   self.init(tv_sec: Int(comps.seconds),
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 463)               tv_usec: Int(comps.attoseconds / 1_000_000_000_000))
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 464) #else
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 465)     // Darwin platforms define timeval as Int/Int32
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 466)     self.init(tv_sec: Int(comps.seconds),
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 467)               tv_usec: Int32(comps.attoseconds / 1_000_000_000_000))
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 468) #endif
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 469)   }
e675b310f8 (Philippe Hausler    2022-02-17 09:32:46 -0800 470) }
```
2025-06-30 18:19:32 -07:00
Doug Gregor
7789a0ce64 [SE-0371] Back-deploy support for main-actor-isolated deinit
When targeting a platform that predates the introduction of isolated
deinit, make a narrow exception that allows main-actor-isolated deinit
to work through a special, inlineable entrypoint that is
back-deployed. This implementation

  1. Calls into the real implementation when available, otherwise
  2. Checks if we're on the main thread, destroying immediately when
we are, otherwise
  3. Creates a new task on the main actor to handle destruction.

This implementation is less efficient than the implementation in the
runtime, but allows us to back-deploy this functionality as far back
as concurrency goes.

Fixes rdar://151029118.
2025-06-30 17:38:08 -07:00
Allan Shortlidge
767cf5dfc2 Tests: Improve SILGen tests for if #available() on macCatalyst. 2025-06-30 17:24:35 -07:00
Guillaume Lessard
5d4c445347 [stdlib] some span properties are more available 2025-06-30 17:13:35 -07:00
Pavel Yaskevich
bec4ebd126 Merge pull request #82574 from xedin/solver-perf-behind-a-flag
[ConstraintSystem] Implement disjunction favoring algorithm behind a flag
2025-06-30 16:27:01 -07:00
Stephen Canon
377c66b6e7 Replace some precondition with _precondition in the stdlib. (#82641) 2025-06-30 19:12:00 -04:00
Guillaume Lessard
f97961a86f [stdlib] fix _makeMutableAndUniqueUnchecked() 2025-06-30 16:05:00 -07:00
Augusto Noronha
0c20222aea Merge pull request #81700 from augusto2112/revert-debug-info-witness-table
Revert "Merge pull request #79171 from augusto2112/debug-info-witness…
2025-06-30 15:28:15 -07:00
Pavel Yaskevich
907606ef28 [Serialization] A temporary fix for LocatableType
Gracefully handle `LocatableType` types if they show up during
serialization. This is a temporary fix until we can remove
`TransitivelyConformsTo` constraint from the solver which is
the underlying cause of the issue (see https://github.com/swiftlang/swift/pull/82541).

Resolves: rdar://153461854
2025-06-30 14:53:36 -07:00
Doug Gregor
4586086b8e Add already-fixed test case from #82168 2025-06-30 14:24:47 -07:00
Saleem Abdulrasool
a654df7caa Merge pull request #82578 from compnerd/isolation
Runtimes: avoid ODR violations in _Concurrency
2025-06-30 14:07:21 -07:00