Skip to content

bartekpacia/starlarkt

Repository files navigation

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

About

Implementation of the Starlark programming language in pure Kotlin [WIP]

Resources

License

Stars

0 stars

Watchers

3 watching

Forks

Releases

No releases published