Caution
The outlook for Ignis lang may change as the language is under development and evolving; it is currently in its early stages and, for now, is an experimental language.
Ignis is a general-purpose programming language with strong, static typing, and immutability by default for variables. The languages that inspired Ignis are TypeScript and Rust. The goal of Ignis is not to be used by everyone but to be a language that allows me to learn how programming languages are created and work. And, if in the process I can use it to create scripts that replace code written in Bash or other languages, especially Lua and Python, that would be ideal.
- Rust/Cargo version 1.74 or higher
cargo install --git https://gitlab.com/Ignis/ignis.git --branch dev
# or
git clone https://gitlab.com/Ignis/ignis.git
cd ignis
cargo install --path . ignis
# Or
cargo build --release
Important
The only backend that is currently running is the Lua backend.
ignis build main.ign
import { io } from "std::io";
function sum(nums: i64[]): i64 {
let mut total: i64 = 0;
for (let i = 0; i < nums.length; i++) {
total = total + nums[i];
}
return total;
}
function main(): void {
let array: i64[] = [1, 2, 3, 4, 5];
io::println("Lenght: " + array.length.toString());
io::println(sum(array));
}
Ignis lang is an open project for contributions. If you're interested in collaborating, you can:
- Report bugs or issues.
- Propose new features.
- Submit pull requests with improvements or new features.