Commit Graph

1260 Commits

Author SHA1 Message Date
David Ungar
98b86c63d1 Use the initial value of EnableFineGrainedDependencies as the default. 2020-01-23 12:12:17 -08:00
swift-ci
810bf82c09 Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-23 00:37:05 -08:00
Keith Smiley
8c8c9784d6 Add -no-whole-module-optimization (#29362)
This adds an argument to allow negating `-whole-module-optimization`.
This is useful for cases where it's easier to add an extra flag to your
swiftc invocation rather than removing the original one.
2020-01-23 00:13:00 -08:00
swift-ci
4a1f9f9b04 Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-22 23:24:37 -08:00
David Ungar
f696aabffb Merge pull request #29246 from davidungar/fine-grained-off-but-w-tests-rb
[Incremental] Fixes for fine-grained dependencies + tests for them, but off-by-default
2020-01-22 23:21:33 -08:00
David Ungar
7f4205e9dc grammar 2020-01-22 21:38:21 -08:00
David Ungar
0c776a4a86 Add a verb. 2020-01-22 21:31:46 -08:00
Erik Eckstein
bbfaccda4b Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-22 08:25:23 +01:00
Devin Coughlin
655d89b146 [Driver/Frontend] Add Driver support for macCatalyst and library search paths
Add support in the driver and frontend for macCatalyst target
targets and library search paths.

The compiler now adds two library search paths for overlays when compiling
for macCatalyst: one for macCatalyst libraries and one for zippered macOS
libraries. The macCatalyst path must take priority over the normal macOS path
so that in the case of 'unzippered twins' the macCatalyst library is
found instead of the macOS library.

To support 'zippered' builds, also add support for a new -target-variant
flag. For zippered libraries, the driver invocation takes both a -target and a
-target-variant flag passes them along to the frontend. We support builds both
when the target is a macOS triple and the target variant is macCatalyst and
also the 'reverse zippered' configuration where the target is macCatalyst and the
target-variant is macOS.
2020-01-21 18:28:17 -08:00
swift-ci
74e66dcd1f Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-19 13:03:49 -08:00
David Zarzycki
f185dd66f1 [QoI] Fix -Wrange-loop-analysis warnings 2020-01-19 13:29:23 -05:00
David Ungar
cbd458c968 Make tests more deterministic by sorting jobs before scheduling 2020-01-16 13:20:35 -08:00
David Ungar
8c2c4ab391 Fixes for fine-grained dependencies 2020-01-16 13:20:27 -08:00
swift-ci
b03a280b3b Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-13 21:23:26 -08:00
Slava Pestov
b73adbe700 Driver: Actually pass -require-explicit-availability{,-target} to frontend jobs
Unless you do this, the flag has no effect when used with the driver;
it only worked in conjunction with -Xfrontend.

Noticed while working on <rdar://problem/58490723>.
2020-01-13 21:50:10 -05:00
swift-ci
e280ebe9b7 Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-12 21:44:31 -08:00
David Ungar
cc89dad526 Fine-grained and driver fixes.
Restructure fine-grained-dependencies to enable unit testing

Get frontend to emit correct swiftdeps file (fine-grained when needed) and only emit dot file for -emit-fine-grained-dependency-sourcefile-dot-files

Use deterministic order for more information outputs.

Set EnableFineGrainedDependencies consistently in frontend.

Tolerate errors that result in null getExtendedNominal()

Fix memory issue by removing node everywhere.

Break up print routine

Be more verbose so it will compile on Linux.

Sort batchable jobs, too.
2020-01-11 21:57:14 -08:00
swift-ci
e0c29988fe Merge remote-tracking branch 'origin/master' into master-rebranch 2020-01-10 15:04:04 -08:00
Ashley Garland
7a3a0a9e23 Symbol graph support
Adds a tool `swift-symbolgraph-extract` that reads an existing Swift
module and prints a platform- and language-agnostic JSON description of
the module, primarly for documentation.

Adds a small sub-library `SymbolGraphGen` which houses the core
implementation for collecting relevant information about declarations.
The main entry point is integrated directly into the driver as a mode:
the tool is meant to be run outside of the normal edit-compile-run/test
workflow to avoid impacting build times.

Along with common options for other tools, unique options include
`pretty-print` for debugging, and a `minimum-access-level` options for
including internal documentation.

A symbol graph is a directed graph where the nodes are symbols in a
module and the edges are relationships between them. For example, a
`struct S` may have a member `var x`. The graph would have two nodes for
`S` and `x`, and one "member-of" relationship edge. Other relationship
kinds include "inherits-from" or "conforms to". The data format for a
symbol graph is still under development and may change without notice
until a specificiation and versioning scheme is published.

Various aspects about a symbol are recorded in the nodes, such as
availability, documentation comments, or data needed for printing the
shapes of declarations without having to understand specifics about the
langauge.

Implicit and public-underscored stdlib declarations are not included by
default.

rdar://problem/55346798
2020-01-10 09:53:37 -08:00
swift_jenkins
e39684f3f8 Merge remote-tracking branch 'origin/master' into master-next 2020-01-05 21:18:56 -08:00
Doug Gregor
51bbaebd08 Merge pull request #28972 from kastiglione/dl/correct-batch-mode-partitiion-count-calculation
Adjust batch mode partition count calculation
2020-01-05 21:05:00 -08:00
Dave Lee
477763e7ed DivideRoundingUp 2020-01-04 06:53:37 -08:00
swift_jenkins
81c0ed297a Merge remote-tracking branch 'origin/master' into master-next 2020-01-02 10:19:08 -08:00
Dave Lee
d06d0394ed Remove incomplete bit about properties 2020-01-01 23:39:21 -08:00
Dave Lee
8a6f44da6b Extract DivideUp lambda 2020-01-01 23:35:12 -08:00
Dave Lee
17655b7c3e Correct batch mode partitiion count calculation 2019-12-31 07:32:15 -08:00
Saleem Abdulrasool
7d8aac60ca disambiguate some type shadowing (NFCI)
Adjust the type shadowing identified by GCC 7.  The declaration shadows
a type which changes the meaning of the identifier subsequently.
2019-12-23 15:34:55 -08:00
swift_jenkins
c216f77230 Merge remote-tracking branch 'origin/master' into master-next 2019-12-20 13:59:06 -08:00
Mishal Shah
97a56902d4 Merge pull request #28902 from davidungar/windows-compatible-dummy-file
[Driver, Incremental] Make dummy make-file dependencies path OK for Windows
2019-12-20 13:44:22 -08:00
David Ungar
419240f4c3 Make path suitable for Windows 2019-12-20 10:47:12 -08:00
swift_jenkins
21401ad11f Merge remote-tracking branch 'origin/master' into master-next 2019-12-19 11:59:47 -08:00
Vinicius Vendramini
aebfb53966 Ast dump ignore wmo (#20596)
* Ignore -wmo when passing -dump-ast

* Cleanup on driver diagnostics

* Remove the FIXME.

* Add support for ignoring `-index-file`

* Revert unrelated formatting changes

* Revert back to only ignoring `-wmo`

Ignoring both `-wmo` and `-index-file` will be harder than just `-wmo`. This is because when calling the compiler and passing `-index-file` after `-dump-ast`, the option gets un-ignored by `Driver::buildOutputInfo`. Therefore, we will just ignore `-wmo` for now.

* Add tests, inspired by `Driver/batch_mode_with_WMO_or_index.swift`
2019-12-19 11:47:47 -08:00
swift_jenkins
9a7d347076 Merge remote-tracking branch 'origin/master' into master-next 2019-12-19 09:40:15 -08:00
David Ungar
b1f6a8941c Change to defaulting on 2019-12-19 07:38:59 -08:00
swift_jenkins
f421f1f3e9 Merge remote-tracking branch 'origin/master' into master-next 2019-12-19 00:59:44 -08:00
David Ungar
0291b36739 off-by-default & fix tests 2019-12-18 22:35:26 -08:00
David Ungar
2a79331ac3 add -enable/disable-only-one-dependency-file flag, on by default 2019-12-18 16:07:51 -08:00
swift_jenkins
3b15474d0b Merge remote-tracking branch 'origin/master' into master-next 2019-12-13 00:20:06 -08:00
David Ungar
73a46ce57e Revert "[Incremental, Driver] Only emit a real make-style dependency file for one frontend job." 2019-12-12 22:26:25 -08:00
swift_jenkins
fa658f594f Merge remote-tracking branch 'origin/master' into master-next 2019-12-11 21:39:59 -08:00
David Ungar
4c365a7735 Merge pull request #28702 from davidungar/only-one-dependency-file
[Incremental, Driver] Only emit a real make-style dependency file for one frontend job.
2019-12-11 21:21:41 -08:00
David Ungar
cc83751ac5 Avoid need to check errors on dummy file creation. 2019-12-11 10:22:22 -08:00
David Ungar
ecb74b54ae Make the new behavior the default. 2019-12-10 23:17:42 -08:00
David Ungar
46687189a7 -only-one-dependency-file causes only the first frontend job to emit a real dependency file. 2019-12-10 22:52:57 -08:00
Joe Groff
fb34044408 Merge remote-tracking branch 'origin/master' into master-next 2019-12-10 12:46:41 -08:00
Saleem Abdulrasool
e2d208d358 IRGen,Driver: extract tool usage into a variable (NFC)
autolink-extract is needed on ELF (and windows-cygnus).  However, WASM
also has gone down this path and did not actually indicate that it
needed the autolink extract handling.  Extract the handling check into a
variable which helps readability.
2019-12-09 21:46:25 -08:00
Doug Gregor
f451dc4177 Merge pull request #28646 from DougGregor/print-target-info-paths
[Frontend] Add some paths to the output of -print-target-info.
2019-12-09 10:00:04 -08:00
Doug Gregor
c92600b38b [Frontend] Add some paths to the output of -print-target-info.
Add various target-specific and compiler-determined paths to the output
of `-print-target-info`, such as the runtime resource path, SDK path, and
runtime library paths.
2019-12-08 21:10:30 -08:00
David Ungar
9bfed89e8c markTransitive & markExternal return the jobs, unfmt 2019-12-08 11:15:51 -08:00
David Ungar
0771d96986 Format 2019-12-08 10:14:24 -08:00