Skip to content

Releases: JeneLitsch/Litan

Version 2.2

18 May 16:11
Compare
Choose a tag to compare

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

14 May 12:52
Compare
Choose a tag to compare

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

22 Apr 21:47
Compare
Choose a tag to compare

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]

09 Apr 08:37
Compare
Choose a tag to compare
Pre-release

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

15 Mar 11:10
Compare
Choose a tag to compare

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

12 Mar 10:02
Compare
Choose a tag to compare

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

05 Mar 10:58
Compare
Choose a tag to compare

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

26 Feb 14:06
Compare
Choose a tag to compare

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

30 Dec 12:22
Compare
Choose a tag to compare
Version 0.7 Pre-release
Pre-release

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

01 Dec 21:02
Compare
Choose a tag to compare
Version 0.6 Pre-release
Pre-release
  • 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)