Beta 0.0.6
Pre-release
Pre-release
mertcandav
released this
04 Nov 10:56
·
2070 commits
to master
since this release
Language
- reimplement: directives
- add: exceptionals
- update: file annotation and build directive for platform specific programming
- add: C support for interoperability
- add: special syntax to fill arrays
- update: type safety rules of enums
- add:
production
, andtest
variables for directive eval - reimplement: aliased use declarations
- add: integrated testing
- add: modules
- add: internal packages
Compiler
- compiler: add production compilation
- compiler: better compatibility with gnu compiler collection (gcc)
- compiler: improve code generation
- compiler: fix code generation for binary expressions
- compiler: use std::process instead of C’s
system
call and fixsignal code 17
problem - compiler: improve handling of external compiler errors
- compiler: fix deadcode optimization
- compiler: add
deprecated
, andtest
directives - lex: fix
!
operator accepted as binary operator - parser: fix if-else chain parsing
- parser: fix structure literal parsing
- sema: fix declarations allowed for casting
- sema: fix binary eval
- sema: fix safety of builtin string conversions
- sema: improve and fix error messages
- sema: fix type safety of assignments
- sema: fix safety of deferred scopes
- sema: fix numeric type compatibility checking of binary expressions
- sema: fix signed integer and unsigned integer compatibility
- sema: fix invalid binary operator message of string type
- sema: add prefix type support for numeric types
- sema: fix built-in define processing of eval
- sema: fix built-in define processing of type checker
API
- improve: c++20 or higher compatibility with GCC
- api: minor optimizations for atomicity functionalities
- use: noexcept as possible
- reimplement: panic calls and stop using exceptions
- slice: fix allocations
- str: optimize
has_suffix
method - remove: termination header
- remove: signal header
- rename
ARCH_64BIT
asARCH_X64
andARCH_32BIT
asARCH_X32
Standard Library
- add: std::testing
- remove: std::errors
- remove:
std::runtime
and move content intostd::env
- reimplement: std::debug
- builtin: add
assert
function - builtin: add
swap
method to slice and array types - builtin: remove
Error
trait - std::flag: use exceptionals for error handling
- std::io: use exceptionals for error handling
- std::process: add
Cmd
struct - std::jule::integrated: add
inline
function - std::jule::integrated: remove
puts
function - std::jule::ast: remove
is_fn_call
method ofExpr
struct - std::jule::sema: remove
BUILTIN_TRAIT_DISPOSE
global - std::jule::sema: remove
BuiltinRealCallExprModel
,BuiltinDropCallExprModel
,BuiltinErrorTraitSubIdentExprModel
structs
Compatibility and Legacy
Due to the innovations added with this update, older versions will not support some parts of the standard library and the compiler will be outdated to compile from source. Changes such as exceptions, integrated testing and assertions have also been implemented in the standard library. For this reason, older versions are in legacy status because they do not have new error handling approaches.