klox
proguard
klox | proguard | |
---|---|---|
7 | 7 | |
17 | 2,571 | |
- | 1.7% | |
2.6 | 7.6 | |
about 2 years ago | 5 days ago | |
Kotlin | Java | |
MIT License | GNU General Public License v3.0 only |
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
proguard
- Guava 32.0 (released today) and the @Beta annotation
-
Obfuscation tutorial (the sequel)
https://github.com/Guardsquare/proguard (not the best but it does work)
-
Show HN: I spent my vacation writing a modern JVM assembler
Nice project! At Guardsquare, we have a similar project: https://github.com/Guardsquare/proguard-assembler
One of the things we use it for is testing: we can craft specific bytecode sequences that we want to test; for example, it's useful to test cases we've seen in the wild (e.g. obfuscated code) or to create a test that doesn't rely on a specific compiler/version.
An example of using the assembler from a ProGuard unit test https://github.com/Guardsquare/proguard/blob/master/base/src...
- ProGuard is a free shrinker, optimizer, obfuscator, and preverifier for Java bytecode
-
AppSweep, mobile application scanning for developers
ProGuard is free and open-source; https://github.com/Guardsquare/proguard
-
Using ProGuard with AGP 7 - The ProGuard Gradle plugin
With the upcoming release of AGP 7, ProGuard needs a new way of integrating into Android projects. Therefore, as part of the latest ProGuard 7.1 release, we developed a Gradle plugin for ProGuard. With this plugin ProGuard integrates into your existing gradle process, so that you can keep using ProGuard with AGP 7. You can find the plugin in the ProGuard GitHub repository.
What are some alternatives?
proguard-core - Library to read, write, analyze, and process java bytecode
yGuard - The open-source Java obfuscation tool working with Ant and Gradle by yWorks - the diagramming experts
Grasmin - Groovy AST Transformation to allow writing Jasmin code (JVM bytecode) directly on groovy files
kotlin-native - Kotlin/Native infrastructure
Conceal SharedPreferences - Android Secure SharedPreferences Using Facebook Conceal Encryption
YAIL - Programming language where you can code using emojis 😌
javafx-gradle-plugin - Gradle plugin for JavaFX
jlox-plus - Jlox+ is a superset of the Lox programming language!
appsweep-gradle - This Gradle plugin can be used to continuously integrate app scanning using AppSweep into your Android app build process
jasm - A JVM assembler for the modern age
kotlin-metadata-printer - Prints the Kotlin metadata attached to Java class files