Commit Graph

4080 Commits

Author SHA1 Message Date
swift_jenkins
7cdc0520e3 Merge remote-tracking branch 'origin/main' into next 2022-04-04 10:41:57 -07:00
Evan Wilde
2eb801145e Merge branch 'main' into ewilde/async-main-resolution 2022-04-02 16:15:10 -07:00
Evan Wilde
da0a3311a5 Add -async-main flag to favor asynchronous main
This flag biases the overload checker in favor of selecting an
asynchronous main function over a synchronous main. If no asynchronous
main function exists, a synchronous one will still be selected.
Likewise, if the flag is not passed and there are only asynchronous main
functions available, the most specific asynchronous main function will
still be selected.
2022-04-02 16:14:01 -07:00
swift_jenkins
044f1f934b Merge remote-tracking branch 'origin/main' into next 2022-04-02 08:20:25 -07:00
Slava Pestov
ed23f4fd9d Merge pull request #42113 from slavapestov/gsb-off
Turn off the GenericSignatureBuilder
2022-04-02 11:04:24 -04:00
swift_jenkins
b1e0d1088c Merge remote-tracking branch 'origin/main' into next 2022-04-02 04:20:19 -07:00
Yuta Saito
f492250b84 Merge pull request #42095 from kateinoigakukun/pr-26594e2245d681b594f6e1b190c8107a1c6dbb1d
[Wasm][Runtime] Interpret absolute function pointer in runtime structures
2022-04-02 20:04:23 +09:00
Slava Pestov
703d89c8bd Turn off the GenericSignatureBuilder
The Requirement Machine has been enabled in 'verify' mode for a while,
where we run both the GenericSignatureBuilder and Requirement Machine
minimization algorithm and compare the results, with the
GenericSignatureBuilder being used to emit diagnostics.

Now, it's time to flip the flags to 'enabled' mode, where the
GenericSignatureBuilder doesn't run at all, and the Requirement Machine
emits diagnostics. This finally allows us to realize the correctness
and performance gains from using the Requirement Machine.

See https://forums.swift.org/t/the-requirement-machine-a-new-generics-implementation-based-on-term-rewriting/55601/9
for details.

Correctness:

- https://bugs.swift.org/browse/SR-7353
- https://bugs.swift.org/browse/SR-9595
- https://bugs.swift.org/browse/SR-10532
- https://bugs.swift.org/browse/SR-10752
- https://bugs.swift.org/browse/SR-11100
- https://bugs.swift.org/browse/SR-11532
- https://bugs.swift.org/browse/SR-11997
- https://bugs.swift.org/browse/SR-12120
- https://bugs.swift.org/browse/SR-12736
- https://bugs.swift.org/browse/SR-12980
- https://bugs.swift.org/browse/SR-13018
- https://bugs.swift.org/browse/SR-13491
- https://bugs.swift.org/browse/SR-13502
- https://bugs.swift.org/browse/SR-14484
- https://bugs.swift.org/browse/SR-14485
- https://bugs.swift.org/browse/SR-14659
- https://bugs.swift.org/browse/SR-14776
- https://bugs.swift.org/browse/SR-14917
- https://bugs.swift.org/browse/SR-15009
- https://bugs.swift.org/browse/SR-15790
- https://bugs.swift.org/browse/SR-15920
- rdar://25065503
- rdar://39225307
- rdar://44590919
- rdar://45957015
- rdar://50169558
- rdar://51068593
- rdar://52921168
- rdar://54394068
- rdar://55758433
- rdar://58455439
- rdar://59132837
- rdar://62894047
- rdar://64953119
- rdar://65015626
- rdar://65558829
- rdar://68084643
- rdar://68376692
- rdar://75329340
- rdar://76646764
- rdar://77683844
- rdar://77794156
- rdar://78233378
- rdar://78481510
- rdar://78643612
- rdar://80820294
- rdar://81276358
- rdar://81425392
- rdar://83308672
- rdar://83373331
- rdar://83848546
- rdar://83955123
- rdar://88514540
- rdar://89641532
- rdar://90264856
- rdar://90343419

Performance:

- rdar://33654588
- rdar://47821930
- rdar://51908331
- rdar://59037195
- rdar://65131776
- rdar://73771235
- rdar://75188696

GSB crashes with no reduced test case that are likely fixed:

- https://bugs.swift.org/browse/SR-4872
- rdar://32144681
- rdar://42376632
- rdar://46270030
- rdar://47199993
- rdar://48648900
- rdar://49535930
- rdar://49712445
- rdar://49712637
- rdar://49713096
- rdar://49713107
- rdar://60334839
- rdar://66593156
- rdar://68982368
- rdar://76706682
- rdar://77794745
- rdar://84724541
2022-04-02 01:55:21 -04:00
Yuta Saito
8c598e98f7 [Wasm][Runtime] Interpret absolute function pointer in runtime structures
When SWIFT_COMPACT_ABSOLUTE_FUNCTION_POINTER is enabled, relative direct
pointers whose pointees are functions will be turned into absolute
pointer at compile-time.
2022-04-02 04:32:41 +00:00
swift_jenkins
8cae5b706c Merge remote-tracking branch 'origin/main' into next 2022-04-01 15:40:51 -07:00
Artem Chikin
aaee1c4bcf Merge pull request #42140 from artemcm/EnableRegexLiteralFlag
Add support for `-enable-regex-literals` flag
2022-04-01 15:38:45 -07:00
Artem Chikin
b04ae26391 Add support for -enable-regex-literals flag
- Add driver and frontend option
- Add LangOptions entry
- Ensure driver propagates flag to frontends
- Add feature to `features.json`

Part of rdar://91119995
2022-04-01 12:14:28 -07:00
swift_jenkins
cf3a43bd8d Merge remote-tracking branch 'origin/main' into next 2022-03-31 18:40:33 -07:00
Slava Pestov
b90d584128 Merge pull request #42111 from slavapestov/rqm-abstract-signatures-enable
LangOptions: Change default for RequirementMachineAbstractSignatures from Verify to Enabled
2022-03-31 21:24:20 -04:00
swift_jenkins
1fe6e938db Merge remote-tracking branch 'origin/main' into next 2022-03-31 11:41:06 -07:00
Xi Ge
91c4f17b35 Frontend: flip the default of whether importing SPI_AVAILABLE from clang 2022-03-31 09:43:13 -07:00
Slava Pestov
a852b58e6c LangOptions: Change default for RequirementMachineAbstractSignatures from Verify to Enabled
We've only seen false positives from verification here, and this request
doesn't emit diagnostics.
2022-03-31 11:21:22 -04:00
swift_jenkins
b208ce815c Merge remote-tracking branch 'origin/main' into next 2022-03-27 20:20:56 -07:00
John McCall
c3c9b1bf56 Merge pull request #42047 from rjmccall/extended-existential-type-metadata
Add type metadata for extended existential types
2022-03-27 23:03:05 -04:00
John McCall
a2f6dd4129 [NFC] Appropriately delete and noexcept TaggedUnion's special members 2022-03-27 18:23:16 -04:00
swift_jenkins
8484bec59b Merge remote-tracking branch 'origin/main' into next 2022-03-27 11:20:50 -07:00
John McCall
63db5457ce [NFC] Add a utility to add the elements of a pack to a vector
When we adopt C++17, we'll be able to do this with a fold expression,
but this will be useful in the meantime.
2022-03-27 14:11:20 -04:00
Slava Pestov
132334cda9 RequirementMachine: Add debugging flag to disable re-using requirement machines 2022-03-27 11:54:28 -04:00
swift_jenkins
ad78b207f0 Merge remote-tracking branch 'origin/main' into next 2022-03-27 08:40:46 -07:00
Slava Pestov
cdcc8ed8fc RequirementMachine: Enable loop normalization by default 2022-03-26 22:12:12 -04:00
swift_jenkins
11db631637 Merge remote-tracking branch 'origin/main' into next 2022-03-25 05:40:43 -07:00
Anthony Latsis
38e48ac15d TypeWitnessSystem: Disable by default 2022-03-25 08:45:54 +03:00
swift_jenkins
f33b3a48de Merge remote-tracking branch 'origin/main' into next 2022-03-24 19:21:03 -07:00
Doug Gregor
c4e6e6d105 Eliminate the EnableExperimentalDistributed language option.
Nothing is using it because this feature is enabled by default.
2022-03-24 16:00:26 -07:00
swift_jenkins
34fd16dd5b Merge remote-tracking branch 'origin/main' into next 2022-03-22 22:00:54 -07:00
Evan Wilde
13c71c668d Merge pull request #40769 from etcwilde/ewilde/noasync-unavailability
SE-0340: `noasync` availability kind
2022-03-22 21:42:09 -07:00
swift_jenkins
a3c2da7556 Merge remote-tracking branch 'origin/main' into next 2022-03-22 18:01:09 -07:00
Slava Pestov
5c5d2eadf6 Merge pull request #41945 from slavapestov/rqm-split-concrete-equiv-class-improvements
RequirementMachine: Improve the 'split concrete equivalence classes' hack a bit
2022-03-22 20:59:07 -04:00
Richard Wei
335b766b25 [ResultBuilders] Enable SE-0348 buildPartialBlock by default.
Enables SE-0348 `buildPartialBlock` feature by default. The frontend flag is kept for compatibility with existing clients, but is now ineffective.

Also includes some improved error messages for invalid result builder call sites.
2022-03-22 16:26:50 -07:00
Evan Wilde
aa51bdf17a Add noasync availability kind to available attr
This patch adds the `noasync` availability kind to `@available`. The
spelling is `@available(*, noasync)`.
2022-03-22 15:12:51 -07:00
Slava Pestov
9ccdd15d58 RequirementMachine: Add upper bound on number of attempts at splitting concrete equivalence classes 2022-03-22 15:02:06 -04:00
swift_jenkins
99c01301af Merge remote-tracking branch 'origin/main' into next 2022-03-21 22:20:58 -07:00
Andrew Trick
406aa86d2e Merge pull request #41557 from atrick/addrlower-update
Update and reimplement AddressLowering pass (for SIL opaque values).
2022-03-21 22:15:06 -07:00
swift_jenkins
ad6219779f Merge remote-tracking branch 'origin/main' into next 2022-03-21 08:20:58 -07:00
Alex Lorenz
2e3aa87737 Revert "Revert "Merge pull request #41831 from hyp/unify-header""
This reverts commit 4c9582c295.
2022-03-19 13:36:28 -07:00
swift_jenkins
ebd711e594 Merge remote-tracking branch 'origin/main' into next 2022-03-18 14:40:29 -07:00
Slava Pestov
b93717cbae RequirementMachine: Enable flags directly in LangOptions
This enables requirement machine minimization for all tools (SourceKit, etc)
not just the frontend.
2022-03-18 15:19:57 -04:00
swift_jenkins
586a4e3e3f Merge remote-tracking branch 'origin/main' into next 2022-03-18 10:41:30 -07:00
Michael Gottesman
07e54bf641 Merge pull request #41890 from hyp/dev/unify-header
Revert "Merge pull request #41831 from hyp/unify-header"
2022-03-18 10:32:24 -07:00
Alex Lorenz
4c9582c295 Revert "Merge pull request #41831 from hyp/unify-header"
This reverts commit cd93d23bac, reversing
changes made to f9f5476e9a.
2022-03-18 10:03:07 -07:00
swift_jenkins
aeddce08c1 Merge remote-tracking branch 'origin/main' into next 2022-03-17 20:20:22 -07:00
Slava Pestov
e6d1ef9f6d Merge pull request #41868 from slavapestov/rqm-opaque-archetypes
RequirementMachine: Opaque archetype support (sort of)
2022-03-17 23:06:24 -04:00
swift_jenkins
41b21eb443 Merge remote-tracking branch 'origin/main' into next 2022-03-17 17:01:28 -07:00
Artem Chikin
9a9f796f9b Merge pull request #41844 from artemcm/TargetInfoCarefulJSON
Do not escape UNICODE when writing out target info.
2022-03-17 16:57:55 -07:00
Slava Pestov
2f727d6b47 RequirementMachine: Opaque archetype support (sort of)
Complete support is behind a flag, because it can result in a non-convergent
rewrite system if the opaque result type has a recursive conformance of its
own (eg, `some View` for SwiftUI's View protocol).

Without the flag, it's good enough for simple examples; you just can't have
a requirement that mentions a nested type of a type parameter equated to
the concrete type.

Fixes rdar://problem/88135291, https://bugs.swift.org/browse/SR-15983.
2022-03-17 17:45:59 -04:00