Skip to content

Merge tag 'swift-DEVELOPMENT-SNAPSHOT-2020-01-20-a' into tensorflow #29347

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 261 commits into from
Jan 27, 2020

Conversation

burmako
Copy link

@burmako burmako commented Jan 22, 2020

No description provided.

xedin and others added 30 commits January 13, 2020 12:42
This reverts commit 3e932c0.

The compiler does not support @_alwaysEmitIntoClient properties
specially wrt property descriptors. The revert commit would introduce an
ABI incompatability when a keypath to Array.first is formed:

    let greetings = ["hello", "hola"]
    let count = greetings[keyPath: \[String].first?.count]

Runmning on an older runtime would lead to linker errors against $sSa5firstxSgvpMV
the property descriptor for Array.first.

rdar://58484319
…hod.

Done using Xcode's refactoring engine! Should be NFC.

I am going to turn this method into a visitor on the op code.

NOTE: Xcode's refactoring engine messd with the whitespace, so I also ran this
through git-clang-format.
…9165)

The check for whether or not we can use a function builder on a property
checked whether the attached getter had a body, which is not always true for
module interfaces. Just disable that part of the check when compiling a
module interface.

rdar://58535753
[build-script] Install SwiftSyntax to usr/lib instead of usr/lib/swift
* Expose separate function sections option to compiler

* Add function sections test
…eRequirementBetweenConcrete-during-completion

[AST] Handle visiting UnresolvedType in TypeMatcher
…on-Equatable raw type

The error recovery logic around derived conformances is a little bit
tricky. Make sure we don't crash if a type explicitly provides a
RawValue type witness that is not equatable, but omits the witnesses
for init(rawValue:) and the rawValue property.

Fixes <rdar://problem/58127114>.
[Diagnostics] Port diagnostics for array/dictionary literals
[CodeCompletion] Always look into decls to find the parsed expression
[CodeCompletion] Reduce accumulating memory per fast completion
…stall names

Using the new linker directives $ld$previous requires the compiler to know the previous
install names for the symbols marked as removed. This patch teaches the compiler
to take a path to a Json file specifying the map between module names and previous
install names. Also, these install names can be platform-specific.

Progress towards: rdar://58281536
This validation may call many `stat(2)`. Since we don't expect system
files are edited. Disable it for code completion, even if they are
edited, they are validated when the user manually build the project.

rdar://problem/58550697
`@differentiable` attributes may contain `where` clauses referencing generic
parameters from some generic context, just like `@_specialize` attributes.

Without special ASTScope support for `@differentiable` attributes,
ASTScopeLookup.cpp logic tries to resolve the generic parameter `DeclName`s in
`where` clauses based on source location alone
(`ASTScopeImpl::findChildContaining`) and fails.

The fix is to add a special `DifferentiableAttributeScope`, mimicking
`SpecializeAttributeScope`. Every `@differentiable` attribute has its own scope,
derived from the declaration on which it is declared. Unlike `@_specialize`,
`@differentiable` may also be declared on `AbstractStorageDecl` declarations
(subscripts and variables).

Upstreams #27451.

Progress towards TF-828: upstream `@differentiable` attribute type-checking.
This adjusts the test diffing to ignore the whitespace changes across
different platforms.  `raw_fd_ostream` will write out `OF_Text` files
with the platform's line endings, which may differ from the source
file's.
…le-fix

Sema: Fix crash when synthesizing RawRepresentable conformance with non-Equatable raw type
…ntend 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>.
This is a workaround to fix weak linking of frameworks that define
types with availability, but then define extensions of those types
without availability.

This can come up if the framework itself is built with a newer
deployment target than the client that uses the framework. Since the
type checker only enforces that an extension has availability if
the extension is less available than the deployment target, we were
failing to weak link the members of the extension in this case.

This is not a perfect fix; ideally such frameworks should be built
with -require-explicit-availability, and all reported warnings
fixed by adding explicit availability.

However, it allows clients to weak link when using existing
swiftinterface files that have already shipped in the mean time,
and it should not cause any problems once the frameworks are properly
annotated in the future.

Fixes <rdar://problem/58490723>.
…ity-fix

Fix driver to pass -require-explicit-availability flag to frontend jobs
TBDGen: teach the compiler to take a json file indicating previous install names
AST: Weak-link declarations in extensions of weak-linked types
…metadata for now

Recently we started using the runtime demangler to realize imported
Objective-C class metadata, to save on code size since no metadata
accessor function needs to be emitted in this case.

This introduced a regression where OBJC_CLASSREF symbols were no
longer being emitted in some cases, which breaks autolinking.
The fix for this was tracked by rdar://56136123, but unfortunately
had to be reverted because it caused other problems.

Until the original fix can be re-applied, let's put in a temporary
workaround where we avoid going through the runtime demangler for
imported Objective-C classes. This regresses code size but unblocks
everyone involved, until the fix for the demangling code path
(8247525) can be re-applied.

Fixes <rdar://56621277>.
Use the presence or absence of the PGO reader instead.  SILGen was wiping out this option then checking for it being wiped out anyways.
This was being done at an odd point in the frontend presumably because by that point the private discriminator had been fully computed.  Instead, push the conditions for generating the prefix data down to debug info generation and stop mutating IRGenOptions::DebugFlag in the frontend.
Rostepher and others added 7 commits January 19, 2020 17:08
[Build System: Python] Test restructure
[NFC][Build System: Python] Cleaned-up the python_lint.py script.
[NFC][Build System: build-script] Remove the old which module in swift_build_support.
…hich replaces the existing module from swift_build_support.

This new module uses the build_swift.shell.ExecutableWrapper API to create a wrapper class around 'xcrun'. The wrapper class is instantiated and exposed under the name build_swift.wrappers.xcrun.
[Build System: build-script] Adds a new xcrun module to build_swift.
@@ -208,7 +208,6 @@ bool GenericParamScope::doesContextMatchStartingContext(
return false;
}

// SWIFT_ENABLE_TENSORFLOW
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's awesome that these all have been upstreamed. Thanks for removing the comments :)

dan-zheng and others added 8 commits January 23, 2020 11:49
- Fix `resolveDifferentiableAttrDerivativeGenericSignature`.
  - Generic signature should be returned directly instead of retrieved from
    generic environment.
- Delete `DifferentiableAttributeParameterIndicesRequest`.
  - That request was upstreamed and renamed to
    `DifferentiableAttributeTypeCheckRequest`.

Stdlib compilation (`TensorFlow` module) fixed.
Use new `-Xfrontend` flag instead of `-Xllvm` flag.
@burmako
Copy link
Author

burmako commented Jan 27, 2020

@swift-ci Please clean test tensorflow

@burmako
Copy link
Author

burmako commented Jan 27, 2020

Current status:

Proposed next steps:

  • Wait for Mac CI to pass.
  • Merge this pull request.
  • Wait for the new Rapid build to pass (I launched a full Rapid build, but I propose we don't block the merge until it has finished, because the only thing that changed is the tensorflow-swift-quotes hash, and I'd really like to merge this PR before Dan takes over the rotation tomorrow).

@burmako burmako merged commit 43922f0 into tensorflow Jan 27, 2020
@burmako burmako deleted the tensorflow-merge branch January 27, 2020 22:39
burmako pushed a commit that referenced this pull request Jan 28, 2020
It would seem that despite getting a green checkmark from CI,
#29347 broke `tensorflow` HEAD.
There are now a few SourceKit tests which fail only on macOS.

In this PR, I'm disabling the failing tests pending a full-fledged investigation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.