Skip to content
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

Version 1.6.0-RC #3035

Merged
merged 61 commits into from
Nov 22, 2021
Merged

Version 1.6.0-RC #3035

merged 61 commits into from
Nov 22, 2021

Conversation

qwwdfsad
Copy link
Collaborator

No description provided.

qwwdfsad and others added 30 commits September 2, 2021 12:14
By doing this DebugProbesImpl can check for static installation without having to depend on AgentPremain, which is not compatible with Android.

Co-authored-by: Pierfrancesco Soffritti <[email protected]>
* Update CoroutineScope() factory documentation

Fixes #2891
* Non-conflating subscription count in SharedFlow and StateFlow

Sharing strategies are too sensitive to conflation around extrema and may miss the necessity to start or not to stop the sharing. For more particular examples see #2863 and #2488

Fixes #2488
Fixes #2863
Fixes #2871
…e IDEA debugger in one call (#2923)


Co-authored-by: Nikita Nazarov <[email protected]>
Co-authored-by: Nikita Nazarov <[email protected]>
* Introduce CloseableCoroutineDispatcher abstract class
* Alias it to ExecutorCoroutineDispatcher on JVM as the most appropriate candidate
* Add abstract classes to JVM and Native
* This class will be implemented by new dispatchers for K/N new memory model

Co-authored-by: dkhalanskyjb <[email protected]>
* We state that it's deprecated since the initial release of CoroutineScheduler
* It is an additional DEX load for Android
…ate API (#2922)

* Mention CoroutineDispatcher.limitedParallelism as an intended replacement
* Prepare the API to sharing with K/N new memory model where we _have_ to have this API

Addresses #2919
* Add version file to each module resources
* The approach with "Specification-Version" in Manifest doesn't work because Android merges all JARs into a single resource, trimming all the manifests

Fixes #2941
…oroutineExceptionHandler (#2840)

This change makes `future` coroutine builder consistent with `java.util.concurrent.FutureTask` which also drops exceptions that happen after successful cancellation.

Fixes #2774
Fixes #2791
* Update binary compatibility validator
* Fix race in testFuturePropagatesExceptionToParentAfterCancellation
Change the build scripts and the file layout so that
kotlinx-coroutines-test is built on all platforms.
* transformWhile
* awaitClose and ProducerScope (for callbackFlow and channelFlow)
* merge
* runningFold, runningReduce, and scan
….IO unbounded for limited parallelism (#2918)

* Introduce CoroutineDispatcher.limitedParallelism for granular concurrency control

* Elastic Dispatchers.IO:

    * Extract Ktor-obsolete API to a separate file for backwards compatibility
    * Make Dispatchers.IO being a slice of unlimited blocking scheduler
    * Make Dispatchers.IO.limitParallelism take slices from the same internal scheduler

Fixes #2943
Fixes #2919
…#2957)

* Eagerly load CoroutineExceptionHandler and load the corresponding service

Partially addresses #2552
Fixes the R8 ServiceLoader optimization that broke in the R8
bundled in the new AGP. For details, see
https://issuetracker.google.com/issues/196302685
dkhalanskyjb and others added 21 commits October 28, 2021 12:41
* Update coroutines-guide.md

"kotlinx.coroutines guide" Google search first result still leads here and it would be nice to guide people directly to kotlinlang

Co-authored-by: dkhalanskyjb <[email protected]>
…s always compile (#3019)

* Invoke jmhJar as a part of the build procedure to ensure that benchmarks always compile
…2833)

* Support of new K/N memory model
* Dispatchers.Default backed by a pool of workers on Linux and by global_queue on iOS-like
* Implementation of Dispatchers.Main that uses the main queue on iOS and default dispatcher on other platforms (#2858)
* Introduced newSingleThreadDispatcher and newFixedThreadPoolDispatcher
* Use proper reentrant locking and CoW arrays on new memory model, make TestBase _almost_ race-free
* More thread-safety in Native counterpart and one more test from native-mt
* Source-set sharing for tests shared between JVM and K/N
* Wrap Obj-C interop into autorelease pool to avoid memory leaks

Fixes #2914

Co-authored-by: dkhalanskyjb <[email protected]>
… recovery (#2997)

* Use ClassValue-based cache for exception constructors with stacktrace recovery
* It eliminates the classloader leak in containerized environments
* Insignificantly improves the performance of exception copying
* Creates a precedent of guarded use of non-Android-compliant API


Co-authored-by: dkhalanskyjb <[email protected]>
* Get rid of DCSS (double compare single swap) primitive in JobSupport in order to reduce both b binary size and performance of list addition 

Co-authored-by: SokolovaMaria <[email protected]>
Co-authored-by: Vsevolod Tolstopyatov <[email protected]>
#3017)

* Improve exception transparency: explicitly allow throwing exceptions from the upstream when the downstream has been failed, suppress the downstream exception by the new one, but still ignore it in the exception handling operators, that still consider the flow failed.

It solves the problem of graceful shutdown: when the upstream fails unwillingly (e.g. `file.close()` has thrown in `finally` block), we cannot treat it as an exception transparency violation (hint: `finally` is a shortcut for `catch` + body that rethrows in the end), but we also cannot leave things as is, otherwise, it leads to unforeseen consequences such as successful `retry` and `catch` operators that may, or may not, then fail with an exception on an attempt to emit.

Upstream exception supersedes the downstream exception only if it is not an instance of `CancellationException`, semantically emulating cancellation-friendly 'use' block.

Fixes #2860
…ine()`. (#3025)


* This is a `ThreadContextElement` that is copy-constructed when a new coroutine
is created and inherits the context.


Co-authored-by: Tyson Henning <[email protected]>

Fixes #2839
* Use Dispatchers.Main as default delay source where applicable

It reduces the number of redundant threads in the system and makes time source predictable across Android/JavaFx applications

Fixes #2972
* Update Kotlin to 1.6.0
* Update atomicfu to 0.17.0
* Try to trim memory usage of Dokka and Lincheck
* Disable failing test
* Do avoid concurrent-unsafe Collections.toList for working with ConcurrentWeakMap.keySet
* Do join weakRefCleanerThread in DebugProbes.uninstall

Otherwise, multiple pairs of install + uninstall may leave multiple cleanup threads in the state when the map is already cleaned up, but its size is not

Fixes #3028
This commit introduces the new version of the test module.
Please see README.md and MIGRATION.md for a thorough
discussion of the changes.

Fixes #1203
Fixes #1609
Fixes #2379
Fixes #1749
Fixes #1204
Fixes #1390
Fixes #1222
Fixes #1395
Fixes #1881
Fixes #1910
Fixes #1772
Fixes #1626
Fixes #1742
Fixes #2082
Fixes #2102
Fixes #2405
Fixes #2462

Co-authored-by: Vsevolod Tolstopyatov <[email protected]>
@qwwdfsad qwwdfsad changed the title Version 1.6.0 rc Version 1.6.0-RC Nov 21, 2021
Copy link
Collaborator

@dkhalanskyjb dkhalanskyjb left a comment

Choose a reason for hiding this comment

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

Only reviewed the CHANGES.md file. Do I need to look at anything else?

CHANGES.md Outdated Show resolved Hide resolved
CHANGES.md Outdated Show resolved Hide resolved
CHANGES.md Outdated Show resolved Hide resolved
CHANGES.md Outdated Show resolved Hide resolved
CHANGES.md Outdated Show resolved Hide resolved
CHANGES.md Outdated Show resolved Hide resolved
CHANGES.md Outdated Show resolved Hide resolved
CHANGES.md Show resolved Hide resolved
CHANGES.md Outdated Show resolved Hide resolved
CHANGES.md Outdated Show resolved Hide resolved
@qwwdfsad qwwdfsad merged commit 3574c2f into master Nov 22, 2021
@qwwdfsad qwwdfsad deleted the version-1.6.0-RC branch April 4, 2022 10:58
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.