Commit Graph

4414 Commits

Author SHA1 Message Date
Meghana Gupta
c30eea156f Verify switch_value has int operands only 2024-04-03 10:30:55 -07:00
Anthony Latsis
f1732b1eb4 [docs] FirstPullRequest: Ask people to reach out to CEW members for help on GitHub
This is easier than messaging the workgroup on the forums
2024-03-30 20:52:28 +03:00
Doug Gregor
be7b5b6d6a Merge pull request #72692 from DougGregor/future-proof-invertible-mangling
Future-proof the mangling of invertible protocols
2024-03-29 08:10:01 -07:00
Becca Royal-Gordon
576a4bac36 Merge pull request #72596 from beccadax/objcimpl-real-name
Add @implementation and feature flags for objcImpl
2024-03-28 23:48:24 -07:00
Meghana Gupta
4a0f3809af Merge pull request #72684 from meg-gupta/fixlifetimedemangling
Fix lifetime dependence demangling and add a new Sema diagnostic
2024-03-28 22:43:49 -07:00
Doug Gregor
757ebe2979 Future-proof the mangling of invertible protocols
Invertible protocols are currently always mangled with `Ri`, followed by
a single letter for each invertible protocol (e.g., `c` and `e` for
`Copyable` and `Escapable`, respectively), followed by the generic
parameter index. However, this requires that we extend the mangling
for any future invertible protocols, which mean they won't be
backward compatible.

Replace this mangling with one that mangles the bit # for the
invertible protocol, e.g., `Ri_` (followed by the generic parameter
index) is bit 0, which is `Copyable`. `Ri0_` (then generic parameter
index) is bit 1, which is `Escapable`. This allows us to round-trip
through mangled names for any invertible protocol, without any
knowledge of what the invertible protocol is, providing forward
compatibility. The same forward compatibility is present in all
metadata and the runtime, allowing us to add more invertible
protocols in the future without updating any of them, and also
allowing backward compatibility.

Only the demangling to human-readable strings maps the bit numbers
back to their names, and there's a fallback printing with just the bit
number when appropriate.

Also generalize the mangling a bit to allow for mangling of invertible
requirements on associated types, e.g., `S.Sequence: ~Copyable`. This
is currently unsupported by the compiler or runtime, but that may
change, and it was easy enough to finish off the mangling work for it.
2024-03-28 21:26:13 -07:00
Kuba (Brecka) Mracek
095173aed6 Merge pull request #72687 from kubamracek/embedded-update-status4
[embedded] Update KeyPath status in EmbeddedSwiftStatus.md
2024-03-28 20:25:51 -07:00
Kuba Mracek
43f8ffaff3 [embedded] Update KeyPath status in EmbeddedSwiftStatus.md 2024-03-28 16:23:37 -07:00
Meghana Gupta
bc0b884609 Fix demangling of lifetime dependence when other function annotations like throws etc are present
It was demangled in the wrong order previously.
2024-03-28 14:58:06 -07:00
Cyandev
f8ea920c05 Fix broken table in CallConvSummary.rst 2024-03-28 16:42:00 +08:00
Becca Royal-Gordon
2a53433ad7 Soften @impl warnings only for early adopters
Adopting @implementation turns all of the warnings into errors.
2024-03-27 14:29:57 -07:00
Anton Korobeynikov
d84847ac9d Reland Allow normal function results of @yield_once coroutines (#71645)
* Allow normal function results of @yield_once coroutines

* Address review comments

* Workaround LLVM coroutine codegen problem: it assumes that unwind path never returns.
This is not true to Swift coroutines as unwind path should end with error result.
2024-03-27 13:09:02 -07:00
Takumi Muraishi
59b25c4b7d Fix typo fierst to first 2024-03-20 08:42:16 +09:00
Kuba Mracek
4389ae2dc8 [embedded] Add language feature list to EmbeddedSwiftStatus.md 2024-03-16 13:26:25 -07:00
Kuba Mracek
48b8228acd [embedded] Start building Synchronization in embedded Swift mode 2024-03-13 10:07:37 -07:00
Joe Groff
5a326a1465 Merge pull request #72193 from jckarter/memory-lifetime-verifier-nondestructive-enum-addr
MemoryLifetimeVerifier: Treat only destructive enum_data_addr insns as writes.
2024-03-11 21:16:59 -07:00
Joe Groff
2722f1adcd MemoryLifetimeVerifier: Treat only destructive enum_data_addr insns as writes.
It is ok to project the data from an enum in cases where we know spare bit
packing can never happen. Fixes rdar://124240723.
2024-03-11 09:49:57 -07:00
Nate Chandler
3dbeebaa9b [SIL] Add var_decl flag to alloc_stack. 2024-03-08 22:28:22 -08:00
Emil Pedersen
7c9a8769a1 Merge pull request #72072 from Snowy1803/tuple-fragments
Add support for op_tuple_fragment in SIL DIExpression and SIL SROA
2024-03-06 15:20:08 -08:00
eeckstein
d1ec089c72 Merge pull request #72088 from language-core/main
chore: fix some comments
2024-03-06 10:08:50 +01:00
Kavon Farvardin
215bd3cab4 Mangling: handle inverse requirements 2024-03-05 14:19:00 -08:00
cui fliter
127077b3aa chore: fix some comments
Signed-off-by: cui fliter <imcusg@gmail.com>
2024-03-05 17:23:22 +08:00
Emil Pedersen
35e346fd8d Add support for op_tuple_fragment in SIL DIExpression and SIL SROA
rdar://124034536
2024-03-04 15:46:02 -08:00
Alex Hoppen
80c858fad4 Merge pull request #72031 from ahoppen/ahoppen/lsan-documentation
Improve documentation on how to debug LSAN failures
2024-03-01 23:53:48 -08:00
Alex Hoppen
eac640590c Improve documentation on how to debug LSAN failures 2024-03-01 17:31:01 -08:00
Finagolfin
09ef130457 [android] Update to LTS NDK 26c
NDK 26 renamed the directory in which it places the Android compiler-rt from
`lib64/`, and added a bunch of nullability annotations to the Bionic libc.
2024-02-28 22:11:38 +05:30
Mishal Shah
9b14570a7f Add support for Swift Test WebAssembly 2024-02-23 10:41:37 -08:00
Mishal Shah
af112c1591 Update the Swift version to 6.0 from 5.11 2024-02-19 17:47:16 -08:00
Alejandro Alonso
0c05f82132 Merge pull request #71622 from Azoy/indirect-abi-no-go
[docs] Mention indirect in library evolution doc for enums
2024-02-15 10:30:50 -08:00
Meghana Gupta
0fd6ef3309 Add support for lifetime dependence mangling 2024-02-14 13:16:31 -08:00
Alejandro Alonso
be4cac5c65 Mention indirect in library evolution doc for enums
Update LibraryEvolution.rst
2024-02-14 12:56:07 -08:00
Erik Eckstein
6e8b80c791 SIL: add printing and parsing support for specialized vtables
If the vtable refers to a specialized class, a SIL type specifies the bound generic class type:
```
  sil_vtable $G<Int> {
    // ...
  }
```
2024-02-14 09:51:36 +01:00
Anthony Latsis
5dac5e2f79 Merge pull request #70658 from art-divin/improve-getting-started-linux-vm
Add a note about hardware requirements for compiling on Linux
2024-02-14 00:29:13 +03:00
John McCall
d5142668f4 SIL and IRGen support for @isolated(any). SILGen to come. 2024-02-13 03:04:13 -05:00
Kuba (Brecka) Mracek
6657349552 Merge pull request #71523 from kubamracek/embedded-docs3
[embedded] Update UserManual.md and EmbeddedSwiftStatus.md with some additional information
2024-02-12 16:44:55 -08:00
Anthony Latsis
bc132da5d9 Merge pull request #71013 from AnthonyLatsis/getting-started-hosttools-bootstrapping 2024-02-12 23:59:53 +03:00
Kuba Mracek
fa193fac80 [embedded] Update UserManual.md and EmbeddedSwiftStatus.md with some additional information 2024-02-09 14:05:24 -08:00
Alastair Houghton
9d2dcb5c4e Merge pull request #71386 from al45tair/eng/PR-122302117
[Runtime] Add an option to produce non-symbolicated backtraces.
2024-02-08 11:14:26 +00:00
Nate Cook
e317febc9d Revert "Allow normal function results of @yield_once coroutines (#69843)"
This reverts commit aa5b505014.
2024-02-07 14:57:31 -06:00
John McCall
60807a76a4 Merge pull request #71433 from rjmccall/isolated-any-typechecking
Experimental type-checking support for `@isolated(any)` function types.
2024-02-07 14:07:53 -05:00
Anton Korobeynikov
aa5b505014 Allow normal function results of @yield_once coroutines (#69843)
This adds SIL-level support and LLVM codegen for normal results of a coroutine.

The main user of this will be autodiff as VJP of a coroutine must be a coroutine itself (in order to produce the yielded result) and return a pullback closure as a normal result.

For now only direct results are supported, but this seems to be enough for autodiff purposes.
2024-02-06 22:13:15 -08:00
John McCall
2f8a33cf0a Experimental type-checking support for @isolated(any) function types. 2024-02-06 22:54:27 -05:00
Alastair Houghton
dd0b826235 [Runtime] Improved symbolication option for backtracing.
Rather than just on or off, I've changed it to allow "off", "fast",
or "full".  "fast" means that we'll do symbol lookup, but we won't
try to find inline frames and we won't run line number programs
(those are the things that are taking considerable time in some
cases).

rdar://122302117
2024-02-06 17:38:20 +00:00
Alastair Houghton
6c7aeeb5f2 [Docs] Updated Backtracing docs with new symbolicate setting.
Document the new `symbolicate` setting.

rdar://122302117
2024-02-05 13:05:11 +00:00
Erik Eckstein
fcd5225f39 Mangling: add mangling for outlined value operations which must not use value witness functions 2024-02-05 12:33:18 +01:00
Erik Eckstein
86f23b089f SIL: add the [perf_constraint] flag in SILFunction
Specifies that the optimizer and IRGen must not add runtime calls which are not in the function originally.
This attribute is set for functions with performance constraints or functions which are called from functions with performance.
2024-02-05 12:26:30 +01:00
Kuba (Brecka) Mracek
2fa1022a91 Merge pull request #70687 from kubamracek/embedded-docs1
[embedded] Add an initial docs/EmbeddedSwift/UserManual.md
2024-02-03 13:06:57 -08:00
Kuba Mracek
770496b1c0 [embedded] Add Pico integration tutorial 2024-02-02 22:37:45 -08:00
Kuba Mracek
0affaafac7 [embedded] Expand on the Embedded Swift documentation, fill in several TODOs 2024-02-02 21:50:09 -08:00
Michael Gottesman
369f441702 [SIL.rst] Update end_unpaired_access docs to make it clear it does not have a result. 2024-02-02 14:50:10 -08:00