Skip to content

[pull] katei/swiftwasm from swiftwasm#17

Merged
pull[bot] merged 66 commits into
katei/swiftwasmfrom
swiftwasm
Jan 25, 2020
Merged

[pull] katei/swiftwasm from swiftwasm#17
pull[bot] merged 66 commits into
katei/swiftwasmfrom
swiftwasm

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Jan 25, 2020

See Commits and Changes for more details.


Created by pull[bot]. Want to support this open source service? Please star it : )

eeckstein and others added 30 commits January 22, 2020 15:29
The find functions do not require the generic Value parameter. Moving them to __RawDictionaryStorage allows to define them with only one generic parameter: the Key.
This allows the optimizer to share specializations for dictionaries which have the same Key, but a different Value.
Also, prevent inlining of the find-functions to save some additional code size.
…ct type context

Resolves: rdar://problem/50666427
This was causing issues with MSVC. Have subclasses
be friends with all specializations of
AnyRequestBase, and define `getRawStorage` in
the base class to make it accessible to `friend`
top-level functions.
The `add_swift_target_executable` is used in a single case, where it is
already being built in a standard library only build.  This removes the
unnecessary condition in the build path.
This parameter is unused.  Simply remove the option from the
`add_swift_sourcekit_executable`.
This moves the handling of the RPATH and the exported symbol to the
binary themselves.  The exported symbol is needed due to the use of the
exported symbol list.  This makes the small difference that `_main` is
always exported on Darwin which is not strictly needed in ASAN as ASAN
provides the entry point.

The RPATH is only setup on installation which is sufficient for testing
purposes as CMake ensures that the libraries are fully linked and will
be loaded properly when run from the build tree.
This allows us to use CMake more effectively rather than proliferating
the linking and header search path logic.
Use the imported library to track header search path and library search
paths and dependencies rather than replicating that knowledge.
The `@noDerivative` attribute marks the non-differentiability parameters of a
`@differentiable` function type. All parameters except those marked with
`@noDerivative` are differentiability parameters.

For example, `@differentiable (Float, @noDerivative Float) -> Float` is only
differentiable with respect to its first parameter.

The `@noDerivative` attribute is represented as a
`SILParameterDifferentiability` bit on `SILParameterInfo`.

Add round-trip serialization tests.

Resolves TF-872.
Noticed via code inspection. This could potentially miscompile, but we
haven't seen that happen to my knowledge.

Both value_to_bridge_object and strong_copy_XXX need to escape their
resulting value.

The implementation seemed to assume that it is conservatively correct
simply to avoid building a connection graph node for an value. This is
*not* true. Any value that has a pointer type requires a connection
graph node. The only way to be conservative is to create the value
node *and* point it to an escaping content node.

We can always declare that certain special types are not considered
pointer types, but then we need to handle all conversions from those
types to pointer types by escaping the resulting
pointer. BridgeObjects are often on the performance-critical path.
This verification would have prevented the following recent miscompilation:

  commit fbe38ce
  Fix EscapeAnalysis losing precision during merge.
Move constraint generation for statement conditions onto the
constraint system; it doesn't really have any reason to be located
within the function builder transform.
Availability checks in if statements don't need any actual semantic
checking, so enable them within function builders.
…ndResize into a separate function

For code size reduction.
In af0247e, this assert was partially
disabled and therefore the assert build compiler abandons large
temporary files that need to wait for /tmp to be cleaned days or weeks
later, if at all.
Re-apply "Don't heap allocate for active requests"
[IRGen] Fully disable an assert that leaves junk in /tmp
dan-zheng and others added 26 commits January 24, 2020 10:10
…il-diff-param

[AutoDiff upstream] Add `@noDerivative` flag to `SILParameterInfo`.
…check-script

[Gardening] Update the utils/backtrace-check script to use more modern Python formatting.
…f-available

[Function builders] Add support for "if #available".
We’ll want to pull these back out for diagnostic purposes.
Set the contextual type of conditional expressions (to Bool) with the
"condition" purpose so we get customized diagnostics for mistakes such
as

    if x.property = y { }

Prior to this, we'd get generic "() isn't convertible to Bool"
diagnostic. Now we get

    use of '=' in a boolean context, did you mean '=='?
Turn off speculative devirtualization by default. Add a flag to support enabling the pass.
Fixes rdar://58778959 and rdar://58429282
…y-script

[Gardening] Remove the unused utils/build-overlay script.
…o-cases-script

[Gardening] Remove the unused utils/error_enum_to_cases.pl script.
…-swift-script

[Gardening] Remove the unused utils/guard-malloc-swift script.
[Build System: build-script] Allow users to enable distcc via the USE_DISTCC environment variable.
When doing header interface generation, we interpret clang command-line
arguments in `initInvocationByClangArguments` and attempt to setup a
matching Swift compiler invocation. One important argument is the module
cache, but clang will only interpret `-fmodules-cache-path` if modules
are enabled (typically with `-fmodules`). While the header itself might
not need modules, Swift will import its own shims module and during
testing this needs to honour lit's provided cache. So we add -fmodules
in sourcekitd-test anytime we add -fmodules-cache-path.

rdar://58836540
…ons-for-function-builders

[Constraint system] Set the contextual type for condition expressions.
build: remove `SWIFT_BUILD_STDLIB` check (NFC)
stdlib: move Dictionary's find functions into __RawDictionaryStorage.
[sourcekitd-test] When setting -fmodules-cache-path also set -fmodules
[CSDiag] Start chipping away at FailureDiagnosis::diagnoseAmbiguity
…identity-expr-csdiag

[Diagnostics] Remove obsolete FailureDiagnosis::visitIdentityExpr from CSDiag
…lMembers() and lazy loading

Lazy loading checked if the ClangDecl was hidden, but loading all
members did not. Let's make loadAllMembers() behave like the lazy
path, and fix some of the mock SDKs in the test suite.
Metadata prespecialization will be available after Swift 5.2.
…platform

[Build System: build-script] Update the DarwinPlatform.is_embedded method to account for macCatalyst.
…ng-inconsistency

ClangImporter: Reconcile Clang declaration hidden-ness between loadAllMembers() and lazy loading
…a-prespecialization-components/future-availability

[metadata prespecialization] Future availability.
@pull pull Bot merged commit bb77201 into katei/swiftwasm Jan 25, 2020
kateinoigakukun pushed a commit that referenced this pull request Jan 25, 2020
It would be convenient if packaged SDK and result of the smoke test were uploaded as artifacts of the CI run and become downloadable for later use.

* Add more logging to the smoke test
* Add a newline to main.yml
* Upload packages and hello.wasm as CI artifacts
* Normalize filenames for swiftwasm-package-sdk
* Add macos_smoke_test job
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.