Commit Graph

21492 Commits

Author SHA1 Message Date
Egor Zhdan
71c81d5fc5 Merge pull request #74994 from swiftlang/egorzhdan/cxx-overlay-maccatalyst
[cxx-interop] Build Cxx and CxxStdlib modules for macCatalyst
2024-07-08 12:11:55 +01:00
Alastair Houghton
b6e7a5107a Merge pull request #75024 from Sajjon/cyon_typo_batch__stdlib
Typos: `stdlib`
2024-07-08 10:57:54 +01:00
Alastair Houghton
64b891d5fe [Runtime] Add missing cast.
Apparently we're missing a cast in `_swift_initRuntimePath()`.  Previously
this code was accidentally not being used, which is why we hadn't noticed
it.

rdar://131294724
2024-07-08 10:29:31 +01:00
Konrad `ktoso` Malawski
a8f68aab4b Merge pull request #75008 from kateinoigakukun/yt/fix-mutex-guard-wasm-thread
Concurrency: Guard TG state with a mutex even with cooperative executor
2024-07-08 17:56:31 +09:00
Benedicto Hong
9ad83e71e0 Fix typos in RefCount.h
- Fixed several typos.
  - this -> `This`
  - constant -> `Constant`
  - Add a period at the end of a sentence `.`
2024-07-08 16:26:13 +09:00
Konrad `ktoso` Malawski
df43b63f44 [Concurrency] Attempt to unbreak embedded build (#75006) 2024-07-08 11:21:12 +09:00
Konrad `ktoso` Malawski
3c75f2fac8 Add comment explaining #if guard 2024-07-08 10:49:38 +09:00
Konrad `ktoso` Malawski
5ad2291ac0 [Concurrency] Fix build in actors as locks configuration (#75004) 2024-07-07 10:37:33 +09:00
Alexander Cyon
c21b1e68fd [stdlib] Fix typos 2024-07-06 13:09:57 +02:00
Yuta Saito
49a20d110a Concurrency: Guard TG state with a mutex even with cooperative executor
`SWIFT_STDLIB_SINGLE_THREADED_CONCURRENCY` just means that the global
executor is cooperative, but it doesn't mean that the target platform is
always single-threaded. For example, on wasm32-unknown-wasip1-threads,
the global executor is cooperative, but users can still set up their own
TaskExecutor with multiple threads.

This patch guards the `TaskGroup` state with a mutex even with a
cooperative executor by respecting threading package instead. This
change effectively affects only wasm32-unknown-wasip1-threads.
2024-07-06 08:14:07 +00:00
Guillaume Lessard
8733ecd012 Merge pull request #75000 from glessard/rdar99047401-err-nosendable
[concurrency/stdlib] declare `POSIXErrorCode` as `Sendable`
2024-07-05 16:58:51 -07:00
Guillaume Lessard
ab117c997d [concurrency] declare POSIXErrorCode as Sendable 2024-07-05 13:34:26 -07:00
Egor Zhdan
b0a3bb10f0 [cxx-interop] Build Cxx and CxxStdlib modules for macCatalyst
This enables building the C++ stdlib overlays (`Cxx.swiftmodule` and `CxxStdlib.swiftmodule`) for the Mac Catalyst target.

rdar://126938813
2024-07-05 19:35:29 +01:00
Alastair Houghton
fc012fd258 Merge pull request #74891 from al45tair/eng/PR-130954606
[Runtime] Use dyld to find the image path when possible.
2024-07-04 15:10:06 +01:00
Mike Ash
7a976c6497 Merge pull request #74951 from mikeash/fix-libprespecialized-missing-return
[Runtime] Fix missing return in getMetadataFromPointerKeyedMap.
2024-07-04 10:00:29 -04:00
David Smith
3589044213 A new way to bridge constant NSStrings (#74881) 2024-07-03 20:38:33 -07:00
Mike Ash
9bbcef3bc5 [Runtime] Fix missing return in getMetadataFromPointerKeyedMap.
When DYLD_FIND_POINTER_HASH_TABLE_ENTRY_DEFINED is set but the function is not found at runtime, we're missing a return statement.
2024-07-03 15:26:11 -04:00
Alejandro Alonso
9cbf410220 Adopt inout sending for Mutex 2024-07-03 10:54:20 -07:00
Allan Shortlidge
fb6ab05746 Concurrency: Restore -enable-experimental-feature IsolatedAny.
Supported older compilers don't enable this feature by default, so it can't be
omitted from the `_Concurrency` module's flags (regression from
https://github.com/swiftlang/swift/pull/74543).

Additionally, remove `@_allowFeatureSuppression(IsolatedAny)` from all
declarations. We no longer need to support compilers that don't have the
`IsolatedAny` feature, so the suppression is superfluous and the alternative
branches didn't actually build anyways. _Additionally_, the suppressible
feature logic could not handle suppressing `IsolatedAny` simultaneously with
`SendingArgsAndResults`, resulting in a broken interface because `sending` was
used outside `#if $SendingArgsAndResults` guards.
2024-07-03 10:36:47 -07:00
Konrad `ktoso` Malawski
70ed18044d Allow using older API if $BuiltinCreateAsyncTaskOwnedTaskExecutor is not available 2024-07-03 10:36:47 -07:00
Konrad `ktoso` Malawski
9ee719dbcd Prevent potential for condfail with owned task executor parameter
While the new parameter is added in a compatible way where code which
does not refer to it will get a defaulted nil value; since we refer to a
new parameter name in source, we need to guard it with a language
feature -- as old compilers will not have this new name available.

This should prevent a potential condfail issue.
2024-07-03 10:36:47 -07:00
Allan Shortlidge
b47b5ccba0 Concurrency: Remove superfluous $BuiltinBuildMainExecutor guards. 2024-07-02 22:59:28 -07:00
Allan Shortlidge
b9c12aa314 Concurrency: Remove superfluous $BuiltinExecutor guards. 2024-07-02 22:59:28 -07:00
Allan Shortlidge
346bbcaa05 Concurrency: Remove superfluous $BuiltinCreateAsyncTaskInGroup guards. 2024-07-02 22:26:55 -07:00
Allan Shortlidge
3aca6b6ceb Concurrency: Remove superfluous $BuiltinCreateTaskGroupWithFlags guards. 2024-07-02 22:26:55 -07:00
Allan Shortlidge
ee8a1152b2 Concurrency: Promote BuiltinCreateTask feature to baseline. 2024-07-02 22:26:55 -07:00
Allan Shortlidge
7e181d17e5 Concurrency: Promote BuiltinCreateAsyncDiscardingTaskInGroupWithExecutor feature to baseline. 2024-07-02 22:26:55 -07:00
Allan Shortlidge
e5744f04d6 Concurrency: Promote BuiltinCreateAsyncDiscardingTaskInGroup feature to baseline. 2024-07-02 22:26:55 -07:00
Allan Shortlidge
a4d58671ba Concurrency: Promote BuiltinCreateAsyncTaskInGroupWithExecutor feature to baseline. 2024-07-02 22:26:54 -07:00
Allan Shortlidge
f2519650ae Concurrency: Promote BuiltinBuildComplexEqualityExecutor feature to baseline. 2024-07-02 22:26:54 -07:00
Allan Shortlidge
ba630c0da5 Concurrency: Promote BuiltinBuildTaskExecutorRef feature to baseline. 2024-07-02 22:26:54 -07:00
Michael Gottesman
34195ff213 Merge pull request #74610 from gottesmm/pr-324fd70c13e87a329334341aae4667f2d1be152c
[sending] Remove transferring.
2024-07-02 14:02:18 -07:00
Alejandro Alonso
906d6e43c0 Merge pull request #74739 from Azoy/commandline-argc-ignore
[stdlib] Ignore argc when setting up CommandLine.arguments
2024-07-02 13:41:28 -07:00
Alastair Houghton
d846689695 [Runtime] Use dyld to find the image path when possible.
For performance reasons, we want to avoid `dladdr()` when possible.

rdar://130954606
2024-07-02 14:11:10 +01:00
Saleem Abdulrasool
f011de6ce8 Merge pull request #74829 from compnerd/android-notes
ClangImporter: add support for Android API Notes
2024-07-01 11:34:46 -07:00
Susana Monteiro
686d1b4c30 Merge pull request #74783 from susmonteiro/susmonteiro/cxx-span-from-ubpointer
[cxx-interop] Implements constructor for std::span from UnsafeBufferPointer
2024-07-01 19:02:05 +01:00
susmonteiro
e86099c26d [cxx-interop] Implements constructor for std::span from UnsafeBufferPointer
Tests: init span from UnsafeBufferPointer, for loop, map, filter, init Array from span, span of strings
2024-07-01 16:07:28 +01:00
Konrad `ktoso` Malawski
deb81bcf07 Discard changes to stdlib/public/Concurrency/Executor.swift (#74859) 2024-07-01 06:57:43 -07:00
Konrad `ktoso` Malawski
b9369bf0b7 [Concurrency] Fix default actor isolation issue in face of TaskExecutor preference (#74658)
* [Concurrency] Fix task excutor handling of default actor isolation

The task executor API did not properly account for taking the default
actor locking into account when running code on it, we just took the job
and ran it without checking with the serial executor at all, which
resulted in potential concurrent executions inside the actor --
violating actor isolation.

Here we change the TaskExecutor enqueue API to accept the "target"
serial executor, which in practice will be either generic or a specific
default actor, and coordinate with it when we perform a
runSynchronously.

The SE proposal needs to be amended to showcase this new API, however
without this change we are introducing races so we must do this before
the API is stable.

* Remove _swift_task_enqueueOnTaskExecutor as we don't use it anymore

* no need for the new protocol requirement

* remove the enqueue(_ job: UnownedJob, isolatedTo unownedSerialExecutor: UnownedSerialExecutor)

Thankfully we dont need it after all

* Don't add swift_defaultActor_enqueue_withTaskExecutor and centralize the task executor getting to enqueue()

* move around extern definitions
2024-07-01 16:42:27 +09:00
Saleem Abdulrasool
3f3b0b3e85 Merge pull request #74742 from compnerd/extended 2024-06-29 05:58:09 -07:00
Saleem Abdulrasool
47f9d78990 ClangImporter: add support for Android API Notes
Introduce the first APINotes injection for the Android platform. This
follows the VCRuntime pattern of permitting the SDK to provide API Notes
that augment the system SDK. This adds a workaround for incorrect
nullability on the `fts_open` function in bionic. The system library
itself is fixed at:
https://android-review.googlesource.com/c/platform/bionic/+/3151616
2024-06-28 13:24:04 -07:00
Ben Barham
d8f381e660 Merge pull request #74804 from bnbarham/rename-equals
Update `StringRef::equals` references to `operator==`
2024-06-28 11:22:20 -07:00
Alastair Houghton
7268640b60 Merge pull request #74731 from al45tair/eng/PR-116525111
[Build][Linux] Set `--build-id=sha1` for the linker.
2024-06-28 11:31:36 +01:00
Ben Barham
d72f5b12c4 Update StringRef::equals references to operator==
`equals` has been deprecated upstream, use `operator==` instead.
2024-06-27 19:14:06 -07:00
Alejandro Alonso
1e2192e018 Update CommandLine.swift 2024-06-27 10:41:59 -07:00
Alejandro Alonso
b8c308d4f1 Merge pull request #74775 from benrimmington/int128-docs
[stdlib] Update documentation of {U}Int128 types
2024-06-27 10:39:54 -07:00
Rokhini Prabhu
1f466c2312 Merge pull request #70603 from swiftlang/rokhinip/clear-scheduler-private-fields-executor
Clear out the SchedulerPrivate fields before enqueueing the task
2024-06-27 09:52:31 -07:00
Ben Rimmington
7d3b2ef7d1 [stdlib] Update documentation of {U}Int128 types 2024-06-27 14:19:13 +01:00
Alastair Houghton
35f123bbbf [Build][Linux] Set --build-id=sha1 for the linker.
This means we will get build IDs in the tools and standard library,
which is useful for debugging (it lets us associate debug symbols with
the binaries later on, as well as allowing us to reliably identify
exactly which binary we are looking at).

rdar://116525111
2024-06-27 12:21:50 +01:00
Konrad `ktoso` Malawski
1c1b6f7aaa Merge pull request #74606 from ktoso/wip-whenLocal-adjust
[Distributed] Adjust whenLocal impl to avoid potential ABI issues
2024-06-27 19:01:55 +09:00