Releases: cashapp/zipline
Releases · cashapp/zipline
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.
1.9.0
- Breaking: Reorder the parameters in
ZiplineLoader
soFileSystem
always precedesPath
. - Fix: Release unused services in
Zipline.close()
. This was a memory leak. - Fix: Don't break Gradle's configuration cache in the
ziplineApiDump
task. - New:
ZiplineCryptography
adds aSecureRandom
API for guest code. - New:
Zipline.getOrPutAttachment()
lets you attach application data to a Zipline instance. - New: Support building Zipline with the new Kotlin K2 compiler.
- Upgrade: [Kotlin 1.9.23][kotlin_1_9_23]
- Upgrade: [kotlinx.coroutines 1.8.0][kotlinx_coroutines_1_8_0]
- Upgrade: [Okio 3.9.0][okio_3_9_0]
- Upgrade: [SQLDelight 2.0.2][sqldelight_2_0_2]
1.7.0
- New: Gradle APIs to optimize production builds for either small artifact size or developer
experience. Call the appropriate functions in thezipline {}
block of your build file:zipline { ... optimizeForSmallArtifactSize() }
- Fix: Don't crash when very large
Long
values are sent over a bridged API. Zipline uses JSON to
encode values shared between host and guest, and that converts all primitive numeric types to
Double
. It is necessary to add@Contextual
to all serializedLong
values to get this fix.
1.6.0
- Upgrade: [SQLDelight 2.0.0][sqldelight_2_0_0]
1.5.1
- Fix: remove the Zipline version from the
klib
metadata in thezipline-cinterop-quickjs
artifact. This restores the behavior from 1.4.0 to work around [KT-62515].
1.5.0
- New:
Zipline.eventListener
can be used to get theEventListener
from aZipline
instance. - Upgrade: Kotlin 1.9.20
1.4.0
-
New:
EventListener.Factory
can be used to scope events to a particularZipline
instance. -
New: Support arbitrary metadata in the
ZiplineManifest
. This newMap<String, String>
can be
produced in yourbuild.gradle.kts
file, and consumed from theZiplineManifest
instance.zipline { ... metadata.put("build_timestamp", "2023-10-25T12:00:00T") }
-
Upgrade: OkHttp 4.12.0
-
Upgrade: Okio 3.6.0
1.3.0
- Fix: Configure a 6 MiB stack size by default. Previously Zipline didn't enforce any stack
size limit, which resulted in difficult-to-diagnose crashes when the stack size was exceeded.
Callers must manually ensure their calling stack sizes are larger than 6 MiB! - Fix: Always include type parameters for nested parameterized types.
- Fix: Don't double-free when calling
NSData.dataWithBytesNoCopy
. We had a bug where we were
double-freeing memory in the Kotlin/NativeEcdsaP256
signature verifier. - Upgrade: [Kotlin Serialization 1.6.0][kotlin_serialization_1_6_0].
1.2.0
- Upgrade: Kotlin 1.9.0
- Upgrade: kotlinx.coroutines 1.7.3
1.1.0
- New: Gradle tasks
ziplineApiCheck
andziplineApiDump
. These tasks work like Kotlin’s
Binary compatibility validator:
the Dump task writes your public API to a file (api/zipline-api.toml
) and the the Check
task confirms that your public API matches that file. These two tasks expose the IDs Zipline uses
for functions. The:ziplineApiCheck
task configures itself a dependency of Gradle's:check
task: you'll need to run:ziplineApiDump
when applying this update and each time your public
API changes going forward. - Upgrade: [Kotlin 1.8.21][kotlin_1_8_21].
- Upgrade: [kotlinx.coroutines 1.7.2][kotlinx_coroutines_1_7_2].
- Upgrade: [Kotlin Serialization 1.5.1][kotlin_serialization_1_5_1].