Jule 0.0.10
Pre-release
Pre-release
mertcandav
released this
03 Apr 12:42
·
1637 commits
to master
since this release
Language
- remove: ternary operator
- update: init function can be declared and defined more than one
- update: init functions are cannot evaluate
- update: the built-in
clone
method support non-lvalue expressions now - update: the cloning rules
Compiler
- compiler: reimplement function and trait code generation
- compiler: generates object code with explicit types such as
i32
forint
if target platform is 32-bit - compiler: minor improvements for log messages
- compiler: fix and improve
—opt-cond
- compiler: improve
—opt-math
- compiler: improve
—opt-copy
- compiler: generic compile-time panic logs use location of relevant function call
- compiler: code generation for the structure allocation with built-in
new
function calls - compiler: remove all documentation analysis features and related definitions
- compiler: fix the
Clone
derive - parser: fix statement parsing
- parser: fix match-case parsing not catches trailing invalid tokens
- parser: catch trailing unused directives
- sema: various optimizations
- sema: fix generic type alias eval
- sema: fix constant
||
operator eval - sema: fix the unary
*
operator eval - sema: fix comparing of function types
- sema: fix and improve checking for missing return statements
- sema: fix checking of exceptional handling scopes
- sema: fix and optimize structure sub-ident eval
- sema: fix analysis of type-matching for generic types
- sema: fix structure ast node instantiation
- sema: fix receiver parameter analysis
API
- fix: C++14 compatibility of the
jule::Str
- reimplement:
jule::Trait
- remove: the deprecated
Dispose
trait structure - update: all
nullptr
compatible types (except slice) writes<nil>
tostd::ostream
if it is nil - update: the non-production is not need to debug information for the
jule::new_struct<T>
and thejule::new_struct_ptr<T>
functions - remove: deprecated
jule::new_struct<T>
andjule::new_struct_ptr<T>
functions
Standard Library
- add: std::encoding::ascii85
- add: std::jule::importer
- reimplement: std::encoding::binary
- std::io: add the
WriterCloser
trait - std::io: fix and optimize the
ByteStream
- std::math::big: fix decimal formatting sometimes causes crash when allocating buffer
- std::flag: fix the
add[T]
method of theFlagSet
- std::jule: use
&Token
instead ofToken
as possible - std::jule::ast: fix
is_self
method of theParamDecl
- std::jule::ast: use
&Expr
instead ofExprData
as possible to store expressions - std::jule::ast: rename the
decls
field asnodes
ofAst
- std::jule::ast: the
impls
field merged with thenodes
field of theAst
- std::jule::lex: reimplement the
File
- std::jule::sema: remove the
OperatorMap
- std::jule::sema: remove the
token
field of theStructLitExprModel
- std::jule::sema: add the
types
method to theFnIns
Additional
JuleFmt
Developed official code formatter for Jule. Although it is still in beta, it has become reliable enough to be compiled from the source and used. The complete source code of Jule 0.0.10 version have been formatted with JuleFmt.
The darwin-amd64
Builds
This release includes release build for the darwin-amd64
architecture which is compatible with intel Macs. This build is experimental. Therefore please report any problems to us.