Commit Graph

1039 Commits

Author SHA1 Message Date
Artem Chikin
b15f77db28 Merge pull request #36820 from artemcm/BetterModuleArchNotFoundMsg
Add location to the `sema_no_import_target` diagnostic
2021-04-14 13:29:19 -07:00
Artem Chikin
0445336adf Add location to the sema_no_import_target diagnostic
Thsi diagnostic currently emits, for example:
```
could not find module Foo for target arm64; found: x86_64
```
It is sometimes very useful to know where exactly the `found` module is located, so this PR changes this diagnostic to emit:
```
could not find module Foo for target arm64; found: x86_64, at:
<Path where Foo.swiftmodule/x86_64.swiftmodule is located>
```
2021-04-13 11:02:58 -07:00
Alexis Laferrière
eae6c00bf3 Merge pull request #36873 from xymus/shorter-xref-note
[Serialization] Shorten and fix reference to wrong module in note
2021-04-12 17:17:38 -07:00
Alexis Laferrière
a3b848b3c1 [Serialization] Shorten and fix reference to wrong module in note 2021-04-12 14:32:29 -07:00
Mishal Shah
37aa203b75 Merge pull request #36836 from apple/update-the-tests-to-use-target-cpu
Use %target-cpu in the tests to support running on Apple Silicon hard…
2021-04-10 00:08:58 -07:00
Arnold Schwaighofer
9286ece71c Revert "Enable import of the _Concurrency module by default." 2021-04-09 13:20:30 -07:00
Mishal Shah
22f61df98b Use %target-cpu in the tests to support running on Apple Silicon hardware 2021-04-08 23:26:18 -07:00
Doug Gregor
9ba0647a58 Merge pull request #36767 from DougGregor/implicit-concurrency-import 2021-04-08 18:32:45 -07:00
Slava Pestov
17e84c2776 Merge pull request #36795 from slavapestov/lazily-emit-alwaysEmitIntoClient
Lazily emit @_alwaysEmitIntoClient functions at -Onone
2021-04-08 17:58:00 -04:00
Slava Pestov
1e8ce52736 SIL: Strip [serialized] flag from functions even at -Onone
While the comment is correct to state that this won't enable any
new optimizations with -Onone, it does enable IRGen's lazy
function emission, which is important for 'reasync' functions,
which we don't want to emit at all even at -Onone.

This fixes debug stdlib builds with the new reasync versions
of the &&, || and ?? operators.
2021-04-08 01:47:27 -04:00
Doug Gregor
95fd3ede09 Update tests and testing tools for implicit _Concurrency import 2021-04-06 14:08:41 -07:00
Alexis Laferrière
cd92c080a3 [Serialization] Revert the change to path printing on failures
This is a partial revert  of commit
c5c850c14d.
2021-04-06 11:49:51 -07:00
John McCall
5867219183 Fix the serialization of Builtin.Executor 2021-03-28 22:05:57 -04:00
Kavon Farvardin
3702d0cab8 [test] AST serialization for effectful properties 2021-03-26 07:54:53 -07:00
Erik Eckstein
78ec15cf38 tests: remove some unused FileCheck prefix options
Such tests would fail with the -allow-unused-prefixes FileCheck option.

diff --git a/test/lit.cfg b/test/lit.cfg
-run_filecheck = '%s %s --sanitize BUILD_DIR=%s --sanitize SOURCE_DIR=%s --use-filecheck %s %s' % (
+run_filecheck = '%s %s --sanitize BUILD_DIR=%s --sanitize SOURCE_DIR=%s --use-filecheck %s %s -allow-unused-prefixes=false' % (

It helps avoiding some wrong CHECK patterns.
I just looked briefly at some of the fails. TODO: fix remaining tests, too.

rdar://74189761
2021-03-25 15:19:30 +01:00
Alexis Laferrière
ca938a4da3 Merge pull request #36431 from xymus/notes-on-xrefs
[Serialization] Reword xref errors and show notes for common issues
2021-03-18 21:11:42 -07:00
Alexis Laferrière
9f71f46ee1 [Serialization] Test the output on a crash due to a broken XRef 2021-03-18 12:44:30 -07:00
Ted Kremenek
8256a4e91c Update Swift version to 5.5 2021-03-16 21:29:13 -07:00
Doug Gregor
2a28fed34d Allow one to separately specify the ABI name of a module.
Introduce a new compiler flag `-module-abi-name <name>` that uses the
given name as the ABI name for the module (rather than the module's
name in source code). The ABI name impacts name mangling and metadata.
2021-03-12 07:42:07 -08:00
Doug Gregor
47b0abfda4 Remove Actor.enqueue(partialTask:) and all its magic.
The backs out of some early decisions we made about actor layout
that we don't need. Custom actors will use a different approach.

This should suffice for the remainder of rdar://70146827.
2021-03-04 22:49:10 -08:00
Robert Widmann
80db895ba2 [NFC] Adapt Tests to the New Default
Now that incremental imports are the default, flip the polarity in some tests.
2021-03-01 17:26:00 -08:00
David Ungar
a4d32f9ced update swift-ide-test.cpp and sourceinfo.swift
Fix sourceinfo.swift
2021-02-27 09:24:34 -08:00
Ben Barham
f410958c9c [Serialization] Import incompatible targets when allowing errors
If allowing modules to be output with compile errors
(-experimental-allow-module-with-errors), import targets regardless of
whether they are compatible or not, and still output the module. The
error diagnostic will still be output (preventing SILGen), but the AST
will be available for various editor functionality.
2021-02-25 09:14:19 +10:00
Michael Gottesman
91317c723c [ownership] Make whether or not we serialize in OSSA form based off of the flag -enable-ossa-modules.
I added a change to CMake so that the stdlib still gets the option passed in so
should be NFC.
2021-02-22 19:07:45 -08:00
Michael Gottesman
02784b3cb2 Merge pull request #36025 from gottesmm/pr-36fe6ec4772e3d5e09f5031a505217e7d7aba8dc
[ownership] On non-Darwin platforms, serialize the stdlib in OSSA form.
2021-02-17 19:48:25 -08:00
Michael Gottesman
57654da4db [ownership] On non-Darwin platforms start serializing the stdlib in OSSA as well.
I had to fix a memory corruption bug (see previous commit) to land this. But now
that it is fixed, we are ready!
2021-02-17 15:59:00 -08:00
Richard Wei
e494df2ee6 [AutoDiff] Add differentiability kind to differentiability witnesses and mangle them.
Differentiability witnesses are now keyed by the original function name, the differentiability kind, and the autodiff config.

Updated SIL syntax:
```
differentiability-kind ::= 'forward' | 'reverse' | 'normal' | 'linear'
sil-differentiability-witness ::=
    'sil_differentiability_witness'
    sil-linkage?
    '[' differentiability-kind ']'
    '[' 'parameters' sil-differentiability-witness-function-index-list ']'
    '[' 'results' sil-differentiability-witness-function-index-list ']'
    generic-parameter-clause?
    sil-function-name ':' sil-type
    sil-differentiability-witness-body?
sil-instruction ::=
    'differentiability_witness_function'
    '[' sil-differentiability-witness-function-kind ']'
    '[' differentiability-kind ']'
    '[' 'parameters' sil-differentiability-witness-function-index-list ']'
    '[' 'results' sil-differentiability-witness-function-index-list ']'
    generic-parameter-clause?
    sil-function-name ':' sil-type
```
```console
sil_differentiability_witness [reverse] [parameters 0 1] [results 0] <T where T: Differentiable> @foo : <T> $(T) -> T
differentiability_witness_function [vjp] [reverse] [parameters 0] [results 0] <T where T: Differentiable> @foo : $(T) -> T
```

New mangling:
```swift
  global ::= global generic-signature? 'WJ' DIFFERENTIABILITY-KIND INDEX-SUBSET 'p' INDEX-SUBSET 'r' // differentiability witness
```
```console
$s13test_mangling3fooyS2f_S2ftFWJrSpSr ---> reverse differentiability witness for test_mangling.foo(Swift.Float, Swift.Float, Swift.Float) -> Swift.Float with respect to parameters {0} and results {0}
```

Resolves rdar://74380324.
2021-02-17 18:27:42 -05:00
Michael Gottesman
dd6439d31e [ownership] Change the stdlib to serialize code in ossa form on Darwin.
There is some sort of ASAN issue that this exposes on Linux, so I am going to do
this on Darwin and then debug the Linux issue using ASAN over the weekend/next
week.
2021-02-12 23:20:17 -08:00
AG
a5b804602d Merge pull request #35110 from bitjammer/acgarland/emit-symbol-graph
Add optional -emit-symbol-graph output when emitting modules
2021-02-12 09:00:58 -08:00
Evan Wilde
8b80331c3d Updating tests to use actor
This patch updates the `actor class` spelling to `actor` in almost all
of the tests. There are places where I verify that we sanely handle
`actor` as an attribute though. These include:

 - test/decl/class/actor/basic.swift
 - test/decl/protocol/special/Actor.swift
 - test/SourceKit/CursorInfo/cursor_info_concurrency.swift
 - test/attr/attr_objc_async.swift
 - test/ModuleInterface/actor_protocol.swift
2021-02-10 08:09:13 -08:00
Rintaro Ishizaki
4c9d9337ea [Parse] Fix hash accumulation in decl member parsing
For example, given:

  class C: P {
    func foo() {}
  }

For the outer context (i.e. source file), the interface hash shoule be
'class C : P { }' for the member list, it's '{ func foo ( ) { } }'.
This must be the same regardless delayed parsing is enabled.
2021-02-01 17:46:44 -08:00
Doug Gregor
5f4da4cce6 [Serialize] Serialize foreign async conventions.
Fixes rdar://73476584.
2021-01-29 15:46:14 -08:00
Ashley Garland
69c4fc47cb Add optional -emit-symbol-graph output when emitting modules
rdar://71497047
2021-01-28 09:55:33 -08:00
Egor Zhdan
cb5936688c SourceKit: do not print implementation-only imports
Implementation-only imports are unnecessary in generated module interfaces, since they aren't exported to the module's dependencies, and the module's public API cannot refer to symbols imported as implementation-only.
2021-01-24 20:09:19 +03:00
Robert Widmann
a89c882bdb Merge pull request #35269 from CodaFi/hash-brown
Replace llvm::MD5 with SipHash-2-4
2021-01-21 21:00:56 -08:00
Robert Widmann
73ac8d3531 Replace llvm::MD5 with StableHasher 2021-01-21 17:19:38 -08:00
Doug Gregor
5897dbed5c Update tests for deterministic serialization/printing of members 2021-01-20 13:40:48 -08:00
Rintaro Ishizaki
9a93a3b40f Merge pull request #35394 from rintaro/serialization-source-file-list
[Serialization] Serialize source file information to '.swiftsourceinfo' file
2021-01-15 10:01:46 -08:00
Rintaro Ishizaki
53317633c2 [Tests] Pre split test files
split_files.py changes the newline characters depending on the platform
2021-01-14 14:15:23 -08:00
Ben Barham
fda96eb8a0 [Serialization] Skip opaque types nested in skipped function bodies
Opaque types are gathered and visited separately. As with local types,
only serialize them if they are not within a skipped function body.

Fixes a crash caused when compiling the primary file, where delayed
parsing is explictly disabled.

Resolves rdar://73167790
2021-01-15 07:30:48 +10:00
Rintaro Ishizaki
a9a044c6e3 [Serialization] Serialize fingerprint, mtime, size of the source files 2021-01-13 11:49:52 -08:00
Mishal Shah
daf0061aa0 Bump the Swift Version to 5.4 2021-01-12 10:40:51 -08:00
Saleem Abdulrasool
10b8ce596b shims: invert the condition and prefer the clang path
Because the shims are generally meant for the standard library build,
which requires clang, we can default to using the compiler vended
information for the types.
2020-12-17 18:06:28 -08:00
Doug Gregor
50cdddaf95 [Concurrency] Enable implicit conversion from synchronous -> asynchronous. 2020-12-03 12:44:21 -08:00
John McCall
945011d39f Handle default actors by special-casing layout in IRGen instead
of adding a property.

This better matches what the actual implementation expects,
and it avoids some possibilities of weird mismatches.  However,
it also requires special-case initialization, destruction, and
dynamic-layout support, none of which I've added yet.

In order to get NSObject default actor subclasses to use Swift
refcounting (and thus avoid the need for the default actor runtime
to generally use ObjC refcounting), I've had to introduce a
SwiftNativeNSObject which we substitute as the superclass when
inheriting directly from NSObject.  This is something we could
do in all NSObject subclasses; for now, I'm just doing it in
actors, although it's all actors and not just default actors.
We are not yet taking advantage of our special knowledge of this
class anywhere except the reference-counting code.

I went around in circles exploring a number of alternatives for
doing this; at one point I basically had a completely parallel
"ForImplementation" superclass query.  That proved to be a lot
of added complexity and created more problems than it solved.
We also don't *really* get any benefit from this subclassing
because there still wouldn't be a consistent superclass for all
actors.  So instead it's very ad-hoc.
2020-12-02 18:47:13 -05:00
Varun Gandhi
85d4d1291e [Serialization] Serialize Clang types for non-modular headers. 2020-11-23 11:06:50 -08:00
Varun Gandhi
aef00fb23c [test] Add crasher test for Clang type serialization. 2020-11-19 22:30:47 -08:00
eeckstein
7dd38bb444 Merge pull request #34376 from eeckstein/bug-report-message
update and unify the "please file a bug report" message
2020-10-29 08:37:01 +01:00
Erik Eckstein
f18a9b8ee8 [Concurrency] SIL: add hop_to_executor instruction
This instructions ensures that all instructions, which need to run on the specified executor actually run on that executor.
For details see the description in SIL.rst.
2020-10-28 18:17:43 +01:00
Erik Eckstein
1224cfa61b update and unify the "please file a bug report" message
The new message is:
"Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace."

1. In crash logs we used to print a message which points to the llvm bug tracking page. Now it points to the swift.org bug tracking guidelines.
2. Use the same message in all compiler diagnostics which ask the user to file a bug report.

rdar://problem/70488534
2020-10-23 11:57:22 +02:00