Skip to content

Merge main 2022-06-06 #4628

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 224 commits into from
Jun 6, 2022
Merged

Merge main 2022-06-06 #4628

merged 224 commits into from
Jun 6, 2022

Conversation

kateinoigakukun
Copy link
Member

No description provided.

DavidGoldman and others added 30 commits May 17, 2022 19:41
This flag avoids indexing import clang modules (pcms), behaving
similar to `-index-ignore-system-modules` except for PCMs.
…names __operator(Minus, Plus,...) and fix test cases
… natively on Android

This broke in swiftlang#41741, putting it back the way it was.
SWIFT_STDLIB_SINGLE_THREADED_RUNTIME is too much of a blunt instrument here.
It covers both the Concurrency runtime and the rest of the runtime, but we'd
like to be able to have e.g. a single-threaded Concurrency runtime while
the rest of the runtime is still thread safe (for instance).

So: rename it to SWIFT_STDLIB_SINGLE_THREADED_CONCURRENCY and make it just
control the Concurrency runtime, then add a SWIFT_STDLIB_THREADING_PACKAGE
setting at the CMake/build-script level, which defines
SWIFT_STDLIB_THREADING_xxx where xxx depends on the chosen threading package.

This is especially useful on systems where there may be a choice of threading
package that you could use.

rdar://90776105
Read/write locks are not as good as you'd think; a simple mutex is better in
almost all cases.

rdar://90776105
Moved all the threading code to one place.  Added explicit support for
Darwin, Linux, Pthreads, C11 threads and Win32 threads, including new
implementations of Once for Linux, Pthreads, C11 and Win32.

rdar://90776105
The threading unit tests currently just check the operation of Mutex.
This used to be part of the runtime tests, but now it's a separate
library we can test it separately.

rdar://90776105
Added explicit tests for `swift::once` and also for the ulock implementation
used on Linux.

rdar://90776105
The file is called Nothreads.cpp, not NoThreads.cpp.

rdar://90776105
Some things (LLDB's language plugin, for instance), include Swift headers
from outside of our build system, and may not know to define one of the
threading package defines.

rdar://90776105
Some declarations were missing from non-Darwin sources, and the Linux
header was slightly broken.

rdar://90776105
A few fixes specifically for the Linux build.

rdar://90776105
We want this initialized when we decide which threading package to
use.  This isn't a problem on Darwin or Linux where we're using the
build script, but on Windows it relies on the defaulting mechanism,
which didn't happen until further down the `CMakeLists.txt`.

rdar://90776105
When we static link against libswiftCore, we need it to contain the
actual object modules from the threading library (when it's dynamically
linked, the shared object will already contain those modules because it's
been linked against libswiftThreading), which means that the threading
library in the stdlib needs to be an OBJECT_LIBRARY rather than a STATIC
library (otherwise people will have to statically link against the
threading library as well, and that'll need to be installed, and we don't
want that).

rdar://90776105
I'd renamed the setting, but failed to update build-presets.ini.

rdar://90776105
Apparently I missed a close brace from the end of Win32.h.

rdar://90776105
Looks like I forgot to update the Win32.h implementation.

rdar://90776105
slavapestov and others added 27 commits June 3, 2022 13:30
…wiftlang#59216)

In swiftlang#59120 I did not realize that I was filtering tests that required
executable or non-executable features, so many tests were being skipped.

This change should recover both sets of tests and it allows us to test
C++ interop in a lot more cases.

Sadly this raises the number of failing tests with C++ interop to 425.
It currently is just removed when we type check types, so it doesn't do
anything. Eventually this is going to be the way at the SIL level one can
convert an AST type into its move only equivalent.
It can only be used in SIL contexts to express that a wrapped type is
MoveOnly.
…only bit.

The names are AbstractionPattern::with{,out}MoveOnly().
… performing basic queries by looking through the move only type wrapper.

This is done by introducing the API SILType::getSemanticASTType(). This can be
used in contexts for type queries like getStructOrBoundGenericStruct() where one
wants to look through the move only wrapper to the underlying type.
…8fec8ed6c482a88765ac9f6

[capture-promotion] Add support for GEPs from captures that are load_borrowed
Used to produce a fallback `type of expression ...` diagnostic
…se-0353

Update changelog entry for SE-0353
…ypesystem-changes

[move-only] Add initial type system changes to express move only ness in the type system
[CSClosure] NFC: Add a test-case for rdar://92757114
…iboutlet` error and instead use non-hardcoded `invalid_ibinspectable`
…pectable-message

Change message of `invalid_iboutlet` and `invalid_ibinspectable` to reflect accurate usage
cmake: add android runtime build caches
…closed by a parenthesis (swiftlang#58882)

[Parse] Diagnose unclosed string interpolations
ABIChecker: add an option to avoid diagnosing about certain given SPI groups
…06-06

 Conflicts:
	test/Concurrency/Runtime/clock.swift
@kateinoigakukun kateinoigakukun merged commit d906ecd into swiftwasm Jun 6, 2022
@kateinoigakukun kateinoigakukun deleted the katei/merge-main-2022-06-06 branch July 6, 2022 03:36
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.