Commit Graph

29 Commits

Author SHA1 Message Date
practicalswift
183da818df [Python] Fix five classes of PEP-8 violations (E101/E111/E128/E302/W191)
* E101: indentation contains mixed spaces and tabs
* E111: indentation is not a multiple of four
* E128: continuation line under-indented for visual indent
* E302: expected 2 blank lines, found 1
* W191: indentation contains tabs
2016-03-07 22:36:23 +01:00
Jordan Rose
839dfc05d3 [test] Tighten up test/Driver/filelists.swift.
- Stronger CHECK lines.
- Don't try to link when there's a fake frontend.
- Give the fake 'ld' an explicit .py suffix, and use a symlink to access it, which
  uncovered the first two problems.
2016-02-11 20:18:15 -08:00
Jordan Rose
9c6cdd3296 [Driver] Fix references to Clang's profiling runtime.
(1) We no longer put the Clang version string in our copy of or symlink to
    Clang's resource directory.
(2) Newer Clang builds now generate a separate library for the Apple OS
    simulators, instead of a fat binary.

We still need a proper end-to-end test for this, but that depends on
building compiler-rt with Swift, which isn't a standard config yet.
2016-01-28 20:00:41 -08:00
practicalswift
e2ddfb00d2 Invoke "/usr/bin/env bash" instead of "/bin/bash".
Prior to this commit:

```
$ git grep '#!/usr/bin/env bash' | wc -l
8
$ git grep '#!/bin/bash' | wc -l
1
```

After to this commit:

```
$ git grep '#!/usr/bin/env bash' | wc -l
9
$ git grep '#!/bin/bash' | wc -l
0
```
2016-01-15 23:10:00 +01:00
Jordan Rose
ce34ed593c [Driver] Use filelists for the *output* of a threaded WMO build.
This is only the driver side of the work; the frontend doesn't understand
this new -output-filelist option yet. Next commit.

More https://bugs.swift.org/browse/SR-280.
2016-01-13 18:39:24 -08:00
Jordan Rose
062713d600 [Driver] Use -filelist for the merge-module step.
More https://bugs.swift.org/browse/SR-280.
2016-01-13 18:39:24 -08:00
Jordan Rose
6067120f81 [Driver] Emit filelists for Jobs that want them (inputs).
This is the other half of the previous commit: we can use -filelist for
linking on Darwin.

More https://bugs.swift.org/browse/SR-280.
2016-01-13 18:39:24 -08:00
Jordan Rose
fe00083eb1 [Driver] Actually write out the source file list file.
This is simply a newline-separated list of files, matching the format
from Darwin ld's -filelist option.

Part 2 of https://bugs.swift.org/browse/SR-280.
2016-01-12 19:20:50 -08:00
Jordan Rose
16a647249d [Driver] Actually set extra environment variables in single-command mode.
Implementing this for the general case either requires duplicating the
existing environment, or modifying TaskQueue to support "extra environment"
settings. Since we don't actually have any use cases for this yet, I'm
leaving it unimplemented for now.

Rest of rdar://problem/23588774
2015-12-04 12:18:47 -08:00
Jordan Rose
877b51dfbd [Driver] If lib/arc/ isn't present next to Swift, look next to Xcode's Clang.
Deploying to older OSs requires linking in a compatibility library called
"arclite", but this library isn't open source and won't be distributed with
our open source downloads. Fall back to the version in Xcode.

The next step is to remove the local symlink used in builds, but I wanted to
handle that separately.

rdar://problem/23421436
2015-11-06 18:46:34 -08:00
Dmitri Hrybenko
f46f16ae82 stdlib: implement new print() API
rdar://20775683

Swift SVN r28309
2015-05-08 01:37:59 +00:00
Jordan Rose
cadd851e1b [Driver] Warn when using -incremental without a proper output file map.
Just so people don't try to use it on the command line and then get
surprised.

Swift SVN r25508
2015-02-24 20:02:26 +00:00
Connor Wakamo
7c52fa8760 Switched over to direct execution in the RUN line for the -parseable-output Unicode test.
lit now supports Unicode characters in RUN lines, so this works now without an
intermediate shell script.

Swift SVN r22737
2014-10-14 23:40:16 +00:00
Connor Wakamo
50a39c3401 Added a test of the driver's parseable output when paths contain non-ASCII characters.
This test ensures that the file name is not improperly escaped when generating
JSON output.

In order to work around Unicode issues with lit, the swiftc invocation is
actually done in a shell script which the test invokes.

This is follow-up to <rdar://problem/18266570>.

Swift SVN r21899
2014-09-12 02:02:55 +00:00
Connor Wakamo
497eeffa55 [driver] Allow -force-single-frontend-invocation and -emit-objc-header[-path] to be used together.
Added support in Driver which allows -force-single-frontend-invocation and
-emit-objc-header[-path] to be used together in a single invocation.

Added support in tools::Swift to pass -emit-objc-header-path if an Objective-C
header was requested; this is only valid in OutputInfo::Mode::SingleCompile
mode, and an assertion enforces this.

Added a test which ensures that the same header is emitted in with
-force-single-frontend-invocation and without it.

Swift SVN r20185
2014-07-18 22:04:29 +00:00
Jordan Rose
3f97d035fd [Driver] Allow falling back to / for -i mode if xcrun says to.
After a long discussion with Daniel, the behavior of "xcrun --sdk macosx"
will always pick the best  SDK to use with the Swift found by "xcrun swift".
The only case in which we have a problem is if someone has explicitly
specified the path to a Swift binary, or if someone is on 10.9 but only has
the command line tools installed (in which case they lose anyway).

In order to keep this from polluting the tests, I've changed %swift_driver
to set SDKROOT to an empty path by default. Use -sdk if you need to provide
an SDK in a test, not the SDKROOT environment variable. (This is what
everyone has been doing so far.)

This is still limited to -i and REPL modes; for compilation an explicit SDK
is still required.

<rdar://problem/14395800>

Swift SVN r18770
2014-06-10 01:00:43 +00:00
Jordan Rose
e715940241 [Driver] Teach "swift -i" and "swift -repl" to default to the current OS X SDK.
This only works when swift is packaged with Xcode or installed as a command
line tool, but those are the important cases.

<rdar://problem/14395800>, again.

Swift SVN r18757
2014-06-09 21:29:08 +00:00
Ted Kremenek
fad874708e Adjust test cases.
Swift SVN r17964
2014-05-12 22:01:52 +00:00
Jordan Rose
9163bc3233 [test] Put a single empty.swift in test/Inputs.
Swift SVN r13666
2014-02-08 00:13:49 +00:00
Jordan Rose
6c9b222a66 [driver] Treat file with a ".sil" extension as SIL input.
Swift SVN r13469
2014-02-05 01:58:13 +00:00
Jordan Rose
fb0fa908b6 [Frontend] Parse the main file last to make sure implicit visibility works.
Otherwise, we'll try to type-check bits of the main source file before we've
even looked at any of the supporting files.

This affects implicit multi-file mode, where "main.swift" is assumed to be
the main source file and all others are treated as library files. (See r9890.)

<rdar://problem/15526743>

Swift SVN r10795
2013-12-04 21:54:43 +00:00
Jordan Rose
aeb22194a0 [driver] Treat "main.swift" as the main source file if given multiple inputs.
New rules for the driver (first match):
1. -repl: no input files allowed
2. -parse-sil: one input file allowed
3. -parse-as-library: any number of input files, all treated as Library
4. one input, extension is .sil: treated as SIL
5. one input: treated as Main
6. many inputs: treated as Library by default; "main.swift" is treated as Main

If we want more control here we can also add a -main-file option to explicitly
call out the main source file, but this at least unblocks building an entire
app target (like ListMaker) with a single Swift invocation.

Swift SVN r9890
2013-11-02 01:08:40 +00:00
Jordan Rose
bb7e33e09e First pass at emitting dependency (.d) files.
This can be used to optimize the build order in a build system. Note,
however, that no canonicalization is going on -- we're just printing
out the paths at which we found everything we imported or listed on the
command line.

Part of <rdar://problem/14899639>

Swift SVN r8013
2013-09-06 23:22:27 +00:00
Jordan Rose
158e5d06cd Only strip the last extension from a file when inferring a module name.
Previously, we were finding the /first/ dot in a name, and stripping
everything after that. If that's really what someone wants to do, they
can use -module-name explicitly.

Swift SVN r7374
2013-08-20 22:13:24 +00:00
Dmitri Hrybenko
ee2fc97d5d Remove spurious object file
Swift SVN r6123
2013-07-10 18:39:13 +00:00
John McCall
6e79ed41f9 Per review, there's currently no need to reserve space
for future expansion in this.

Swift SVN r6122
2013-07-10 18:35:47 +00:00
Dmitri Hrybenko
99cc28c5ff Remove object file from test directory
Swift SVN r6118
2013-07-10 16:57:36 +00:00
John McCall
87ef9204d4 Rewrite the storage type of a [weak] or [unowned] variable.
getTypeOfReference drops the ReferenceStorageType from the
variable when it introduces the LValueType.

Swift SVN r6110
2013-07-10 07:56:38 +00:00
Dmitri Hrybenko
c7421211a3 Factor out logic that creates and configures all objects required for
compilation into a 'Frontend' library.

This library is still not in its best shape, but now it can be reused in
swift-index-test.


Swift SVN r6040
2013-07-06 00:46:19 +00:00