Skip to content

Jule 0.0.10

Pre-release
Pre-release
Compare
Choose a tag to compare
@mertcandav 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 for int 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> to std::ostream if it is nil
  • update: the non-production is not need to debug information for the jule::new_struct<T> and the jule::new_struct_ptr<T> functions
  • remove: deprecated jule::new_struct<T> and jule::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 the FlagSet
  • std::jule: use &Token instead of Token as possible
  • std::jule::ast: fix is_self method of the ParamDecl
  • std::jule::ast: use &Expr instead of ExprData as possible to store expressions
  • std::jule::ast: rename the decls field as nodes of Ast
  • std::jule::ast: the impls field merged with the nodes field of the Ast
  • std::jule::lex: reimplement the File
  • std::jule::sema: remove the OperatorMap
  • std::jule::sema: remove the token field of the StructLitExprModel
  • std::jule::sema: add the types method to the FnIns

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.

Go to repository of 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.