Commit Graph

4590 Commits

Author SHA1 Message Date
Artem Chikin
1600bee812 Merge pull request #63975 from artemcm/ClangModuleValidatePerSeshhhh
Add Swift compilation flags to enable Clang's validate-per-build-session module behavior
2023-03-01 08:40:37 -08:00
Artem Chikin
a828f14160 Update lib/Frontend/ModuleInterfaceLoader.cpp
Co-authored-by: Allan Shortlidge <tshortli@gmail.com>
2023-02-28 13:24:04 -08:00
Artem Chikin
3ea5087e2f Add Swift compilation flags to enable Clang's validate-per-build-session module behavior
Add '-validate-clang-modules-once' and '-clang-build-session-file' corresponding to Clang's '-fmodules-validate-once-per-build-session' and '-fbuild-session-file='. Ensure they are propagated to module interface build sub-invocations.

We require these to be first-class Swift options in order to ensure they are propagated to both: ClangImporter and implicit interface build compiler sub-invocations.

Compiler portion of rdar://105982120
2023-02-28 13:19:05 -08:00
QuietMisdreavus
164e93e0a7 Merge pull request #63726 from apple/QuietMisdreavus/skip-proto-impls
[SymbolGraphGen] add new flag to skip "protocol implementation" symbols

rdar://59899968
2023-02-28 10:50:01 -07:00
swift-ci
d44d972171 Merge remote-tracking branch 'origin/main' into rebranch 2023-02-27 15:33:32 -08:00
Arnold Schwaighofer
1dfc30eb1f Merge remote-tracking branch 'origin/main' into rebranch 2023-02-27 09:18:56 -08:00
Doug Gregor
0d6de9e4a1 [Diagnostics] Switch swift-syntax diagnostic style to grouped diagnostics
Use the new "grouped diagnostics" feature of the swift-syntax
diagnostic rendering to emit printed diagnostics under the
swift-syntax diagnostic style. This emits macro expansion buffers as
text to the terminal, inset in a box where the macro was expanded, so
that there is more context for understanding how the macro was
expanded and what went wrong inside it.
2023-02-27 08:56:21 -08:00
Arnold Schwaighofer
8a7b8dc39c IRGen: Put type descriptors in their own section to collocated them
rdar://104697150
2023-02-25 07:51:30 -08:00
swift-ci
e3b21037be Merge remote-tracking branch 'origin/main' into rebranch 2023-02-22 08:13:16 -08:00
Artem Chikin
1e49c3bfea Merge pull request #63735 from artemcm/PrivatePeerCandidateDiscovery
[Dependency Scanning] Detect candidate files for `.private` interface files also
2023-02-22 08:09:03 -08:00
Artem Chikin
6d59868a1d [Dependency Scanning] Detect candidate files for .private interface files also 2023-02-21 09:58:33 -08:00
swift-ci
76b7966ccb Merge remote-tracking branch 'origin/main' into rebranch 2023-02-20 22:16:03 -08:00
Alejandro Alonso
10f85db170 Merge pull request #63734 from Azoy/builtin-flag
[Frontend] Add option to explicitly import Builtin
2023-02-20 22:08:02 -08:00
swift-ci
2f942098d5 Merge remote-tracking branch 'origin/main' into rebranch 2023-02-20 15:33:54 -08:00
swift-ci
4bfd4e3281 Merge pull request #63785 from kavon/strict-concurrency-minimal-cherry
Use `-strict-concurrency=minimal` as the default for Swift 5.x mode.
2023-02-20 15:20:25 -08:00
Doug Gregor
165827ce9d Use -strict-concurrency=minimal as the default for Swift 5.x mode.
Emulate the behavior of Swift 5.5/5.6 by default, using
`-strict-concurrency=minimal`.
2023-02-20 11:14:46 -08:00
swift-ci
1e02c3ba40 Merge remote-tracking branch 'origin/main' into rebranch 2023-02-20 10:55:02 -08:00
Artem Chikin
8e0e51a0fd Merge pull request #63697 from artemcm/SeparateExplicitModuleInputMaps
Separate parsing out Swift and Clang modules from the explicit modulemap
2023-02-20 10:46:17 -08:00
Artem Chikin
a0b5dd4241 Separate parsing out Swift and Clang modules from the explicit module map
Since https://github.com/apple/swift/pull/63178 added support for Clang modules in the explicit module map, it is possible for there to be multiple modules with the same name: a Swift module and a Clang module. The current parsing logic just overwrites the corresponding entry module in a hashmap so we always only preserved the module that comes last, with the same name.

This change separates the parsing of the modulemap JSON file to produce a separate Swift module map and Clang module map. The Swift one is used by the 'ExplicitSwiftModuleLoader', as before, and the Clang one is only used to populate the ClangArgs with the requried -fmodule-... flags.
2023-02-17 09:03:53 -08:00
swift-ci
c8f960049f Merge remote-tracking branch 'origin/main' into rebranch 2023-02-16 16:34:26 -08:00
swift-ci
7d690a45e1 Merge pull request #62723 from valeriyvan/ArgsToFrontendOutputsConverter
Fix bug: The '?:' operator has a lower priority than the '==' operator.
2023-02-16 16:34:15 -08:00
Alejandro Alonso
023c40c809 Add option to explicitly import Builtin 2023-02-16 15:23:45 -08:00
Victoria Mitchell
4ec3e5291f add new flag to skip "protocol implementation" symbols
rdar://59899968
2023-02-16 14:00:04 -07:00
swift-ci
5acf1c372e Merge remote-tracking branch 'origin/main' into rebranch 2023-02-16 12:54:58 -08:00
Rintaro Ishizaki
c82e17acb7 Merge pull request #63695 from rintaro/options-load-plugin-executable
[Option] Add compiler option to specify executable plugins
2023-02-16 12:35:35 -08:00
swift-ci
3d54aef31f Merge remote-tracking branch 'origin/main' into rebranch 2023-02-16 07:14:44 -08:00
nate-chandler
ba0872f354 Merge pull request #63700 from nate-chandler/stdlib/enable-lexical-diagnostics
[Frontend] Relaxed flag combination check.
2023-02-16 07:02:33 -08:00
Valeriy Van
117ea88923 Fix bug: The '?:' operator has a lower priority than the '==' operator. 2023-02-16 09:08:51 +02:00
swift-ci
bc596d86dc Merge remote-tracking branch 'origin/main' into rebranch 2023-02-15 22:53:55 -08:00
Nate Chandler
1246a152a4 [Frontend] Relaxed flag combination check.
Previously, combining `-enable-lexical-lifetimes=false` with
`-enable-experimental-move-only` resulted in an error.  But this is a
valid combination: the former sets the `LexicalLifetimes` option to
`DiagnosticMarkersOnly`, which is what `-enable-experimental-move-only`
relies on.
2023-02-15 16:13:47 -08:00
Rintaro Ishizaki
bf0a62f3ce [Option] Add compiler option to specify executable plugins
Add a compiler option `-load-plugin-executable <path>#<module names>`.
Where '<path>' is a path to a plugin executable, '<module-name>' is a
comma-separated module names the plugin provides.

Nothing is using it at this point. Actual plugin infratructure are
introduced in follow-up commits
2023-02-15 14:43:21 -08:00
Allan Shortlidge
b11dcb985e Frontend: Add a rebuild diagnostic explaining why the adjacent swiftmodule was ignored.
In https://github.com/apple/swift/pull/42486 new behavior was introduced to ignore adjacent .swiftmodule files in the SDK. This behavior has caught a few people off guard so it seems like there should be diagnostics clarifying why a rebuild is occurring in this scenario.

Resolves rdar://105477473
2023-02-15 10:06:39 -08:00
swift-ci
0f633ce557 Merge remote-tracking branch 'origin/main' into rebranch 2023-02-11 22:54:15 -08:00
Ben Barham
e15ea7ae4d Merge pull request #63403 from bnbarham/so-much-re-index
[Index] Prevent re-indexing system modules repeatedly
2023-02-11 22:40:47 -08:00
swift-ci
8c038a1802 Merge remote-tracking branch 'origin/main' into rebranch 2023-02-11 15:34:18 -08:00
Doug Gregor
7ea0e3f096 Switch GeneratedSourceInfo ranges over to CharSourceRange.
Macro expansion buffers, along with other generated source buffers,
need more precise "original source ranges" that can be had with the
token-based `SourceRange`. Switch over to `CharSourceRange` and provide
more thoughtfully-determined original source ranges.
2023-02-11 11:23:26 -08:00
swift-ci
e1cd7779f7 Merge remote-tracking branch 'origin/main' into rebranch 2023-02-10 00:35:26 -08:00
Doug Gregor
4705183149 [Macros] Add plugin search paths to load plugin modules by name.
Introduce `-plugin-path <path>` to add a search path where we will look
for compiler plugins. When resolving an external macro definition, look
for libraries in these search paths whose names match the module name
of the macro.

Implements rdar://105095761.
2023-02-09 13:47:26 -08:00
Ben Barham
6269643b4d [Index] Prevent re-indexing system modules repeatedly
If a module was first read using the adjacent swiftmodule and then
reloaded using the swiftinterface, we would do an up to date check on
the adjacent module but write out the unit using the swiftinterface.
This would cause the same modules to be indexed repeatedly for the first
invocation using a new SDK. On the next run we would instead raad the
swiftmodule from the cache and thus the out of date check would match
up.

The impact of this varies depending on the size of the module graph in
the initial compilation and the number of jobs started at the same time.
Each SDK dependency is re-indexed *and* reloaded, which is a drain on
both CPU and memory. Thus, if many jobs are initially started and
they're all going down this path, it can cause the system to run out of
memory very quickly.

Resolves rdar://103119964.
2023-02-09 11:49:13 -08:00
swift-ci
8e7eae199e Merge remote-tracking branch 'origin/main' into rebranch 2023-02-08 07:33:02 -08:00
Artem Chikin
c1599fede4 Add -swift-module-file frontend flag for explicit Swift module dependencies 2023-02-07 11:29:09 -07:00
swift-ci
d4f981232a Merge remote-tracking branch 'origin/main' into rebranch 2023-02-03 15:35:20 -08:00
Ellie Shin
258b13b05d Merge pull request #63355 from apple/es-export-pr
Add access level and scope checks to package types
2023-02-03 15:20:29 -08:00
swift-ci
e025f94e32 Merge remote-tracking branch 'origin/main' into rebranch 2023-02-02 17:33:57 -08:00
Richard Wei
4480d89536 [Macros] Emit plugin dependencies to loaded module trace. (#63367)
Emit plugins loaded with `-load-plugin-library` to loaded module trace.

Resolves rdar://102212316.
2023-02-03 09:16:14 +08:00
Ellie Shin
be20333a87 Add access level and scope checks to package types
Resolves rdar://104617227
2023-02-02 16:51:17 -08:00
swift-ci
409f9c7f40 Merge remote-tracking branch 'origin/main' into rebranch 2023-02-01 14:34:59 -08:00
Ben Barham
8c7f331ba7 Merge pull request #63339 from bnbarham/wd-hack
[Frontend] Split -working-directory<path>
2023-02-01 14:16:47 -08:00
Ben Barham
b5caa97b6b [Frontend] Split -working-directory<path>
Clang no longer supports `-working-directory<path>`. Split this argument
into `-working-directory <path>` so that clients passing the old
argument still work.
2023-01-31 16:17:11 -08:00
swift-ci
ef62fdf232 Merge remote-tracking branch 'origin/main' into rebranch 2023-01-31 11:53:53 -08:00