Puniverse Quasar Versions Save

Fibers, Channels and Actors for the JVM

v0.8.0

5 years ago
  • Supports JDK 11
  • Dropped support of JDK 7 and 8
  • Modularized
  • The quasar-galaxy module has been removed
  • The co.paralleluniverse.data.record has been removed from the quasar-actors module.
  • Added support for custom fiber serializers
  • Suppports Kotlin 1.3

v0.7.10

5 years ago

v0.7.9

6 years ago

Enhancements

  • Suppport for Kotlin 1.1

Bug Fixes

  • Fixed memory leak through fiber stack under certain circumstances (#282)
  • Fixed regression of verifyInstrumentation (#280, #279)
  • Registered actors stop their (JMX) monitors when deregistered
  • Fixed documentation of actor's mailbox overflow policy (#283)
  • Various small fixes.

v0.7.8

6 years ago

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)
  • ExitMessages received from actors after they've been unlinked/unwatched will be ignored (#163)

Bug Fixes

Various small fixes.

v0.7.7

7 years ago

Improvements to verifyInstrumentation reporting and some bug fixes.

v0.7.6

7 years ago

This release contains a fix to a major bug

#204

a fix to a medium-severity bug

#212

an improvement to handling multiple class loaders

#196

as well as minor bug fixes.

v0.7.5

8 years ago

New features

Improvements

Closed issues

v0.7.4

8 years ago

New features

Improvements

Closed issues

v0.7.3

8 years ago

Breaking changes

  • Kotlin's fiber function has been moved to the co.paralleluniverse.kotlin package, has several convenient overloads and by default will also start the fiber.

New features

  • co.paralleluniverse.kotlin also includes a convenient select 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:

v0.7.2

8 years ago

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 in suspendable-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