Jule 0.0.9
Pre-release
Pre-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
, andbit_xor_assign
reserved methods - update: the
namespace
directive implies thetypedef
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 of0
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 theCmplx
structure - std::math::cmplx: add the unary
+
,-
operator overloading to theCmplx
structure - std::strings: fix the
trim
,trim_left
, andtrim_right
functions - std::sync: reimplement the
Mutex
- std::sync: add the
new
static method to theOnce
- std::sync: add the
new
static method to theWaitGroup
- std::sync::atomic: fix the
store
function always uses thei32
type instead ofT
- std::sync: add support for the
int
anduint
type for atomic functions - std::jule::build: add the
OS
, andARCH
static variables - std::jule::constant: add the
gt_eq
, andlt_eq
methods to theConst
structure - std::jule::constant: rename the
eqs
method aseq
of theConst
structure - std::jule::sema: remove the
refers
field of theFnIns
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 ofu64
now - std::jule::types: the
BIT_SIZE
,SYS_INT
, andSYS_UINT
constants are static now
Legacy Support
Jule code written for older versions is not guaranteed to compatible maintenance-free.