Commit Graph

4391 Commits

Author SHA1 Message Date
Slava Pestov
3b76bc44cc docs: Update generics.tex 2024-10-21 22:08:52 -04:00
Nate Chandler
71239d6357 [CoroutineAccessors] SIL represents callee alloc.
When its operand has coroutine kind `yield_once_2`, a `begin_apply`
instruction produces an additional value representing the storage
allocated by the callee.  This storage must be deallocated by a
`dealloc_stack` on every path out of the function.  Like any other stack
allocation, it must obey stack discipline.
2024-10-11 08:25:03 -07:00
Nate Chandler
df1c4f6b25 [CoroutineAccessors] Add new SILFnTy CoroKind.
For `modify` and `read` coroutines, produce SILFunctionType's whose
coroutineKind is ::YieldOnce2.
2024-10-11 08:25:02 -07:00
Erik Eckstein
54e7cdda25 docs: document the witness table ABI for Embedded Swift 2024-10-07 09:00:32 +02:00
Anthony Latsis
54ef4dc67a [docs] FirstPullRequest: Turn CEWG team handle into a link (#76866)
GitHub handles do not work automatically in files.
2024-10-04 07:59:16 -07:00
Konrad `ktoso` Malawski
dea3b59331 Merge pull request #76250 from ktoso/wip-experimental-isolated-deinit 2024-10-03 17:19:10 +09:00
Michael Gottesman
561662d6cc [sil] Add a new instruction called ThunkInst.
For now this will only be used for HopToMainActorIfNeeded thunks. I am creating
this now since in the past there has only been one option for creating
thunks... to create the thunk in SILGen using SILGenThunk. This code is hard to
test and there is a lot of it. By using an instruction here we get a few benefits:

1. We decouple SILGen from needing to generate new kinds of thunks. This means
that SILGenThunk does not need to expand to handle more thunks.

2. All thunks implemented via ThunkInst will be easy to test in a decoupled way
with SIL tests.

3. Even though this stabilizes the patient, we still have many thunks in SILGen
and various parts of the compiler. Over time, we can swap to this model,
allowing us to hopefully eventually delete SILGenThunk.
2024-10-02 14:15:49 -07:00
Erik Eckstein
6fdb713e94 SwiftCompilerSources: implement WitnessTable.Entry as enum 2024-10-02 07:10:30 +02:00
Kuba (Brecka) Mracek
eb2b52207e Merge pull request #76768 from kubamracek/embedded-docs10
[embedded] Adjust docs to clarify support for class-bound existentials
2024-10-01 13:59:00 -07:00
Konrad `ktoso` Malawski
45b97f146b Merge branch 'main' into wip-experimental-isolated-deinit 2024-09-30 13:47:39 +09:00
Kuba Mracek
ca3a7f4638 [embedded] Adjust docs to clarify support for class-bound existentials 2024-09-28 18:09:11 -07:00
Nate Chandler
091368ba21 [CoroutineAccessors] Added read.
The name is a placeholder for the mutating single-yield coroutine
accessor.
2024-09-26 18:10:39 -07:00
Nate Chandler
98a2e6a7df [CoroutineAccessors] Added modify.
The name is a placeholder for the mutating single-yield coroutine
accessor.
2024-09-26 18:10:39 -07:00
Kuba (Brecka) Mracek
d3c5149714 Merge pull request #76658 from kubamracek/embedded-managed-buffer
[embedded] Add support for ManagedBuffer to Embedded Swift
2024-09-25 02:54:55 -07:00
Anthony Latsis
09c73585ca docs: Update links to section on commit access (#76672)
This section has migrated to our local contributing file and will soon
be removed from the website.
2024-09-24 10:46:03 -07:00
Anthony Latsis
9e752ca473 docs: Update link to commit message guidelines (#76667)
This information is specific to the compiler repository and now lives in our local contributing page.
2024-09-24 05:55:24 -07:00
Kuba Mracek
c7a5569c4f [embedded] Add support for ManagedBuffer to Embedded Swift
This makes ManagedBuffer available and usable in Embedded Swift, by:

- Removing an internal consistency check from ManagedBuffer that relies on metatypes.
- Making the .create() API transparent (to hoist the metatype to the callee).
- Adding a AllocRefDynamicInst simplification to convert `alloc_ref_dynamic` to `alloc_ref`, which removes a metatype use.
- Adding tests for the above.
2024-09-23 13:32:50 -07:00
Konrad `ktoso` Malawski
b9319d80f1 Merge branch 'main' into wip-experimental-isolated-deinit 2024-09-23 09:01:06 +09:00
Konrad `ktoso` Malawski
d89347bed0 Merge branch 'main' into wip-experimental-isolated-deinit 2024-09-20 18:34:45 +09:00
Saleem Abdulrasool
6443619126 Remove swift-indent tool
This removes the implementation of the `swift-indent` tool, its
associated documentation, and utilities. This tool was never completed
and has much better alternatives with `swift-format` which is more
flexible and actually maintained.
2024-09-19 11:21:59 -07:00
Yuta Saito
9fd1baf666 docs/WebAssembly.md: Add instructions for building Swift SDK for WebAssembly
Also update the notes on the relative pointers in WebAssembly to
reflect the current implementation.
2024-09-17 12:28:03 +00:00
Konrad `ktoso` Malawski
7d1ce789ad Revert "Revert "Isolated synchronous deinit"" 2024-09-17 17:35:38 +09:00
Becca Royal-Gordon
6aa5afe813 Cover -verify-additional-prefix in docs/Diagnostics.md
This handy feature was added in #68195.
2024-09-13 16:25:12 -07:00
Kuba (Brecka) Mracek
510a5b2901 [embedded] Clarify (missing) support for parameter packs 2024-09-11 22:58:14 -07:00
Meghana Gupta
a7518ac3d9 Merge pull request #76255 from meg-gupta/disablemangling
Delete lifetime dependence mangling
2024-09-09 19:59:16 -07:00
Ellis Hoag
20bca94b6f [docs] Fix links to dockerfiles
It seems that the `master/` directory in these paths have been renamed to `main`.
2024-09-06 15:58:26 -07:00
Meghana Gupta
10057523ec Delete lifetime dependence mangling
Mangling this information for future directions like component lifetimes
becomes complex and the current mangling scheme isn't scalable anyway.

Deleting this support for now.
2024-09-05 22:03:58 -07:00
Alejandro Alonso
e0f2b812e8 Add serialization and parser tests for SIL 2024-09-04 15:13:47 -07:00
Alejandro Alonso
f4f60f4344 Remove Value requirement Add GenericTypeParamKind 2024-09-04 15:13:43 -07:00
Alejandro Alonso
f66beffb80 Fix unittest compile error 2024-09-04 15:13:29 -07:00
Alejandro Alonso
75c2cbf593 Implement value generics
Some requirement machine work

Rename requirement to Value

Rename more things to Value

Fix integer checking for requirement

some docs and parser changes

Minor fixes
2024-09-04 15:13:25 -07:00
Alex Hoppen
c5aa49ba64 Revert "Isolated synchronous deinit" 2024-09-03 18:11:26 -07:00
Konrad `ktoso` Malawski
c55ad6fa88 Merge branch 'main' into mpokhylets/isolated-deinit 2024-09-02 23:16:17 +09:00
Valeriy Van
f4fe6da5ce Minor punctuation fix 2024-08-31 11:12:24 +02:00
Slava Pestov
b769332c56 docs: Update generics.tex 2024-08-30 15:58:01 -04:00
Allan Shortlidge
8502c89234 SIL: Print thunk kind attribute for @backDeployed thunks.
As promised in the FIXME, update the SIL printer and parser to handle the new
thunk kind for `@backDeployed` thunks.

Follow up to https://github.com/swiftlang/swift/pull/76135.
2024-08-29 17:26:06 -07:00
Mykola Pokhylets
e0ad7bde82 Merge branch 'main' into mpokhylets/isolated-deinit
# Conflicts:
#	include/swift/Basic/Features.def
#	lib/AST/ASTPrinter.cpp
#	lib/AST/FeatureSet.cpp
2024-08-29 11:28:43 +02:00
LamTrinh.Dev
2cd4b6973a Update wording from commandline to command line (#76121) 2024-08-28 08:39:01 -07:00
Erik Eckstein
c8e74b8393 Generic specialization: change the mangling for dropped metatype arguments
Instead of adding a "flag" (`m` in `...Tgm5`) make it more generic to allow to drop any unused argument.
Add all dropped arguments with a `t<n-1>` (where `<n-1>` is empty for n === 0). For example `...Ttt2g5`.
2024-08-26 10:43:15 +02:00
Andrew Trick
b8b0d9e740 Typo in SIL.rst: Lifetime of Enums in Memory 2024-08-19 17:46:30 -07:00
Alex Hoppen
514f7bc92d Merge pull request #75793 from ahoppen/no-editor-mode
Remove `DiagnosticsEditorMode`
2024-08-16 21:25:54 -07:00
Mykola Pokhylets
50b1313175 Merge branch 'main' into mpokhylets/isolated-deinit
# Conflicts:
#	lib/SILGen/SILGenDistributed.cpp
#	lib/Sema/TypeCheckConcurrency.cpp
2024-08-15 16:58:43 +02:00
Michael Gottesman
5bd179e5ee [docs] Move LSANFailureSymbolication information to DebuggingTheCompiler.md instead of having its own document.
This information is generally centralized in DebuggingTheCompiler.md to make it
easier to find.
2024-08-14 14:38:40 -07:00
Alex Hoppen
577727ad55 Remove DiagnosticsEditorMode
Migrate the last diagnostic to be independent of `DiagnosticEditorMode` and remove that option.

rdar://133111163
2024-08-14 11:24:31 -07:00
Andrew Savonichev
5aa9d3e29b Add partial_apply support for coroutines (#71653)
The patch adds lowering of partial_apply instructions for coroutines.

This pattern seems to trigger a lot of type mismatch errors in IRGen, because
coroutine functions are not substituted in the same way as regular functions
(see the patch 07f03bd2 "Use pattern substitutions to consistently abstract
yields" for more details). 

Other than that, lowering of partial_apply for coroutines is straightforward: we
generate another coroutine that captures arguments passed to the partial_apply
instructions. It calls the original coroutine for yields (first return) and
yields the resulting values. Then it calls the original function's continuation
for return or unwind, and forwards them to the caller as well.

After IRGen, LLVM's Coroutine pass transforms the generated coroutine (along with
all other coroutines) and eliminates llvm.coro.* intrinsics. LIT tests check
LLVM IR after this transformation.

Co-authored-by: Anton Korobeynikov <anton@korobeynikov.info>
Co-authored-by: Arnold Schwaighofer <aschwaighofer@apple.com>
2024-08-08 18:36:42 -07:00
Karoy Lorentey
56bcc8dc83 [stdlib] Remove _FixedArray16
We are no longer using this internal type; remove it from the stdlib.
2024-07-30 16:14:05 -07:00
Alejandro Alonso
ca8c90ecc0 Support movesAsLike for the array variant of @_rawLayout 2024-07-28 10:29:57 -07:00
Ben Barham
d281fb8868 Merge pull request #74883 from finagolfin/droid
[android] Enable several C++ Interop and other tests
2024-07-26 11:18:07 -07:00
Alex Hoppen
ac445d6fad [docs] Improve documentation on LSAN failure symbolication 2024-07-24 13:34:33 -07:00
Joe Groff
044d8c9f56 Merge pull request #75378 from jckarter/warn-on-runtime-function-symbol-references
Stage in a warning when trying to access symbols used by the compiler.
2024-07-24 08:18:57 -07:00