Commit Graph

15449 Commits

Author SHA1 Message Date
Doug Gregor
e4d6bee153 Merge pull request #71400 from DougGregor/will-throw-typed
Implement `swift_willThrow` variant for typed throws.
2024-02-06 03:22:22 -08:00
Kuba (Brecka) Mracek
ea6295e47f Merge pull request #71392 from kubamracek/revert-embedded-defines
Revert "Merge pull request #71278 from kubamracek/embedded-no-mach-defines"
2024-02-05 17:48:40 -08:00
Doug Gregor
3fa07a0e7a Implement swift_willThrow variant for typed throws.
`swift_willThrow` is called with an error right before it is thrown.
This existing entrypoint requires an already-boxed error existential;
with typed errors, we don't have the error existential on hand, so we
would need to allocate the box to throw a typed error. That's not okay.

Introduce a new `swift_willThrowTypedImpl` entry point into the runtime
that will first check for the presence of an error handler and, if one
is present, box the error to provide to the error handler. This
maintains the no-allocations path for typed errors while still
allowing existing error handlers to work.

This new entrypoint isn't available on older Swift runtimes, so create
a back-deployable shim called by the compiler. On new-enough platforms,
this will call through to `swift_willThrowTypedImpl`. On older
platforms, we drop the error and don't call the registered will-throw
handler at all. This is a compromise that avoids boxing when throwing
typed errors, at the cost of a slightly different experience for this
new feature on older runtimes.

Fixes rdar://119828459.
2024-02-05 15:06:55 -08:00
Guillaume Lessard
a2df540cfa Merge pull request #71369 from oscbyspro/main
BinaryInteger advanced(by:) fixes
2024-02-05 14:42:38 -08:00
Pavel Yaskevich
09991db863 Merge pull request #71327 from xedin/raise-unexpected-executor-log-level
[stdlib] Make expected actor isolation checking crash by default
2024-02-05 09:45:55 -08:00
Kuba Mracek
dba8d5d3a0 Revert "Merge pull request #71278 from kubamracek/embedded-no-mach-defines"
This reverts commit 21eddf0b1a, reversing
changes made to e2d516f3c9.
2024-02-05 09:05:22 -08:00
Oscar Byström Ericsson
d7b3d3e319 Minor advanced(by:) enhancement. 2024-02-03 15:18:02 +01:00
Oscar Byström Ericsson
17187e38f5 This patch fixes two unnecessary traps in BinaryInteger's advanced(to:) method.
- `Int8.min.advanced(by: 128)`, etc.
- `UInt.max.advanced(by: Int.min)`, etc.
2024-02-03 13:56:33 +01:00
Pavel Yaskevich
87878461a5 [stdlib] Make expected actor isolation checking crash by default
Only affects projects compiled with `-enable-actor-data-race-checks` flag.
2024-02-02 23:53:18 -08:00
Kavon Farvardin
b67ace7de1 Merge pull request #71137 from kavon/ncgenerics-enable-stdlib-v1
NCGenerics: synthesize Copyable/Escapable decls
2024-02-02 21:16:14 -08:00
Kuba (Brecka) Mracek
21eddf0b1a Merge pull request #71278 from kubamracek/embedded-no-mach-defines
[embedded] Implicitly define __APPLE__ and __MACH__ when on -apple-none triples
2024-02-02 19:30:56 -08:00
Kavon Farvardin
3908c8182d NCGenerics: sometimes synth. Copyable/Escapable
When the Swift module is not available, we'll synthesize the
Copyable/Escapable decls into the Builtin module.

In the future, it might be nice to just do this always, and define
typealiases for those types in the stdlib to refer to the ones in the
builtin module.
2024-02-02 18:47:03 -08:00
Kuba Mracek
4776e993ad [embedded] Use defined(__wasm__) instead of defined(__wasi__) in Visibility.h 2024-02-02 12:41:54 -08:00
Guillaume Lessard
0ec6397053 Merge pull request #71224 from glessard/rdar121395821
[stdlib] Improve documentation for the various "String from C-string" initializers
2024-02-02 12:17:50 -08:00
Tim Kientzle
ccc6ef8e68 Merge pull request #70978 from tbkka/tbkka-revert-PR68952
Revert #68952 [Casting] Make more casts look inside __SwiftValue
2024-02-02 11:03:04 -08:00
Guillaume Lessard
114f235d17 Merge pull request #71167 from vanvoorden/vanvoorden/inclusive-language
[Inclusive Language][Comments][Documentation] migrate "sanity" checks to "soundness" checks
2024-02-02 10:27:34 -08:00
Dario Rexin
55e565d838 [Runtime] Handle different types for src and dest in existentialAssignWithCopy (#71323)
rdar://117083470

An existential can contain a different type than the one that is being assigned, so we have to check the types and handle the values accordingly.
2024-02-02 08:34:37 -08:00
Allan Shortlidge
ad2fcc6e38 [TaskExecutors] Add missing return type to _DefaultGlobalConcurrentExecutor.asUnownedTaskExecutor().
Addresses a warning that appears to point to a probable bug.
2024-02-01 18:41:30 -08:00
Guillaume Lessard
e10899eff7 [stdlib] tweak deprecation message 2024-02-01 15:34:18 -08:00
Guillaume Lessard
11485e5026 [doc] fix note visibility for docc-generated pages 2024-02-01 15:34:18 -08:00
Guillaume Lessard
a74b5b7b3c [stdlib] make parameter label the same as in peer functions
These functions were the odd ones out in not using `encoding` for this parameter label. Harmonizing this term will also make the documentation more consistent.
2024-02-01 15:34:18 -08:00
Guillaume Lessard
048a948f12 [stdlib] document some deprecated initializers 2024-02-01 15:34:18 -08:00
Guillaume Lessard
e3ede3ad3a [stdlib] improve phrasing in some doc-comments 2024-02-01 15:34:18 -08:00
Guillaume Lessard
ae9892d46b [stdlib] remove useless annotations 2024-02-01 15:34:18 -08:00
Guillaume Lessard
047092a0a5 [stdlib] mark deprecated in swift 6, point to better API 2024-02-01 15:34:18 -08:00
Guillaume Lessard
4c00395b66 [stdlib] fix preconditionFailure message 2024-02-01 15:34:18 -08:00
Philippe Hausler
bd3c15e64d Add a utility method for identifying which property changed for tracking events (#71223) 2024-02-01 09:48:31 -08:00
nate-chandler
902a22d94a Merge pull request #71298 from nate-chandler/bitwise-copyable/remove-unchecked
[BitwiseCopyable] Remove @unchecked behavior.
2024-02-01 03:21:26 -08:00
Mike Ash
12de745160 Merge pull request #71254 from mikeash/libprespecialize-validation-test
[ExternalGenericMetadataBuilder] Add a test that validates built metadata against the runtime.
2024-01-31 22:19:23 -05:00
Nate Chandler
367d71d74f Revert "[stdlib] Uncheck pointers' conf to BitwiseCopyable"
This reverts commit 4dc9713a7a.
2024-01-31 17:11:54 -08:00
Mike Ash
590c33ed70 [Runtime] Correctly initialize side tables of immortal objects on 32-bit.
The code to copy the refcounts from the object to a new side table wasn't quite right on 32-bit. Fix it to copy the PureSwiftDealloc field, and if the object is immortal, mark the side table's refcount as immortal too.

rdar://121943608
2024-01-31 17:08:06 -05:00
Mike Ash
b8b59c4bac [ExternalGenericMetadataBuilder] Add a test that validates built metadata against the runtime.
We run the builder, then use a small program that converts the JSON output into C code that generates the data. Compile that into a bundle, then load it as the prespecializations library. Then scan all the entries in the table and compare them with what the runtime builds dynamically.
2024-01-31 17:03:27 -05:00
Kuba Mracek
e22aedbcc3 [embedded] Implicitly define __APPLE__ and __MACH__ when on -apple-none triples 2024-01-31 09:22:31 -08:00
nate-chandler
a43faf89c8 Merge pull request #71242 from nate-chandler/bitwise-copyable/not-for-unchecked
[BitwiseCopyable] Don't derive on @unchecked field
2024-01-31 05:55:38 -08:00
Nate Chandler
c8119e3c01 [stdlib] FixedWidthInteger is BitwiseCopyable. 2024-01-30 14:38:07 -08:00
Nate Chandler
4c5d1006c4 [stdlib] SIMD extends BitwiseCopyable. 2024-01-30 14:38:07 -08:00
Nate Chandler
4dc9713a7a [stdlib] Uncheck pointers' conf to BitwiseCopyable
The pitch calls for such types to obstruct inference of _BitwiseCopyable
in aggregates containing them.
2024-01-30 14:38:07 -08:00
Ian Anderson
9a35f83e25 Merge pull request #71075 from ian-twilightcoder/no-exit-in-shims
[Concurrency] [shims] Don't declare `exit` in  the concurrency shims
2024-01-30 11:29:11 -08:00
Kuba (Brecka) Mracek
0655578718 Merge pull request #71226 from kubamracek/embedded-cdecls-runtime
[embedded] Fix calling convention on embedded runtime APIs (switch @_silgen_name for @_cdecl)
2024-01-30 09:24:17 -08:00
Ian Anderson
288f37b2c1 [Concurrency] [shims] Don't declare exit in the concurrency shims
Don't delete the OS declaration of `exit` because the concurrency shims aren't always imported, and so the shim declaration might not always be available.
Don't override the OS declaration of `exit` in the concurrency shims since we can't just delete the OS one. Instead, set up internal shims just for building Concurrency that forward declares `exit`.
2024-01-29 16:25:46 -08:00
Kuba Mracek
6383d05ea1 [embedded] Fix calling convention on embedded runtime APIs (switch @_silgen_name for @_cdecl) 2024-01-29 15:37:46 -08:00
Konrad `ktoso` Malawski
bd19d937f0 [TaskExecutor] Remove underscore from new APIs (#71145) 2024-01-30 06:27:54 +09:00
Doug Gregor
0cc529768a Merge pull request #70635 from DougGregor/async-sequence-typed-throws
Adopt typed throws in AsyncIteratorProtocol and AsyncSequence
2024-01-29 11:51:25 -08:00
Doug Gregor
8f4adb3fd0 Merge pull request #71207 from DougGregor/typed-throws-in-main-type
Allow the main function for `@main` types to use typed throws
2024-01-29 11:38:08 -08:00
Ben Troller
5ed9f34761 Merge pull request #71168 from btroller/allow-remote-mirror-client-to-specify-whether-objc-interop-is-enabled
[RemoteMirror] Allow clients to specify whether Obj-C interop is enabled.
2024-01-29 09:54:42 -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
Mike Ash
46ddceb7d4 Merge pull request #71184 from mikeash/libprespecialize-metadata-name-lookup
[Runtime] Do a proper hash table lookup in the prespecializations library.
2024-01-29 12:10:35 -05:00
Mike Ash
ccdcf6f27d Merge pull request #71201 from mikeash/libprespecialize-dyld-call-fix
[Runtime] Fix dyld call for Swift prespecialized data.
2024-01-29 10:23:44 -05:00
Doug Gregor
da08b96371 Allow the main function for @main types to use typed throws
Allow the use of typed throws for the main functions of `@main` types,
and thread the thrown error through to a new entry point in the library,
`_errorInMainTyped`, which is generic in the thrown error type.

Fixes rdar://121603043.
2024-01-28 11:21:00 -08:00
Max Desiatov
50785b5fc7 Merge pull request #71203 from apple/maxd/embedded-x86-windows-triples
Add `i686-pc-windows-coff`/`x86_64-pc-windows-coff` embedded triples
2024-01-28 19:17:54 +00:00