Jule 0.0.8
Pre-release
Pre-release
Language
- add: the
SMALLEST_NON_ZERO
static field to thef64
type - add: the
SMALLEST_NON_ZERO
static field to thef32
type - add: underscore support for numeric literals
- add: the
^
operator support to integer enums - update: the
int
,uint
anduintptr
types are not alias anymore, just compatible with itself - update: integer types are now compatible with itself only
About Versioning
Jule releases will no longer contain designations such as beta.
Release and compiler versions will be in this format.
Compiler
- add: support for code emit from Jule source code into back-end
- improve: the
—opt-append
applies optimization by skip capacity checking - improve: the
—opt-math
optimizes multiplications as bit-shifting if possible - improve: the
—opt-math
optimizes divisions as bit-shifting if possible - improve: normalize the pah information when production compilation enabled
- fix: wrong define ordering because of cpp-linked dependencies
- lex: fix octal literal lexing
- parser: fix genericed structure declaration body missing error causes index overflow
- sema: fix expression checking allows type declarations
- sema: fix type safety checking for variadic arguments
- sema: catch instantiation cycles
- sema: fix type alias which is could not evaluated causes crash because of nil pointer dereferencing
- sema: fix genericed type declaration checking that base type comes from another package
- sema: fix evluation of genericed type declaration that base type comes from another package
- sema: fix private methods of structures are allowed to access out of package
- sema: fix use declaration checking
API
- fix: debug compilation support of the
unsafe_div
function - fix: debug compilation support of the
unsafe_mod
function - fix:
Str::operator<
andStr::operator>
returns wrong result - fix:
Trait<Mask>::operator==
always returns true because of comparing itself, thanks to @vil02 - fix:
Trait<Mask>::operator T(void)
is not returns anything, thanks to @vil02
Standard Library
- add:
std::queue
- add:
std::stack
- std::fs: use the
int
type instead of thei64
type for theFile
’sseek
method - std::jule::sema: add the
Kind
trait and implement to known Jule types - std::jule::sema: add the
OperandExprModel
structure - std::jule::sema: update kind as
&OperandExprModel
of theBinopExprModel
’sleft
andright
fields - std::jule::sema: update kind as
&OperandExprModel
of theAssign
’sl
andr
fields - std::jule::types: add the
SMALLEST_NON_ZERO_F64
constant - std::jule::types: add the
SMALLEST_NON_ZERO_F32
constant - std::jule::integrated: rename as
emit
theinline
function - std::jule::integrated: add variadic argument to the
emit
for emit code from Jule source code - std::vec: add the
fit
, andclear
methods to theVec[T]
structure - std::sys: use the
int
type instead of thei64
type for theseek
function
Legacy Support
Upgrading from previous versions may encounter compilation issues as important aspects such as the type system have been updated.
Experimental
The Windows AMD64 build is not compiled on a local machine, unlike previous versions. In order to reduce the release process to a single device as much as possible, it was compiled on a Windows ARM64 machine. Therefore, relevant build is experimental. Please let me know if there are any problems.