A next generation multi-runtime dynamic programming language for the JVM. InvokeDynamic is our first name!
██████ ██████ ██ ██ ██ █████ ███ ██ ██████
██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ ██
██████ ██ ██ ███ ██ ███████ ██ ██ ██ ██ ███
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
██████ ██████ ██ ██ ███████ ██ ██ ██ ████ ██████
Because of God's grace, this project exists. If you don't like this, then don't read it, it's not for you.
"Therefore being justified by faith, we have peace with God through our Lord Jesus Christ: By whom also we have access by faith into this grace wherein we stand, and rejoice in hope of the glory of God. And not only so, but we glory in tribulations also: knowing that tribulation worketh patience; And patience, experience; and experience, hope: And hope maketh not ashamed; because the love of God is shed abroad in our hearts by the Holy Ghost which is given unto us. ." Romans 5:5
The project is split into multiple sub-projects:
- compiler - The BoxLang Compiler/Parser and ByteCode Generator
- runtime - The BoxLang Core Runtime
- JDK 17 LTS is our compiled code JDK Baseline which will be supported until 2026 with extended support until 2029.
- https://www.oracle.com/java/technologies/java-se-support-roadmap.html
You will find a .vscode
folder in the root. This contains our custom shortcuts, mappings, snippets, builds and more.
Snippet | Description |
---|---|
header |
Adds a license header |
testclass |
Creates a Junit5 test class |
The output folder used for the builds are
build/**
which can be found in each of the multi-project folders.
Task | Description |
---|---|
assemble |
Build all tasks: build/libs, build/scripts, build/distributions |
build |
The default lifecycle task that triggers the build process, including tasks like clean , assemble , and others. |
clean |
Deletes the build folders. It helps ensure a clean build by removing any previously generated artifacts. |
compileJava |
Compiles Java source code files located in the src/main/java directory |
compileTestJava |
Compiles Java test source code files located in the src/test/java directory |
getDependencies |
Downloads all the dependencies defined in build.gradle and puts them in the build/dependencies folder |
dependencyUpdates |
Checks for updated versions of all dependencies |
jar |
Packages your project's compiled classes and resources into a JAR file build/libs folder |
spotlessApply |
Runs the Spotless plugin to format the code |
spotlessCheck |
Runs the Spotless plugin to check the formatting of the code |
tasks |
Show all the available tasks in the project |
test |
Executes the unit tests in your project and produces the reports in the build/reports/tests folder |
- Run a single test:
gradle test --tests FooTest
- Run several tests and then watch them for changes
gradle test --tests FooTest --tests BarTest --continuous
- Run Tests with a pattern match and watch for changes
gradle test --tests "Array*" --continuous
Here is a listing of all of our core dependencies. If you add one, make sure you document it here.
Dependency | Version | License | Description |
---|---|---|---|
apache-commons-lang3 | 3.12.0 | Apache2 | Used for many utilities, class helpers and more |
boxlang-compiler | 1.0.0 | Apache2 | The BoxLang Parser, Compiler, and ByteCode Generator |
caffeine | 3.1.8 | Apache2 | Caching engine |
slf4j-api | 2.0.11 | MIT | API for SLF4J (The Simple Logging Facade for Java) |
slf4j-jdk14 | 2.0.11 | MIT | SLF4J JDK14 Provider |
Dependency | Version | License | Description |
---|---|---|---|
antlr4-runtime | 4.12.0 | BSD 3-clause | ANTLR parser |
commons-cli | 1.5.0 | Apache 2 | Apache Commons CLI provides a simple API for presenting, processing and validating a Command Line Interface. |
commons-io | 2.13.0 | Apache 2 | The Apache Commons IO library contains utility classes, stream implementations, file filters, file comparators, endian transformation classes, and much more. |
commons-text | 1.10.0 | Apache 2 | The Commons Text library provides additions to the standard JDK text handling. It includes algorithms for string similarity and for calculating the distance between strings. |
javaparser-symbol-solver-core | 3.25.4 | Apache 2 | Java 1-17 Parser and Abstract Syntax Tree for Java with advanced analysis functionalities. |
kolasu-core | 1.5.24 | Apache 2 | Kotlin Language Support – AST Library |
slf4j-api | 2.0.11 | MIT | API for SLF4J (The Simple Logging Facade for Java) |
slf4j-jdk14 | 2.0.11 | MIT | SLF4J JDK14 Provider |
- All code should be formatted using either our Java Formatter or the CFFormatter.
- All code should have a license/copyright header based on CodeHeader.txt
Made with