Alejandro Alonso
e3a53abe13
Don't use aarch64 hint for arm targets
2024-06-10 09:23:21 -07:00
Alejandro Alonso
b1ceb9b947
Update MutexUnavailable.swift ( #74182 )
...
Fixes the availability syntax for minimal platforms.
Resolves: rdar://129345303
2024-06-06 12:46:28 -07:00
Alejandro Alonso
4f8181dde6
Merge pull request #74143 from Azoy/mutex-minimal-thing
...
[stdlib] Condition Mutex.swift on platform
2024-06-06 07:54:36 -07:00
Yuta Saito
da6f015e3c
Merge pull request #74171 from kateinoigakukun/yt/fix-mutex-wasm-test
...
[Synchronization] Fix wasm atomic intrinsic declarations
2024-06-06 16:58:32 +09:00
Alex Lorenz
bffb878476
Merge pull request #74160 from hyp/eng/fix-android-synchro
...
[android] Fix Synchronization Android build
2024-06-05 23:38:47 -07:00
Yuta Saito
2dbbbcf646
[Synchronization] Skip atomic operations in single-threaded mode on WebAssembly
...
Use of atomics instructions requires the support of threads proposal and
it's not widely supported yet. So we should enable actual atomic
operations only when targeting wasm32-uknown-wasip1-threads.
2024-06-06 04:18:13 +00:00
Yuta Saito
0536c9ac65
[Synchronization] Fix wasm atomic intrinsic declarations
...
Otherwise, isel will not be able to select the desired atomic
instructions.
2024-06-06 04:18:13 +00:00
Alex Lorenz
74d2a66a27
[androd] Fix Synchronization Android build
...
Add Android import for Mutex implementation
2024-06-05 16:58:05 -07:00
Alejandro Alonso
fcfbf068a5
Add a special file for mutex on unavailable platforms
2024-06-05 13:51:55 -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
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
Alejandro Alonso
3053c81259
Enforce that atomic representations are bitwisecopyable
2024-05-18 10:18:32 -07:00
Stephen Canon
a381589524
SE-0425 implementation ( #72139 )
2024-04-02 16:24:41 -04:00
Karoy Lorentey
b54c2b4d32
[Synchronization] Generalize U[M]BP’s AtomicRepresentable conformance
2024-03-18 11:03:49 -07:00
Karoy Lorentey
38001ae739
[stdlib] Apply @Azoy’s remaining review notes (thanks!)
2024-03-18 11:03:49 -07:00
Karoy Lorentey
d0b39ac8db
[stdlib] Unsafe[Mutable]Pointer: Add support for non-copyable Pointee types
...
[stdlib] Pull back @_aeic on pointer → integer conversions
[stdlib] UnsafeMutablePointer.allocate: Fix thinko
[stdlib] Disable support for noncopyable pointees on some pointer operations
We have to temporarily pull back support for noncopyable pointees for UnsafeMutablePointer.initialize(to:), .moveInitialize, .moveUpdate, as the builtins they’re calling are no longer accepting such types.
These will return following a builtin audit.
[stdlib] Remove workarounds for certain builtins not supporting noncopyable use
https://github.com/apple/swift/pull/71733 fixed this!
[stdlib] Update FIXME
[stdlib] UnsafePointer: Update Swift version numbers
[stdlib] UnsafePointer: Actually hide legacy ABI
[stdlib] Remove workaround for U[M]BP.withMemoryRebound
2024-03-18 11:03:49 -07:00
Kuba Mracek
48b8228acd
[embedded] Start building Synchronization in embedded Swift mode
2024-03-13 10:07:37 -07:00
Mishal Shah
af112c1591
Update the Swift version to 6.0 from 5.11
2024-02-19 17:47:16 -08:00
Eric Miotto
28e2f079b5
CMake: on Darwin be explicit about inclusion in the dyld shared cache ( #70856 )
...
This entails passing a linker flags to Apple linkers when the standard
library is not meant for inclusion in such cache.
For this to have effect on every library, propagate link flags when
building _Concurrency and Observation.
This is needed for Apple internal configurations.
Addresses rdar://120653968
2024-01-29 09:42:38 -08:00
Alejandro Alonso
d8604601d7
Rename AtomicValue to AtomicRepresentable
2024-01-03 13:27:47 -05:00
Alejandro Alonso
c101e19800
Switch to top level storage types
2023-12-18 14:01:16 -05:00
Alejandro Alonso
db9b8839a2
Add @_staticExclusiveOnly to Atomic
2023-12-18 14:01:16 -05:00
Alejandro Alonso
2c0b473b8d
Add Synchronization module
2023-12-18 14:01:16 -05:00
Alejandro Alonso
6d6e55a931
Apply feedback from pitch
2023-12-18 14:01:15 -05:00
Alejandro Alonso
f747162084
Implement the Atomic type
2023-12-18 14:01:15 -05:00