Skip to content

Jule 0.0.13

Pre-release
Pre-release
Compare
Choose a tag to compare
@mertcandav mertcandav released this 17 Jun 11:03
· 1106 commits to master since this release

Language

  • add: inheritance support for traits
  • add: casting support for traits with common behaviors
  • update: some binded types are accepted as comparable
  • update: enum mechanics
  • update: pass directive adds to command-lines after source files

Compiler

  • various fixes, improvements and optimizations
  • add: --opt-str optimization flag
  • update: --opt-copy optimization flag
  • fix: define ordering
  • fix: code generation for casting from expressions
  • fix & improve: code generation for type informations
  • fix: type information generation for enum types
  • parser: fix plain-type parameter parsing
  • sema: fix slice literal evaluation
  • sema: fix duplicated parameter identifier analysis
  • sema: fix checking of test functions
  • sema: fix limit handling of types

Standard Library

  • add: std::hash
  • add: std::hash::adler32
  • add: std::hash::fnv
  • std::slices: add the Sort and IsSorted functions
  • std::process: reimplement the Cmd
  • std::process: remove the Pid type alias
  • std::fs: reimplement the Status
  • std::env: fix Env function returns command-line arguments instead of environment variables
  • std::fs: add the WriteStr method to the File
  • std::fs: add the WriteStr static method to the File
  • std::io: the WriteStr method of the ByteStream and FileStream, takes reference string now
  • std::sys: remove the Wopendir, Wreaddir, and Wclosedir functions for Windows
  • std::sys: add the FindFirstFile, FindNextFile, FindClose functions for Windows
  • std::sys: remove the Wdir and Wdirent structs for Windows
  • std::sys: add the Win32FindData struct for Windows
  • std::sys: remove last parameter of the ReadConsole function for Windows
  • std::jule::ast: add the Inherits field to the TraitDecl
  • std::jule::sema: add the Inherits field to the Trait
  • std::jule::types: add the MaxI, MaxU, and MinI functions

API

  • optimize: string UTF-8 handling
  • add: jule::utf8_push_rune_bytes<Dest>
  • remove: jule::utf8_rune_to_bytes
  • fix: the jule::env function always returns empty slice after first use

Legacy Support

The old Jule source codes probably will not compile with this release. Because Jule 0.0.13 brings many breaking changes.

Some breaking changes:

  • std::process::{Cmd} is reimplemented
  • std::fs::{Status} is reimplemented