Commit Graph

21492 Commits

Author SHA1 Message Date
Alejandro Alonso
fcfbf068a5 Add a special file for mutex on unavailable platforms 2024-06-05 13:51:55 -07:00
Michael Gottesman
5db3b70c65 [concurrency] Update withUnsafe{,Throwing}Continuation to have a sending result.
rdar://129299180
2024-06-05 12:50:59 -07:00
Michael Gottesman
7e8daa80cd [concurrency] Mark the global _emptyDequeStorage as nonisolated(unsafe).
We just use it as a way to initialize values. We will always just read from it
and copy from it.
2024-06-05 12:03:57 -07:00
Alex Lorenz
743a501d1b comment cleanup 2024-06-05 10:53:15 -07:00
Tim Kientzle
40eb3c084d Expand the work from #73491 to support more MPE layouts. This also switches the
MPE layout code to exclusively use the new code.  The key observation: existing
reflection metadata seems to already provide enough information in all cases, so
we can abandon an earlier effort to add spare bitmask data.

Resolves rdar://129281368
2024-06-05 10:15:58 -07:00
Yuta Saito
3b1791a638 [Synchronization] Fix Wasm mutex build
This change fixes the following build error happening on Wasm:
```
error: referencing instance method '_wait(expected:)' on 'Atomic' requires the types '_MutexHandle.State' and 'UInt32' be equivalent
```
2024-06-05 17:15:43 +00:00
Alejandro Alonso
bc0e6ab392 Conditionalize Mutex.swift 2024-06-05 09:20:59 -07:00
Alejandro Alonso
643c2771e2 Merge pull request #71383 from Azoy/mutex
[stdlib] Implement Mutex in Synchronization
2024-06-04 18:38:50 -07:00
Alex Lorenz
273edcf2a2 build CxxStdlib for Android too 2024-06-04 15:46:39 -07:00
Konrad `ktoso` Malawski
4fc0f3ab61 Merge pull request #73634 from ktoso/wip-document-exexecutors-apidoc 2024-06-05 06:27:46 +09:00
Alejandro Alonso
676b8e7bae Update stdlib/public/core/DictionaryBuilder.swift
Co-authored-by: Karoy Lorentey <klorentey@apple.com>
2024-06-04 20:46:11 +00:00
Alejandro Alonso
551acb3d4b Guard for empty singleton in dictionary builder 2024-06-04 13:30:03 -07:00
Alex Lorenz
e9739d7787 remove additional glibc android check from cmake 2024-06-04 12:37:59 -07:00
Alex Lorenz
9c31f98f6f [cmake] fix android header name targets 2024-06-04 12:37:51 -07:00
Alex Lorenz
8b8c72acd8 [stdlib] add a _math module overlay for Android for deprecated constants 2024-06-04 12:37:43 -07:00
Alejandro Alonso
cb3fc4b451 Adopt sending and movesAsLike 2024-06-04 09:49:21 -07:00
Alejandro Alonso
6b29e779e4 Support visionOS for Mutex 2024-06-04 09:06:37 -07:00
Alejandro Alonso
66ec7abd54 Underscore some things, add explicit internal
Fix some compile issues
2024-06-04 09:06:37 -07:00
Alejandro Alonso
fbfb218d11 Update LinuxImpl.swift 2024-06-04 09:06:37 -07:00
Alejandro Alonso
3a115fc290 Properly handle the syscalls on Linux and do some spins
fix some stuff
2024-06-04 09:06:37 -07:00
Alejandro Alonso
9b389a3df5 Fix tests and toolchain build 2024-06-04 09:06:37 -07:00
Alejandro Alonso
e99268864c Use Builtin.addressOfRawLayout 2024-06-04 09:06:37 -07:00
Alejandro Alonso
6d6e518c38 It is WASI, not WASM 2024-06-04 09:06:37 -07:00
Alejandro Alonso
97072e5b79 Adopt transferring for Mutex init 2024-06-04 09:06:37 -07:00
Alejandro Alonso
ba1787c1d5 Move atomic sources into a folder 2024-06-04 09:06:37 -07:00
Alejandro Alonso
89748d4229 Actually implement the API now 2024-06-04 09:06:36 -07:00
Alejandro Alonso
92e6a989b2 Cache TID in TLS on Linux 2024-06-04 09:06:36 -07:00
Alejandro Alonso
5b7e3d8ca2 Add a WasmMutex 2024-06-04 09:06:36 -07:00
Alejandro Alonso
1146b41d14 Add the underscored unsafe locking primitives 2024-06-04 09:06:36 -07:00
Alejandro Alonso
882568ca4d Directly call gettid syscall instead of library function 2024-06-04 09:06:36 -07:00
Alejandro Alonso
1f206ec58e Attempt to release the lock and wake when we can't 2024-06-04 09:06:36 -07:00
Alejandro Alonso
2a60c88457 Implement Mutex in Synchronization 2024-06-04 09:06:34 -07:00
Konrad `ktoso` Malawski
89adc8293c [Docs] Minor rewording of Task docs, easier to read 2024-06-04 15:42:04 +09:00
Konrad `ktoso` Malawski
2182dce8b7 [Concurrency] Document custom executors in API docs a bit
Include review feedback and show how to customize a single actor by
passing an executor through initializer
2024-06-04 15:42:02 +09:00
Konrad `ktoso` Malawski
083fdaa0de Merge pull request #73998 from nickolas-pohilets/mpokhylets/fix-32-build 2024-06-04 13:49:19 +09:00
Konrad `ktoso` Malawski
228e42528e Merge pull request #74089 from ktoso/wip-tasklocal-copy-dont-add-runtime-method 2024-06-04 07:02:43 +09:00
Guillaume Lessard
dabd99d798 Revert "[stdlib] Mark some UnsafePointer APIs as transparent" 2024-06-03 09:40:37 -07:00
Konrad `ktoso` Malawski
14b8546392 [Concurrency] Don't add new task locals copy runtime func 2024-06-03 13:55:02 +09:00
Michael Gottesman
ce1dd43395 [sending] Change CheckedContinuation/AsyncThrowingStream.Continuation APIs to use sending parameters and results.
Specifically:

1. CheckedContinuation.resume now takes a sending parameter.
2. Async{Throwing,}Stream.yield takes a sending parameter.
3. withCheckedContinuation returns a transferring parameter.

Importantly due to the previous changes around mangling, this is a mangling
neutral change.

rdar://120420024
2024-06-01 23:25:16 -07:00
Alejandro Alonso
1ec03e133b Merge pull request #74017 from Azoy/pointer-transparent
[stdlib] Mark some UnsafePointer APIs as transparent
2024-05-31 12:59:05 -07:00
Saleem Abdulrasool
c3d825144c Merge pull request #74040 from STREGA/main
Revert remove cplusplus requirement on XAudio29
2024-05-31 14:33:20 -04:00
Konrad `ktoso` Malawski
0c44645832 [Concurrency] Implement defensive copying in task groups, rather than crashing (#73978) 2024-05-31 11:27:03 -07:00
Rintaro Ishizaki
5824d88362 Merge pull request #74032 from rintaro/stdlib-plugin-path
[stdlib] Use -plugin-path for building the standard library
2024-05-31 09:42:05 -07:00
Karl
7a57bd8ae4 [stdlib] Refactor Unicode normalization (#73590)
* [stdlib] Refactor Unicode normalization

* Tweak inlining
2024-05-31 08:22:37 -06:00
STREGA
d69790bde2 Revert remove cplusplus requirement on XAudio29 2024-05-30 22:48:07 -04:00
Rintaro Ishizaki
299167420a [stdlib] Use -plugin-path for building the standard library
`-external-plugin-path` requires `swift-plugin-server` exectuable, but
there was no dependency. Instead of adding the dependency, use
`-plugin-path` that doesn't require the plugin-server.
2024-05-30 14:02:12 -07:00
Mykola Pokhylets
987b641a7c Updated HeaderFooterLayout to correctly handle empty Header or Footer 2024-05-30 21:56:28 +02:00
Mykola Pokhylets
a891b8f0fb Move isDistributedRemoteActor outside #if 2024-05-30 21:55:58 +02:00
Alejandro Alonso
d5f67eb479 Mark some UnsafePointer APIs as transparent 2024-05-30 10:32:14 -07:00
Mike Ash
7427aa5f48 [Concurrency] Remove SWIFT_ENABLE_ASYNC_JOB_DISPATCH_INTEGRATION environment variable.
This option serves no purpose anymore and this dispatch integration should always be enabled.
2024-05-30 12:43:19 -04:00