Commit Graph

4565 Commits

Author SHA1 Message Date
swift-ci
68536b641d Merge remote-tracking branch 'origin/main' into rebranch 2024-08-01 09:54:16 -07:00
Saleem Abdulrasool
8d9c5e178c Merge pull request #75406 from z2oh/fix-sourcekitd-file-locks-windows
Fix sourcekitd persistent file-locks on Windows
2024-08-01 09:51:17 -07:00
swift-ci
09d9972801 Merge remote-tracking branch 'origin/main' into rebranch 2024-07-31 09:16:05 -07:00
Artem Chikin
bd4827f7a3 Merge pull request #75556 from artemcm/DisableScannerValidationNonCachingBuild
[Dependency Scanning] Disable validation of Swift dependency modules' existing pre-built candidate binary module files in the scanner, on a non-caching build.
2024-07-31 08:55:51 -07:00
swift-ci
8465f54190 Merge remote-tracking branch 'origin/main' into rebranch 2024-07-30 16:56:50 -07:00
Steven Wu
61e725f57e [Caching] Use swift-frontend as executable name in replays
Don't try to figure out the executable names during replay from
libSwiftScan.dylib. The actual executable path for the process actually
doesn't matter in this case to reconstruct the invocation and might
actually be misleading.

Just use `swift-frontend` as a placeheader executable name for
in-process cache replay.

rdar://132758308
2024-07-30 10:39:25 -07:00
Artem Chikin
a2dc674723 [Dependency Scanning] Disable validation of Swift dependency modules' existing pre-built candidate binary module files in the scanner, on a non-caching build.
As-is, this default interferes with the incremental build machinery which conservatively assumes that binary module dependencies must cause dependents to be re-built.
2024-07-29 17:16:54 -07:00
Jeremy Day
221c7039bd Add explicit OpenSourcesAsVolatile option 2024-07-26 17:02:04 -07:00
swift-ci
809f799599 Merge remote-tracking branch 'origin/main' into rebranch 2024-07-23 15:54:50 -07:00
Allan Shortlidge
a621059f80 ModuleInterface: Avoid crashing on invalid extensions in lazy typechecking mode.
With `-experimental-lazy-typecheck` specified during module interface emission,
`collectProtocols()` may be the first piece of code to request the extended
type for a given extension and it therefore needs to ignore invalid extensions
and ensure that diagnostics are emitted.

Also, add some `PrettyStackTrace` coverage to `ModuleInterfaceSupport.cpp` to make
investigating future issues easier.

Resolves rdar://126232836.
2024-07-23 10:32:50 -07:00
Jeremy Day
a22419f1d0 Fix sourcekitd persistent file-locks on Windows 2024-07-23 09:59:41 -07:00
swift-ci
5de94d61f2 Merge remote-tracking branch 'origin/main' into rebranch 2024-07-18 07:11:25 -07:00
Holly Borla
5e4277a08d [Macros] Narrow the carve-out for DebugDescription’s use of symbol
linkage markers.
2024-07-17 22:19:18 -07:00
swift-ci
89f5c24fef Merge remote-tracking branch 'origin/main' into rebranch 2024-07-16 14:55:17 -07:00
Owen Voorhees
5490b44772 Allow enabling embedded Swift without WMO when not generating SIL
This allows modes like -index-file to work the same way they do when not using embedded Swift
2024-07-15 17:49:47 -07:00
swift-ci
892505350e Merge remote-tracking branch 'origin/main' into rebranch 2024-07-13 13:46:10 -07:00
Allan Shortlidge
c5591947fd Frontend: Fix typos in -enable-cmo-* option definitions. 2024-07-12 09:44:57 -07:00
swift-ci
9ced1b0ed3 Merge remote-tracking branch 'origin/main' into rebranch 2024-07-12 08:14:29 -07:00
Saleem Abdulrasool
7cc7e2bd3a Merge pull request #72352 from compnerd/sysroot
Driver: introduce `-sysroot` option for non-Darwin targets
2024-07-12 08:08:59 -07:00
swift-ci
31eba09b32 Merge remote-tracking branch 'origin/main' into rebranch 2024-07-11 21:14:02 -07:00
Allan Shortlidge
a8a1eb2666 Merge pull request #75182 from tshortli/warn-soft-deprecated
Introduce `-warn-soft-deprecated` option
2024-07-11 21:06:30 -07:00
Allan Shortlidge
10d249b31a Frontend: Introduce a -warn-soft-deprecated option.
This option should cause references to declarations that are deprecated in
future OS versions to be diagnosed.
2024-07-11 14:03:19 -07:00
swift-ci
f3edba0452 Merge remote-tracking branch 'origin/main' into rebranch 2024-07-11 12:15:10 -07:00
Ellie Shin
cb776089cb Merge pull request #75154 from swiftlang/elsh/drop-exp-prefix
Drop experimental prefixes from PackageCMO flags.
2024-07-11 12:12:29 -07:00
swift-ci
25be15072e Merge remote-tracking branch 'origin/main' into rebranch 2024-07-11 09:56:08 -07:00
Artem Chikin
0d254174c6 Merge pull request #75146 from artemcm/DepScanNoGlobalLLVMOpts
[Dependency Scanning] Avoid configuration (and reset) of LLVM Options by the scanner
2024-07-11 09:45:13 -07:00
Steven Wu
156b0a9b47 Merge pull request #75133 from cachemeifyoucan/eng/PR-131408266
[Modules] Avoid false swift module sharing
2024-07-11 09:36:23 -07:00
Ben Barham
2715d0e9d6 Merge branch 'main' into 20240710-main-to-rebranch
Conflicts:
  - `test/Interop/Cxx/class/method/methods-this-and-indirect-return-irgen-itanium.swift`
    previously fixed on rebranch, now fixed on main (slightly differently).
2024-07-10 20:42:09 -07:00
Ellie Shin
18681c43fb Drop experimental prefixes from PackageCMO flags.
Deprecate experimental- flags with prompts to use the proper flags.

rdar://131498517
2024-07-10 16:19:16 -07:00
Shubham Sandeep Rastogi
d443fdd501 Merge pull request #74202 from rastogishubham/MCCASReplay
Add replay support for MCCAS in Swift.
2024-07-10 15:21:51 -07:00
Steven Wu
a32dd9539b [Modules] Avoid false swift module sharing
When the swiftmodule is built with different clang importer arguments,
they can have the same module hash, causing them to be wrongly re-used even
they contains different interfaces. Add ReducedExtraArgs to the module hash to
disambiguate them.

However, some Xcc arguments, most commonly `-D` options do not affect the
swiftmodule being generated. Do not pass `-Xcc -DARGS` to swift
interface compilation to reduce the amount of module variants in the
build.

rdar://131408266
2024-07-10 14:48:12 -07:00
Artem Chikin
6d0f52152a [Dependency Scanning] Avoid configuration (and reset) of LLVM Options by the scanner
The scanning action does not have any need for handling `-llvm` options, since it will never perform any code-gen. LLVM option processing relies on global option parsing structures, and the scanner has needed to carefully attempt to synchronize access to them. This change guards the configuration of LLVM options to not happen at all for dependency scanning actions, and removes calls to `llvm::cl::ResetAllOptionOccurrences()` that were previously needed.

Resolves rdar://120754696
2024-07-10 14:33:48 -07:00
Saleem Abdulrasool
c8bec5b12f Driver: introduce -sysroot option for non-Darwin targets
This introduces a secondary flag `-sysroot` for the non-Darwin targets,
primarily Unicies. The intention here is to support a split `-sdk`,
`-sysroot` model where the `-sdk` parameter provides the Swift "SDK"
which augments the native platform's C sysroot which is indicated as
`-sysroot`. For the case of Android, this would allow us to provide a
path to the NDK sysroot and the Swift SDK allowing us to cross-compile
Android binaries from Windows.
2024-07-10 11:03:18 -07:00
Shubham Sandeep Rastogi
8dabf58993 Add support for MCCAS in replay logic for swift
This patch adds support for MCCAS when a cache hit is encountered when
trying to replay a compilation, and uses the MCCAS serialization code
to materialize the object file that is the main output of the
compilation.
2024-07-10 10:19:10 -07:00
Steven Wu
9318937498 Merge pull request #75082 from cachemeifyoucan/eng/PR-131214106
[Macro] Fix bugs in macro dependency scanning
2024-07-09 15:33:01 -07:00
Shubham Sandeep Rastogi
31baf4fb54 Store MCCAS ObjectRef as CASOutputBackend's main output.
This patch stores the MCCAS ObjectRef as the main output of the
CASOutputBackend when MCCAS is enabled.
2024-07-09 13:38:11 -07:00
Shubham Sandeep Rastogi
edae2e66d3 Filter object file from CASOutputBackend in MCCAS.
When MCCAS is used, filter the object file from the CASOutputBackend
because we do not want to write the object file in the CAS, we want
to associate the MCCAS top level CAS Object to the main output of the
CASOutputBackend.
2024-07-09 13:38:08 -07:00
Steven Wu
da10a02231 [Macro] Fix bugs in macro dependency scanning
Fix few issues from previous implementation from explicit module build
with macros and accurate macro dependency scanning in
https://github.com/swiftlang/swift/pull/73421.

First, there is a crash when propagating the macro dependencies. It
turns out that the current macro plugin implementation doesn't need the
downstream users to know about the plugin search path from the upstream
dependencies.

Secondly, fix a bug that the swiftinterface that has macro usage won't
build because the build command doesn't inherit the plugin search path
option.

Finally, add JSON output for macro dependencies so it is easier to
debug the macro dependencies.

rdar://131214106
2024-07-09 10:37:27 -07:00
Steven Wu
30737eb396 [Caching] Support swift style diagnostics for swift caching
Add support for swift style diagnostics for swift caching. This includes
pre-populate the GeneratedSourceInfo with macro name so it doesn't need
to infer from an ASTNode, which the caching mechanism cannot preserve.

Still leave the default diagnostic style to LLVM style because replaying
swift style diagnostics is still very slow and including parsing source
file using swift-syntax.

rdar://128615572
2024-07-08 16:15:44 -07:00
Steven Wu
8ff3b05766 [NFC] Factor out DiagnosticBridge between swift-syntax
Refactor out the code that handles printing diagnostics from
swift-syntax.
2024-07-08 16:15:44 -07:00
swift-ci
da8ffc48a1 Merge remote-tracking branch 'origin/main' into rebranch 2024-07-07 13:12:29 -07:00
Slava Pestov
7ba2b76966 Basic: Add -analyze-request-evaluator flag to dump request cache statistics 2024-07-06 23:35:39 -04:00
swift-ci
9f58e135a3 Merge remote-tracking branch 'origin/main' into rebranch 2024-07-03 13:16:01 -07:00
Allan Shortlidge
a6faa5a4bf Frontend: Only print the -project-name flag in private and package interfaces.
Resolves rdar://130992944.
2024-07-03 09:10:48 -07:00
Allan Shortlidge
f6e30ea83c Frontend: Refactor how flags are saved for module interfaces.
There are two axes on which a saved frontend flag can be categorized for
printing in a `.swiftinterface` file:

1. Whether the flag is "ignorable" or not.
2. Which levels of interface the flag should be in (public, package).

This refactor ensures that those two axes are modeled independently and
prepares the infrastructure to allow flags to appear in the private and package
interfaces without being included in the public interface.
2024-07-03 09:10:48 -07:00
Allan Shortlidge
a28b729594 Frontend: Remove unused ModuleInterfaceOptionIgnorablePrivate. 2024-07-03 08:51:02 -07:00
swift-ci
cd01941fbb Merge remote-tracking branch 'origin/main' into rebranch 2024-07-01 01:35:37 -07:00
Ellie Shin
8e914d72a4 Merge pull request #74827 from swiftlang/elsh/no-pkg-name-interfaces
Option to disable printing package-name in public or private interface.
2024-07-01 01:22:45 -07:00
Ellie Shin
87452c6cbf Remove string compute logic 2024-06-28 20:30:38 -07:00
Ellie Shin
ea8a05399f Drop package-name if needed in SaveModuleInterfaceArgs 2024-06-28 20:24:28 -07:00