Releases: julelang/jule
Beta 0.0.7
Language
- update rule: accept anonymous function fields as C++ functions of cpp-linked structures
- add: default expression support for structure fields
- add: the reserved
to_str
method for structures - add: support for the
<
,>
,<=
,>=
operators to thestr
type - remove: built-in methods of the
str
type - remove: the built-in
Dispose
trait and add the reserveddispose
method instead
Compiler
- compiler: fix constant variable code generation
- compiler: add information message for blank execution
- compiler: improve c++14 compatibility
- compiler: improve runtime panics
- compiler: add the
clang
,gcc
,cpp14
,cpp17
, andcpp20
variables to directive expressions - compiler: add the
-—disable-rc
option to disable reference counting - compiler: add the
-—disable-safety
option to disable safety measures - compiler: add the
—-opt-cond
optimization flag - compiler: fix code generation for testing
- lex: fix column data processing
- sema: add name selection support for impl types such as namespace selections
- sema: fix checking for the built-in
clone
function - sema: fix constant bitwise eval
- sema: add constant eval support for len field of constant strings
- sema: the built-in
copy
function no more mutability error for immutable typed source argument
API
- add: the
clone
function support for thef32
, andf64
types - add: the
<
,>
,<=
, and>=
operator overloading for the string type - improve: index out of range error messages
- improve: panic messages of builtin swap functions
- slices: slicing algorithm no more panics for nil slice and zero length slicing
- traits: fix polymorphism processing
Standard Library
- add: std::bytes
- add: std::encoding::csv
- add: std::math::cmplx
- add: std::strings
- std::mem: add the
free
function - std::io: add the
ByteStream
structure - std::jule::constant: add string support to the
gt
, andlt
methods of theConst
structure
Release Period Update
Releases no more include build for the darwin-amd64
architecture.
Past builds has possible incompatibilities and etc. Sorry for that.
It can be still available via compile from source method, this is not darwin-amd64
's end of life.
Beta 0.0.6
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.
Beta 0.0.5
Warning
This is a later update. Beta 0.0.5 may have major bugs. It has been observed that it generates code in a way that may cause problems with binary eval. Use IR distributions for the latest and most stable version.
Release notes are here.
Beta 0.0.4
Release notes are here.
Beta 0.0.3
Release notes are here.
Beta 0.0.2
Release notes are here.
Beta 0.0.1
This is the first beta release of JuleC.
Includes bootstrapped compiler, standard library and API.
Note
There may be some critical bugs in this release.
Please report on Jule Issue Tracker if you have any issue.
Known Issues and Special Cases
- The command
version
shows version as@master
- You can't use directories named as
version
,tool
or other compiler commands - Windows build not have statically linked STL.