Jule 0.0.11
Pre-release
Pre-release
mertcandav
released this
23 Apr 11:31
·
1514 commits
to master
since this release
Language
- add: buffered strings
- add: type-enums (aka sum types)
- update: enum syntax
- update: exceptionals are not allowed in global scope
- update: built-in
copy
method
Compiler
- compiler: fix code generation for debug location information data
- compiler: fix code generation for unused traits
- compiler: code generation for common sub-ident
- compiler: fix code generation for slice literals
- compiler: fix code generation with
—opt-access
- compiler: fix and improve
—opt-deadcode
- compiler: fix optimization processing jumps some flags in some cases
- parser: fix variadic operator parsing
- sema: fix exceptional forwarding
- sema: fix range iteration key variable analysis
- sema: fix structure instantiation analysis
- sema: fix
goto
statement analysis not catches exceptional scopes of function calls - sema: fix generic function instance modeling
- sema: fix generic function analysis
- sema: fix global type alias declarations can take ignore (
_
) ident
API
jule::Map
: use FNV-1A algorithm for hashingjule::Any
: optimize type compatibility checkingjule::Any
: use reference counting to manage internal allocation with optimizationsjule::Trait
: optimize type compatibility checking
Standard Library
- std::io: add the
file
,read_line_bytes
andwrite_str
methods to theFileStream
- std::io: the
read_line
method returnsstr
now of theFileStream
- std::io:: add the
write_str
method to theByteStream
- std::io:: the
stdin
,stdout
, andstderr
methods returnsFileStream
now - std::fmt: print
<nil>
instead ofnil
fornil
data - std::flag: fix dash processing
- std::math::big: add the
trailing_zeros
method to theInt
- std::math::rand:
Rand
’s methods are immutable now - std::math::rand: add the
next
, andnextn
methods to theRand
- std::math::rand:
Seed
stands foru64
now - std::strings: add the
append_byte
methods - std::strings: optimized with buffered strings
- std::jule::integrated: remove
type_id
function - std::jule::ast: use type-enum for node type aliases
- use std::jule::sema: use type-enum for
Stmt
, andExprModel
type aliases
Legacy Support
Some standard library packages use type-enums and other new changes.
New source codes may will not compile with older compilers.