Skip to content

Releases: julelang/jule

Beta 0.0.7

11 Jan 14:09
Compare
Choose a tag to compare
Beta 0.0.7 Pre-release
Pre-release

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 the str type
  • remove: built-in methods of the str type
  • remove: the built-in Dispose trait and add the reserved dispose 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, and cpp20 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 the f32, and f64 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

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

04 Nov 10:56
Compare
Choose a tag to compare
Beta 0.0.6 Pre-release
Pre-release

Language

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 fix signal code 17 problem
  • compiler: improve handling of external compiler errors
  • compiler: fix deadcode optimization
  • compiler: add deprecated, and test 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 as ARCH_X64 and ARCH_32BIT as ARCH_X32

Standard Library

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

11 Oct 14:35
Compare
Choose a tag to compare
Beta 0.0.5 Pre-release
Pre-release

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

17 Sep 13:44
Compare
Choose a tag to compare
Beta 0.0.4 Pre-release
Pre-release

Release notes are here.

Beta 0.0.3

12 Aug 14:54
Compare
Choose a tag to compare
Beta 0.0.3 Pre-release
Pre-release

Release notes are here.

Beta 0.0.2

18 Jul 19:37
Compare
Choose a tag to compare
Beta 0.0.2 Pre-release
Pre-release

Release notes are here.

Beta 0.0.1

17 Jul 12:28
Compare
Choose a tag to compare
Beta 0.0.1 Pre-release
Pre-release

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.