Files
amethyst/marmotBench/build.gradle.kts
T
Vitor PamplonaandClaude Opus 5.5 6130766bcb refactor: take Marmot and cordn from marmot-kmp and cordn-kmp
The MLS bindings left quartz (3.0.0) for their own libraries, and their headless group clients
went with them, so commons now depends on libs.marmot and libs.cordn.

- Imports move from com.vitorpamplona.quartz.marmot/cordn to com.vitorpamplona.marmot/cordn, and
  from commons.marmot/cordn to marmot.client/cordn.client for the classes that moved
  (MarmotManager, MarmotSyncPolicy, MarmotPushCoordinator, ..., CordnGroupManager,
  CordnKeyPackages, CordnSyncLoop, CordnCoordinatorRegistry, ...).
- What stays is the app: the encrypted stores, the chatrooms and lists, the relay-pool adapter,
  CordnLinks (split out of CordnCoordinatorLink.kt), the file stores and migrations, the UI.
- MarmotManager.syncMetadataTo becomes an extension next to MarmotGroupChatroom, with its own
  test; the cordn-vs-Marmot tests from quartz live here now, the one place with both.
- Marmot's kinds register with quartz's EventFactory from EventCache, the Android Application and
  amy's main. GiftWrapDecryptor is gone: quartz's GiftWrapEvent.unwrapAndUnsealOrNull replaces it.
- Builds against unreleased quartz 3.0.0, marmot 1.0.0 and cordn 1.0.0: until they publish, pass
  -PquartzDir=../quartz -PmarmotKmpDir=../marmot-kmp -PcordnKmpDir=../cordn-kmp.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012ts63GVTwvmPjvikAdWihn
2026-10-23 16:28:21 +00:00

39 lines
1.2 KiB
Kotlin

import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
alias(libs.plugins.jetbrainsKotlinJvm)
application
}
application {
mainClass.set("com.vitorpamplona.marmotbench.MainKt")
applicationName = "marmotbench"
// `-XX:+UseSerialGC` keeps the allocation counter attributable to the
// benchmark thread instead of to background GC worker threads, and a heap
// big enough that a collection never lands mid-measurement. Both matter
// more here than raw throughput: the number we care about is bytes
// allocated per operation, and a GC pause inside a sample corrupts the
// latency percentile it lands in.
applicationDefaultJvmArgs = listOf("-Xmx4g", "-Xms4g", "-XX:+UseSerialGC", "-Dfile.encoding=UTF-8")
}
kotlin {
jvmToolchain(21)
compilerOptions {
jvmTarget.set(JvmTarget.JVM_21)
}
}
dependencies {
// The MLS engine and the Marmot codecs under test.
implementation(libs.quartz)
implementation(libs.marmot)
// MarmotManager — the app-level entry points MDK's engine benches measure.
implementation(project(":commons"))
implementation(libs.kotlinx.coroutines.core)
// JNI secp256k1 backend quartz needs at runtime on plain JVM.
runtimeOnly(libs.secp256k1.kmp.jni.jvm)
}