Skip to content

Jule 0.0.9

Pre-release
Pre-release
Compare
Choose a tag to compare
@mertcandav mertcandav released this 13 Mar 10:05
· 1722 commits to master since this release

Language

  • add: operator overloading via reserved methods
  • add: the eq, gt, gt_eq, lt, lt_eq, shl, shr, add, div, sub mul, bit_or, bit_and, bit_xor, neg, pos, add_assign, sub_assign, div_assign, mul_assign, mod_assign, shl_assign, shr_assign, bit_or_assign, bit_and_assign, and bit_xor_assign reserved methods
  • update: the namespace directive implies the typedef directive for structures
  • update: if structure field is interior mutable, it will not evaluated as mutability risk during assignments or cloning

Compiler

  • compiler: add the —compiler-path option
  • compiler: fix —opt-copy
  • compiler: fix —opt-deadcode eliminates test functions on testing compilation
  • compiler: process exit code will be 1 instead of 0 if any test failed
  • compiler: compile built-in swap methods with debug information if production compilation disabled
  • compiler: fix and optimize —opt-deadcode
  • compiler: fix cross-transpilation is not imitates the target architecture for architecture-dependent types
  • compiler: fix constant evaluation is not imitates the arithmetic types
  • parser: avoid produce error for already logged another error on case expression parsing
  • parser: fix empty index expression causes compiler crash with nil pointer dereferencing
  • parser: empty slice literal element period causes crash
  • sema: avoid detected duplicated logs
  • sema: fix enum field value processing
  • sema: fix runtime enum type safety
  • sema: fix unary operator analysis will panics because of skip catching of nil eval results
  • sema: fix case expression analysis accepts valid type declarations for expression matching
  • sema: catch ignore operatored sub-ident expressions
  • sema: improve logging of non-function call errors
  • sema: fix multi-assignment declarations allows variable shadowing even when shadowing disabled
  • sema: fix integer division result evaluated as floating-point
  • sema: fix built-in functions can crash
  • sema: fix unary plus and unary minus operator eval
  • sema: improve type safety of constant evaluation
  • sema: fix lvalue slicing expressions evaluated as non-lvalue

API

  • api: add debug information to built-in swap methods for non-production compilations

Standard Library

  • add: std::math::big
  • reimplement: std::process
  • std::conv: add the atoi function
  • std::conv: use exceptionals instead of returning error codes
  • std::math::cmplx: add the +=, -=, *= and /= operator overloading to the Cmplx structure
  • std::math::cmplx: add the unary +, - operator overloading to the Cmplx structure
  • std::strings: fix the trim, trim_left, and trim_right functions
  • std::sync: reimplement the Mutex
  • std::sync: add the new static method to the Once
  • std::sync: add the new static method to the WaitGroup
  • std::sync::atomic: fix the store function always uses the i32 type instead of T
  • std::sync: add support for the int and uint type for atomic functions
  • std::jule::build: add the OS, and ARCH static variables
  • std::jule::constant: add the gt_eq, and lt_eq methods to the Const structure
  • std::jule::constant: rename the eqs method as eq of the Const structure
  • std::jule::sema: remove the refers field of the FnIns structure
  • std::jule::sema: add the FuncPattern structure
  • std::jule::sema: add the Operators structure
  • std::jule::types: add the update_target function
  • std::jule::types: the bit and type conversion functions are uses int instead of u64 now
  • std::jule::types: the BIT_SIZE, SYS_INT, and SYS_UINT constants are static now

Legacy Support

Jule code written for older versions is not guaranteed to compatible maintenance-free.