It was originally designed for faster trasmission of syntax trees from
C++ to SwiftSyntax, but superceded by the CLibParseActions. There's no
deserializer for it anymore, so let's just remove it.
There's no reason to use -m${platform}-version-min as of clang-11/Xcode 11. Clang is now smart enough to parse -target and provide Apple's ld with the appropriate -platform_version argument string.
This disables 4 tests:
- DerivativeRegistrationTests.NonCanonicalizedGenericSignatureComparison
- Reabstraction.diff param generic => concrete
- Reabstraction.diff param and nondiff param generic => concrete
- Reabstraction.result generic => concrete
Simultaneously, enable the remainder of the auto-diff test suite on
Windows. These tests fail on Windows due to an invalid parameter during
the reabstraction of the generic differentiable parameters. The
remainder of the auto-differentiation tests pass on all the platforms.
CMake: fix build for Apple Silicon hosts
When building with `build-script` using these arguments
```
utils/build-script --skip-build-benchmarks
--skip-ios --skip-watchos --skip-tvos
--swift-darwin-supported-archs "arm64"
--sccache --release-debuginfo --test
```
the build fails with
```
ninja: error: 'stdlib/swift-test-stdlib-macosx-x86_64',
needed by 'stdlib/CMakeFiles/swift-test-stdlib', missing and no known rule to make it
```
I think that the "Getting Started" guide should avoid hardcoding `x86_64` arguments, and suggest using `$(uname -m)` instead. `SWIFT_PRIMARY_VARIANT_ARCH_default` could also get its value from `CMAKE_HOST_SYSTEM_PROCESSOR` in the root `CMakeLists.txt`.
Resolves SR-13943.
This commit adds standard conventions for Vim filetype plugins:
- Allows users to opt out of using the provided ftplugin file, if they
choose to install and use another set of runtime files for Swift
(which offers its own version of ftplugin for Swift), It also prevents
this ftplugin file from being sourced again if a ftplugin file for
Swift was already sourced. Vim's documentation on this recommends
offering users this option as well, under the "DISABLING" section
of `:help write-filetype-plugin`).
- Adds the `b:undo_ftplugin` buffer local variable, which is used to
undo the filetype settings when the `:setfiletype` command is used
(See :help `undo_ftplugin`). Also prefer using the full names for Vim
settings instead of short ones as they are more readable.
The above conventions are in place in many of the ftplugin files
shipped with Vim, so they can be used as a reference, as well.
Specifically, I changed how sil-mode-display-function-cfg searches for the
start/end of the SIL function body where the current point is. Previously, we
just searched for the exact strings "{" and "}" backwards and forwards
respectively. That was insufficient in the context of box types that use those
characters.
Instead with this change, we convert the aforementioned static search to a regex
search. Our regex match "{$" for the beginning of the SIL function and "^} //
end sil function '" or "^}" which I think will generally work to get the correct
body. NOTE: We first check for the end sil function variant.
Consolidate ThrowsKeyword, RethrowsKeyword, and AsyncKeyword to
EffectsSpecifierKeyword.
Abolish 'key.throwsoffset' and 'key.throwslength' as they aren't used.
Adds a new 'key.retrieve_symbol_graph' option to the request. When set to 1 it
includes the JSON for a SymbolGraph containing a single node for the symbol at
the requested position.
This also extends the SymbolGraph library with a new entry point to get a graph
for a single symbol, and to additionally support type substitution to match the
existing CursorInfo behavior (e.g. so that when invoked on `first` in
`Array<Int>().first`, the type is given as `Int?` rather than `Element?`).
Resolves rdar://problem/70551509
This should enable scaling when using machines with large amount of
RAM.
To better support machines with lower spec, process one binary per
dsymutil invocation (reverting #34149).
Add some (limited) facilities to gather the time taken to execute
dsymutil to better assist in tuning the parameter -- these are printed in
JSON format in the log to allow for easier scraping
```
{ "command": "dsymutil", "start": "2020-11-18T18:10:47" }
{ "command": "dsymutil", "end": "2020-11-18T18:14:45" }
```
Addresses rdar://71018443
Quote the path to the python interpreter. Without this change, using a
path with a space in it will prevent CMake from configuring as the
python interpreter's path will be split.
IF Xcode is installed into a location with spaces, we would fail to
compile due to improper quoting. Quote the paths to ensure that ninja
can bootstrap properly.
Seems that Windows uses TMP and TEMP (more details about why two in
https://devblogs.microsoft.com/oldnewthing/20150417-00/?p=44213), but
doesn't seem to use TMPDIR at all.
The changes set all three to the same value. I am not removing TMPDIR
just in case. It seems to avoid creating files in the other temporal
directories for the compilation and testing.
This temp directory should be clean up by the CI machines when
recreating the new working directory for the next build. Let's hope we
can stop having to babysit the CI servers every month.
This is a small step to ensure multiple build jobs running on the same
machine (e.g. in CI) do not stomp on each other.
This PR does not cover the version detection of the Swift compiler
during the CMake configuration -- in there the compiler gets called once
without any of the `CMAKE_Swift_FLAGS`.
Addresses rdar://71373494