![larry the smll mascott](https://github.com/hexaredecimal/ML/raw/master/assets/_bfbc2acb-e0df-470f-8cb4-ff6e3855fb45-removebg-preview.png)
A small, experimental, general purpose programming language created for exploring alternative ways of writing applications on the JVM
The latest JAVA compiler (with support for java 21 source input)
A rust compiler
import System::Io
fn main(): Unit => println("Hello, world")
After downloading and installing the required software, execute the following commands
$ git clone depth=1 https://github.com/hexaredecimal/ML.git
$ cd ML
$ cargo build
After running these commands you should now have a target folder on the root of the project, then execute the following
$ ./target/debug/smll init # Initialize a new project in the current directory and creates a `project.toml` and a directory named code
$ ./target/debug/smll build # Builds the dependencies and the projects main file
$ ./target/debug/smll run # Run the main program file
- SMLL has a built-in package manager which handles dependencies as they are specified in the
project.toml
file - To add dependencies simply edit the
project.toml
file and add the following:
RaySMLL = "0.0.1"
- Then run build. The compiler will download and install the dependencies in a folder in the current working directory.
- Package manager
-
Add command
for adding new dependencies -
Clean
command for cleaning the project. (This should cause a full rebuild) - Use project version/author info when downloading dependencies
- Package registry here
- Type inference for variables
- Variant enums
- Structs
- Expressions not Statements
SMLL is a ml derived language for the JVM which borrows a lot of concepts from languages such as Standard ML, Rust and ocaml.