Releases: cashapp/zipline
Releases · cashapp/zipline
1.20.0
- New: Add Linux ARM to supported platforms for JVM artifact.
- JVM native libraries are now cross-compiled with Zig build system. Please report any issues!
- Upgrade: Kotlin 2.1.20
- Upgrade: Kotlin Serialization 1.8.0.
1.19.0
- Upgrade: Kotlin 2.1.0
1.18.0
- Fix: Prevent clients from caching the dev server's responses.
- New: "compile" subcommand in 'zipline-cli' compiles
.js
files to.zipline
files. - Upgrade: [Kotlin Serialization 1.7.3][kotlin_serialization_1_7_3].
- Upgrade: [kotlinx.coroutines 1.9.0][kotlinx_coroutines_1_9_0].
- Upgrade: [Okio 3.9.1][okio_3_9_1].
1.17.0
- New: Expose
globalThis.gc()
function into the guest code. - Upgrade: Kotlin 2.0.20
1.16.0
- Fix: Support 16KB page sizes in our Android native library. This is necessary to prevent an
UnsatisfiedLinkError
crash on Android 15 / API level 35.
1.15.0
- New: Use different dispatchers for cache vs code execution. Both the cache and QuickJS need to be
thread-confined, but they don't need to be confined to the same thread. With this release we've
added a newCoroutineDispatcher
parameter toZiplineLoader.withCache()
. It is used when
reading and writing the cache. The existingCoroutineDispatcher
used to create the
ZiplineLoader
is used to access QuickJS. - New:
EventListener.cacheHit()
is called on each cache hit.
1.14.0
- New:
ZiplineLoader.load()
andloadOnce()
now accept a suspending function. - New: Don't crash in
ZiplineLoader
when writing to the disk cache fails. Use the new
LoaderEventListener
type to observe such failures. - Fix: Don't crash in Gradle if the Zipline runtime library is absent.
- New: Extend Kotlin's
AutoCloseable
inZipline
,ZiplineService
andZiplineScope
. - Upgrade: [Oracle Linux 8][oracle_linux_8] for x86_64 Linux (
amd64/oraclelinux:8
on Docker). - Upgrade: [Kotlin Serialization 1.7.1][kotlin_serialization_1_7_1].
1.12.0
- Fix: Don't allocate a stack trace when canceling a coroutine or a job. We've observed that
applications create many instances ofCancellationException
, such as when canceling a flow
in routine business logic. Unfortunately, we've also seen that creating the stack traces for
these exceptions is slow on Kotlin/Native. With this update Zipline reuses a single instance of
CancellationException everywhere. We believe that losing the diagnostic information is worth
the performance benefit. - Fix: Don't break the configuration cache. Zipline's compile task violated a Gradle requirement
by reading another task's property before that task had completed. - New:
ZiplineFunction.asDynamicFunction()
short-circuits Kotlin Serialization in Kotlin/JS. This
new mechanism allows performance-sensitive code to reduce the amount of work required to call
bridged functions. - Upgrade: [Kotlin Serialization 1.7.0][kotlin_serialization_1_7_0].
1.11.0
- New:
apiTracking
property on thezipline { }
Gradle extension allows disabling API generation. - Fix: Calling
Zipline.close()
will now callZiplineService.close()
on all bound services. Strong
references to the services will also be cleared to prevent reference cycles on native. - Upgrade: [Kotlin 2.0.0][kotlin_2_0_0]]
1.10.0
- Fix: Clean source paths that show up in stack traces.
- Fix: Don't leak Zipline instances. We had a bug where our memory-leak detection itself introduced
a memory leak. We held a reference to a Zipline instance that was intended to be used to report
services that were garbage collected but not closed.