Holly Borla
0597b8db04
Merge pull request #59740 from hborla/remove-existential-opening-option
...
[LangOptions] Remove the option to enable/disable implicit existential opening.
2022-06-30 08:53:13 -07:00
Allan Shortlidge
2515f7a58d
Frontend: Introduce the -enable-experimental-ad-hoc-availability flag.
...
When developing a module for an OS or SDK, one may use declarations from other modules that were recently introduced in the in-development OS. Those declarations will be annotated as available at the deployment target of the client module and yet the symbols for that declaration are not available in all development builds of that OS. If the module strongly links those symbols, it will crash on older development builds of the OS. The `-enable-experimental-ad-hoc-availability` flag is designed to give developers the option of weakly linking all symbols in other modules that were introduced at the deployment target.
This change introduces the basic change in linking behavior but does not address typechecking. Use of the declarations that are made unavailable in this mode will need to be diagnosed and developers will need a way to detect the unavailability at runtime before use.
Resolves rdar://96011550
2022-06-29 11:44:07 -07:00
Holly Borla
6e8a581b42
[LangOptions] Remove the option to enable/disable implicit existential
...
opening.
2022-06-27 18:03:20 -07:00
Doug Gregor
6267513dab
Add experimental feature for AdditiveArithmetic derived conformances
2022-05-30 21:28:32 -07:00
Doug Gregor
22ccb3fc3f
Introduce experimental features for autodiff options
2022-05-30 21:26:17 -07:00
Doug Gregor
ad65a648df
Delete superseded language option EnableConcisePoundFile
2022-05-30 21:11:43 -07:00
Doug Gregor
2598aa5405
Add experimental feature for bound generic extensions
2022-05-30 21:09:33 -07:00
Doug Gregor
2cc91d04c9
Temporarily reinstate LangOptions::EnableBareSlashRegexLiterals for LLDB
2022-05-30 08:33:47 -07:00
Doug Gregor
3cf576da23
Refactor bare slash regex literals as a future feature
2022-05-30 08:33:46 -07:00
Doug Gregor
8da6caeccd
Add experimental feature for type witness system inference
2022-05-27 12:34:53 -07:00
Doug Gregor
333ae3f830
Add experimental feature for one-way closure parameters
2022-05-27 11:52:29 -07:00
Doug Gregor
b012270fca
Adopt experimental-feature infrastructure for move-only feature
2022-05-26 14:21:26 -07:00
Doug Gregor
37dbf23ba2
Adopt experimental feature approach for flow-sensitive concurrency captures
2022-05-26 13:56:21 -07:00
Doug Gregor
0de5d7818d
Make named opaque types an experimental feature
2022-05-26 13:44:08 -07:00
Doug Gregor
a523473315
Make static assertions an experimental feature
2022-05-26 13:43:36 -07:00
Doug Gregor
6d82448dc8
Add -enable-experimental-feature X for experimental features.
...
Experimental features can only be enabled in non-production (+Asserts)
builds. They can be detected with `hasFeature` in the same manner as
"future" features.
The `-enable-experimental-feature X` flag will also look for future
features by that name, so that when an experimental feature becomes an
accepted future feature, it will still be enabled in the same manner.
Switch variadic generics over to this approach, eliminating the
specific LangOption for it.
2022-05-26 11:50:39 -07:00
Robert Widmann
663722d892
Parameterized Existential Types Are Enabled By Default
...
See https://forums.swift.org/t/accepted-se-0353-constrained-existential-types/57560
2022-05-25 09:50:36 -07:00
Slava Pestov
bfcaa39d37
Remove the GenericSignatureBuilder
...
Resolves rdar://problem/88136582.
2022-05-10 11:47:06 -04:00
Slava Pestov
f39372b33d
RequirementMachine: Turn off redundant requirement warnings by default and add -warn-redundant-requirements frontend flag
2022-05-10 01:49:56 -04:00
Josh Soref
66663b1286
Spelling basic ( #42541 )
...
* spelling: add
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: attributes
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: bridging
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: deserialization
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: initialize
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: invariants
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: lazily
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: occurred
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: offset
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: optimization
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: our
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: process
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: substitution
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: the operation
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: the
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com >
2022-05-04 14:53:24 -07:00
Evan Wilde
94e30a817e
Revert "Add -async-main flag to favor asynchronous main"
...
This reverts commit da0a3311a5 .
2022-04-26 16:29:45 -07:00
Doug Gregor
c1534d5af9
Merge pull request #42520 from DougGregor/rename-strict-concurrency-options
2022-04-21 00:26:34 -07:00
Zoe Carver
320e4c63cb
Merge pull request #42511 from zoecarver/add-flag-import-as-computed-property
2022-04-20 22:47:21 -07:00
Doug Gregor
5538068500
Rename -strict-concurrency=explicit to minimal
...
This makes it far more clear what the relative ordering of the options is.
Thanks, Jake!
2022-04-20 21:30:41 -07:00
Doug Gregor
4116d7a3d7
Rename the -strict-concurrency= options to be more descriptive.
...
The three options are now:
* `explicit`: Enforce Sendable constraints where it has been explicitly adopted and perform actor-isolation checking wherever code has adopted concurrency. (This is the default)
* `targeted`: Enforce Sendable constraints and perform actor-isolation checking wherever code has adopted concurrency, including code that has explicitly adopted Sendable.
* `complete`: Enforce Sendable constraints and actor-isolation checking throughout the entire module.
2022-04-20 18:17:33 -07:00
zoecarver
21192904ba
[cxx-interop][nfc] Add flag cxx-interop-getters-setters-as-properties.
...
This is causing problems in certain cases, disabling by default.
2022-04-20 17:32:26 -07:00
Pavel Yaskevich
6db0001863
[TypeChecker] NFC: Remove -experimental-multi-statement-closures flag
...
SE-0326 has been enabled by default, so this flag is no longer necessary.
2022-04-20 10:40:27 -07:00
Doug Gregor
7a724c4586
Add frontend flag -swift-concurrency={off|limited|on}
...
Replace `-warn-concurrency` with a more granular option
`-swift-concurrency=`, where the developer can select one of three
different "modes":
* `off` disables `Sendable` checking for most cases. (This is the Swift
5.5 and Swift 5.6 behavior.)
* `limited` enables `Sendable` checking within code that has adopted
Swift concurrency. (This is currently the default behavior.)
* `on` enables `Sendable` and other concurrency checking throughout
the module. (This is equivalent to `-warn-concurrency` now).
There is currently no distinction between `off` and `limited`. That
will come soon.
Implements the flag part of rdar://91930849.
2022-04-18 18:12:10 -07:00
Hamish Knight
63b8db1659
Start using '-enable-bare-slash-regex'
...
Change the flag to imply
'-enable-experimental-string-processing', and
and update some tests to start using it.
2022-04-12 16:03:47 +01:00
Pavel Yaskevich
f7253f253e
Merge pull request #42228 from xedin/enable-se-0347-by-default
...
[TypeChecker] SE-0347: Enable type inference from default expressions
2022-04-08 16:10:20 -07:00
Pavel Yaskevich
b03021dbb7
[TypeChecker] SE-0347: Enable type inference from default expressions
2022-04-06 15:03:00 -07:00
Slava Pestov
1bf248e374
Enable parameterized protocols by default, and add new staging flag for parameterized existentials
2022-04-06 17:30:10 -04:00
swift-ci
882edde92f
Merge pull request #41966 from rxwei/se-0348-if-approved
...
[ResultBuilders] Enable SE-0348 `buildPartialBlock` by default.
2022-04-04 21:21:19 -07:00
Richard Wei
065ac52c0d
Add frontend flag -disable-implicit-string-processing-module-import.
...
We add a new flag to disable the implicit import of `_StringProcessing`, similar to `-disable-implicit-concurrency-module-import`. We need this to build `_RegexParser` when `-enable-experimental-string-processing` is enabled by default, because `_StringProcessing` currently imports `_RegexParser` publicly (non-implementation-only).
2022-04-04 13:55:47 -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
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
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
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
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
Slava Pestov
132334cda9
RequirementMachine: Add debugging flag to disable re-using requirement machines
2022-03-27 11:54:28 -04:00
Slava Pestov
cdcc8ed8fc
RequirementMachine: Enable loop normalization by default
2022-03-26 22:12:12 -04:00
Anthony Latsis
38e48ac15d
TypeWitnessSystem: Disable by default
2022-03-25 08:45:54 +03: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
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
Slava Pestov
9ccdd15d58
RequirementMachine: Add upper bound on number of attempts at splitting concrete equivalence classes
2022-03-22 15:02:06 -04: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