Releases: puniverse/quasar
Releases · puniverse/quasar
0.8.0
0.7.10
0.7.9
Enhancements
- Suppport for Kotlin 1.1
Bug Fixes
0.7.8
Enhancements
- Improved reporting of instrumentation problems with
verifyInstrumentation
(#238, #255) - Interrupting
FiberAsync.runBlocking
interrupts the thread executing the operation (#245) - Java agent can be configured to exclude packages from instrumentation in order to improve startup time (#243)
ExitMessage
s received from actors after they've been unlinked/unwatched will be ignored (#163)
Bug Fixes
Various small fixes.
0.7.7
0.7.6
0.7.5
New features
- 9c0b63a by @mikehearn:
ThreadLocal
s serialization in fibers is now optional
Improvements
- f37b8c8, 08583f1 and 80802e4: Substantial performance improvements in several areas
- 269d73a and 0057c28: Improved
ThreadLocal
s serialization in fibers - 842ed49: Support for blocking handlers, puniverse/pulsar#55
- Various deps upgrades, including Kotlin ->
1.0.1-2
Closed issues
- [CRITICAL] #185: Strands synchronization race
- #176: Possible
TransferChannel
race - #154: Minor docs typos
- #159: Kotlin upgrade
- #156: Exception in fiber prints stack trace twice
- #160 by @LesNovell: JavaAgent.transform not checking for null className
- #168: Failing suspendable lambda case
- 14d7f2f related to #146 by @cbeams: Exclude from instrumentation shaded variant of Kotlin's
ModuleDescriptorImpl
- 685e89d by @latros: Typo
- #173: Monitored ProxyServerActors do not provide correct stats in MXBean
- c8ba7e4 by @remen: Typo
- 98ee54b: Wait longer in
select
, thanks and related to https://groups.google.com/forum/#!topic/quasar-pulsar-user/U2ztEdoPFqw with Chris Pennello - #186:
MessageSelector.select()
results requires cast toMessageSelector<Object,Object>
in order to be used
0.7.4
New features
- Suspendable
CountDownLatch
andCyclicBarrier
Improvements
- Kotlin
build-1.0.0-beta-4584
support - Relaxed Kotlin's
select
type constraints - Several dependencies upgraded
- Improved channel performance
Closed issues
- #117
- #121
- #118
- #124
- #146
- #147
- Fixed DisruptorChannel and moved to a new
quasar-disruptor
subproject (still experimental) - Several other minor fixes both in code and docs
0.7.3
Breaking changes
- Kotlin's
fiber
function has been moved to theco.paralleluniverse.kotlin
package, has several convenient overloads and by default will also start the fiber.
New features
co.paralleluniverse.kotlin
also includes a convenientselect
syntax to perform channel selection:
val ch1 = Channels.newChannel<Int>(1)
val ch2 = Channels.newChannel<Int>(1)
assertTrue (
fiber {
select(Receive(ch1), Send(ch2, 2)) {
it
}
}.get() is Send
)
ch1.send(1)
assertTrue (
fiber {
select(Receive(ch1), Send(ch2, 2)) {
when (it) {
is Receive -> it.msg
is Send -> 0
else -> -1
}
}
}.get() == 1
)
- The new
FiberForkJoinScheduler.onIdle()
hook notifies when the fiber scheduler becomes idle.
Improvements
- Several dependencies upgraded
Closed issues:
0.7.2
New features:
- A fully TCK-compliant Reactive Streams implementation based on Quasar Channels in the
quasar-reactive-streams
module
Improvements:
- Instrumentation optimisation has been introduced: methods that don't need instrumentation will be left untouched and this improves performance
- Instrumentation verification is more precise, it checks call sites (see #86) and it prints extended stack trace information on HotSpot JRE 8; in addition it works even without verification enabled (and without performance penalty) when an uncaught exception is thrown in a fiber
- Improved JDK8-optimised build, no duplicate classes anymore (see #91)
- Minor channels improvements and fixes
- Kotlin upgraded to
0.12.613
(post-M12) and several other dependencies upgrade - The
@Suspendable
annotation is now supported on individual interface methods rather than just on the whole interface
Closed issues:
- #86
- #91
- #93
- #94
- #95
- #96
- A minor issue in
scanSuspendables
has been addressed, it sometimes included unnecessary (but harmless) lines insuspendable-supers
Notes:
- The Gradle wrapper has been removed to simplify the codebase and its maintenance. If you're building Quasar locally just install the latest Gradle distribution before doing so and use plain
gradle