klox
kotlin-native
klox | kotlin-native | |
---|---|---|
7 | 2 | |
17 | 7,103 | |
- | - | |
2.6 | 9.1 | |
about 2 years ago | over 2 years ago | |
Kotlin | Kotlin | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
klox
-
Using Advent of Code to test C3
Last year I did the same: using my extended implementation of Lox. I didn't get so far in Advent of Code itself (only 4 days) since I spent much more time adding features to the language / standard library! Standard Lox as implemented in the Crafting Interpreters book is lacking many useful things including input reading, arrays, collections like sets & hash maps. Example: https://github.com/mrjameshamilton/klox/blob/master/examples/aoc-2021/advent-day01.lox
-
JEP draft: Classfile API
I was also experimenting in Kotlin with some higher-level helper functions for the ProGuardCORE code builder, like using code blocks for try-catch, switches etc
-
Show HN: I spent my vacation writing a modern JVM assembler
Something else that could make your code generation for your JVM language easier: ProGuardCORE (https://github.com/Guardsquare/proguard-core). It can be used to read, generate and analyse Java bytecode.
Some examples for code generation: ProGuard where the project originated (https://github.com/Guardsquare/proguard), Brainf*ck compiler (https://github.com/mrjameshamilton/bf), Lox compiler (https://github.com/mrjameshamilton/klox)
Disclaimer: I work at Guardsquare on ProGuardCORE so may be biased ;)
-
Looking for resources on building a compiler
I implemented Lox in Kotlin based on the book's Java interpreter then added a JVM backend using ProGuardCORE: https://github.com/mrjameshamilton/klox
-
Crafting Interpreters – Web Version
It's a great book! I really liked how it guides step-by-step, always having something working building up to the full interpreter for Lox. I haven't yet gotten around to the 2nd part of the book (the C based interpreter/vm) because I got carried away with adding extra features to my Kotlin Lox implementation (including a JVM backend)! https://github.com/mrjameshamilton/klox
-
Is there any books or guides on how to target JVM bytecode?
Not a book or guide but a useful library for working with/generating JVM class files is ProGuardCORE. It's the underlying library used by ProGuard and I also recently used it to add a JVM backend to my implementation of Lox from the Crafting Interpreters book.
-
Concise language to write an interpreter for?
My implementation can be found here: https://github.com/mrjameshamilton/klox
kotlin-native
-
KMM for custom SDK
There are linked issues at the bottom of https://github.com/JetBrains/kotlin-native/issues/2423 with more detail.
-
Our first year with Kotlin Multiplatform
The first one concerned how to optimally build Kotlin code as a framework for iOS apps. Even today, a year later, this topic is still not completely resolved, but the solution in the form of the so-called Umbrella module (or Integration module) turned out to be functional and sufficient for our needs, without limiting our work in any way.
What are some alternatives?
proguard-core - Library to read, write, analyze, and process java bytecode
kotlinx.coroutines - Library support for Kotlin coroutines
Grasmin - Groovy AST Transformation to allow writing Jasmin code (JVM bytecode) directly on groovy files
manyclangs - Repository hosting unofficial binary pack files for many commits of LLVM
YAIL - Programming language where you can code using emojis 😌
prog8 - high level programming language and compiler targeting 6502 machines such as the C-64 and CommanderX16
jlox-plus - Jlox+ is a superset of the Lox programming language!
kotlin - The Kotlin Programming Language.
jasm - A JVM assembler for the modern age
dstep - A tool for converting C and Objective-C headers to D modules
jssembly - Jssembly is a library that allows you to execute native assembly from Java.
racket-llvm - racket llvm C-API bindings