Releases: KraitDev/Krait
Releases · KraitDev/Krait
Krait v1.0.0-arm
This is the Official release of Krait v1.0.0 for ARM and Apple Silicon CPUs.
Added
- Rust-like Ownership Memory Model:
- Implemented static Move Semantics analysis in semantic checks to prevent double-free and use-after-free vulnerabilities.
- Implemented Auto-Drop generation in the compiler: scope variables of struct pointer types are automatically deallocated via native
@freecalls when they exit their parent block.
- Native Loop Generation (
repeat):- Added optimal loop code generation in the LLVM backend.
- Implemented Duplicate Alloca Elimination in the register allocator to support clean variable reassignment inside nested scopes.
- LLM-Friendly & Actionable Compiler Diagnostics:
- Replaced standard error strings in the semantic analyzer with beautifully formatted, colored diagnostic blocks outlining the specific error type, a detailed explanation of why it occurred, and clear options to resolve them.
- Module System & Import Resolution:
- Added support for the
importstatement in the lexer, parser, CLI, and interpreter. - Implemented recursive import resolution for resolving standard and local modules dynamically.
- Added support for the
- Standard Library Modules:
- Exposed standard input/output FFI functions (
putchar) inlib/io.kr. - Added pure Krait standard operations (
abs, loop-basedpower) inlib/math.kr.
- Exposed standard input/output FFI functions (
- Formatting CLI Subcommand:
- Exposed the standard formatting library directly in the CLI with
krait fmt <file>andkrait format <file>commands.
- Exposed the standard formatting library directly in the CLI with
Changed
- Compiler backend optimization:
- Configured compiler to pass
-O3(Maximum optimization),-flto(Link-Time Optimization), and-march=x86-64-v2hardware instruction optimizations to Clang/LLVM.
- Configured compiler to pass
- Interpreter block scoping:
- Patched the tree-walking interpreter to correctly propagate variable changes back to outer scopes while keeping block-local variables isolated.
Krait v1.0.0
This major release marks the transition of Krait into a production-ready systems programming language. Krait v1.0.0 brings advanced type safety, standard library modularity, a Rust-like compile-time ownership memory model, loop optimizations, and extensive developer tools.
Added
- Rust-like Ownership Memory Model:
- Implemented static Move Semantics analysis in semantic checks to prevent double-free and use-after-free vulnerabilities.
- Implemented Auto-Drop generation in the compiler: scope variables of struct pointer types are automatically deallocated via native
@freecalls when they exit their parent block.
- Native Loop Generation (
repeat):- Added optimal loop code generation in the LLVM backend.
- Implemented Duplicate Alloca Elimination in the register allocator to support clean variable reassignment inside nested scopes.
- LLM-Friendly & Actionable Compiler Diagnostics:
- Replaced standard error strings in the semantic analyzer with beautifully formatted, colored diagnostic blocks outlining the specific error type, a detailed explanation of why it occurred, and clear options to resolve them.
- Module System & Import Resolution:
- Added support for the
importstatement in the lexer, parser, CLI, and interpreter. - Implemented recursive import resolution for resolving standard and local modules dynamically.
- Added support for the
- Standard Library Modules:
- Exposed standard input/output FFI functions (
putchar) inlib/io.kr. - Added pure Krait standard operations (
abs, loop-basedpower) inlib/math.kr.
- Exposed standard input/output FFI functions (
- Formatting CLI Subcommand:
- Exposed the standard formatting library directly in the CLI with
krait fmt <file>andkrait format <file>commands.
- Exposed the standard formatting library directly in the CLI with
Changed
- Compiler backend optimization:
- Configured compiler to pass
-O3(Maximum optimization),-flto(Link-Time Optimization), and-march=x86-64-v2hardware instruction optimizations to Clang/LLVM.
- Configured compiler to pass
- Interpreter block scoping:
- Patched the tree-walking interpreter to correctly propagate variable changes back to outer scopes while keeping block-local variables isolated.