Skip to content

Latest commit

 

History

History
102 lines (68 loc) · 3.13 KB

File metadata and controls

102 lines (68 loc) · 3.13 KB

starlarkt

project logo

Implementation of Starlark in pure Kotlin.

Starlark is strongly influenced by Python, Starlark syntax is a strict subset of Python, and Starlark semantics is almost a subset of that language.

Starlark spec

Goals

  • works
  • passes upstream test suite even
  • pure Kotlin Multiplatform (no dependency on the JVM)
  • simplicity of implementation
  • well-documented and reasonably clean code

Non-goals

Resources

Yes, the useful info is kinda all over the place.

Development

Practices

Native executable

Build a native executable (here, Apple Silicon):

$ ./gradlew :app:linkDebugExecutableMacosArm64

Run it:

$ ./app/build/bin/macosArm64/debugExecutable/starlarkt.kexe

JVM

Build a JVM jar and startup script:

$ ./gradlew :app:installJvmDist

Run it:

$ ./app/build/install/app-jvm/bin/app

Tests

Run tests (on JVM, because it supports JUnit, which has more cool features than plain kotlin.test):

$ ./gradlew :interpreter:jvmTest