Releases: JeneLitsch/Litan
Releases · JeneLitsch/Litan
Version 2.2
New Features
- bitwise operator & | ^
- std::bits::set
- std::bits::get
- std::e constant
- std::tau constant
- std::cbrt (cube root)
- std::lerp
Fixes
- / and % now throw correct exceptions for division by 0
- rand_int and rand_float now handle min > max correctly
Version 2.1
New Features (core language)
- Invocations (callable)(params...)
- Power operator **
- switch-statement
- choose-expression
New featres (std library)
- std::typename
- Enum with type ids: std::type::
- std::chain
- More typecheck functions:
- std::is_fxptr
- std::is_external
- std::is_numeric
- std::is_integral
- Fixed parameter invoke functions
- std::invoke_0
- std::invoke_1
- std::invoke_2
- std::invoke_3
Version 2.0
New features
- Enums
- Functions qualifier
- Struct presets
- Basic optimizations (constant folding and branch pre-evaluation)
- Args can be passed (as an array of strings) to main function
- Global constants (define)
- Colorized output with ANSI-codes
- New build-in system
Improvements
- New for-loop syntax and more flexible usage
Removed
- Inline asm-functions are removed and replace by build-ins
Version 2.0 [Release Candidate 1]
New features
- Enums
- Functions qualifier
- Struct presets
- Basic optimizations (constant folding and branch pre-evaluation)
- Args can be passed (as an array of strings) to main function
- Global constants (define)
- Colorized output with ANSI-codes
- New build-in system
Improvements
- New for-loop syntax and more flexible usage
Removed
- Inline asm-functions are removed and replace by build-ins
Version 1.3
New Features
- Random library
- std::random::mersenne
- std::random::rand
- std::random::rand_int
- std::random::rand_float
- std::random::decision
Changes
- Changed opcode for algorithm
Version 1.2
New Features
- Short expression only functions
- Approximation comparison ~~ and ~! for
- String streams
- std::read_all
- std::read_char
- std::read_bool
- std::is_good
Changes
- Creation of negative sized or out of range ranges throws
- operator [] for ranges
Version 1.1
New Features
- Three-way comparison <=>
- Shift assign operators <<= and >>=
- IIFE / block expressions
- Ternary operator c?a:b
- Elvis operator a?:b
- Null coalescing operator a ?? b
- Null-check operator ?a
Changes & Improvements
- Removed some implicit conversions to String or Array
Version 1.0
Features
- Exceptions
- New and shorter lambda syntax
- Algorithms
- Map (constructor: std::map())
- Queue (constructor: std::queue())
- Stack (constructor: std::stack())
- Range
- New math functions
Changes & Improvements
- Better compiler errors
- Standard library namespace is now std::
- More consistent and improved casts and conversions
Fixes
- Namespace resolution
Version 0.7
New features
- lambdas can capture values
- structs with dynamic members
- ltn::pair(...) "constructor" which creates a struct with two members (first and second)
+ Some bug fixes and improvements
Version 0.6
- Operators: +=, -=, *=, /= and %=
- Simple lambdas
- Operators && and ||
- Combined ltn for compiling and running directly
- Garbage collection can handle cyclic dependencies
- 0b and 0x integer literals
- Filestreams: ltn::fin(path) and ltn::fout(path)
- IO: ltn::isEof(stream)