The current focus of development can be seen on the Core project board.


2025
removed wip operator ::
wip enums and the keyword enum
superfluous number literal variations:
0B as binary number literal prefix (use 0b)
0X as hexadecimal number literal prefix (use 0x)
E as floating point number literal exponent (use e)
changed precedence of unary operators + and -
reserved keywords for and in to contextual keywords
improved naming consistency of Option and Result APIs
changed names of Result variants from Ok/Err to Pass/Fail
floating point numbers require a dot, as well as digits before and after the dot
allow functions without parameter list, migrate standard library functions where appropriate
added TextMate grammar for syntax highlighting in editors
Chroma grammar for syntax highlighting on the web
Option#orElse, Option#getOrElse and Option#getOrPanicWith
Result#orElse, Result#getOr and Result#getOrElse as well as their ...Fail variants
wip unions
wip RiscV backend
wip language support for *.properties files
wip non-abstract, non-public trait functions
2024
changed replaced remaining uses of "Dora" with "Core"
Float64#hash and Float32#hash to cooperate with Equals and Identity semantics
added Base64 encoder
basic semicolon inference
Array#includes, List#includes, HashMap#includes, HashSet#includes
2023
removed operator =>
keyword match
catch-all branch _
changed path separators in use declarations from :: to .
reserved keyword struct to contextual keyword value
added contextual keyword is
reserved keyword union and contextual keyword of
RiscV (macro) assembler
unified condition expressions
intrinsics for total order comparison of floats on arm64
Int64#reverseBytes, Int64#reverseBits
Int32#reverseBytes, Int32#reverseBits, Int32#asInt64
2022
removed operator ->
keyword mut
unary operator !
binary operator %
binary operators <<, >>, >>>
procedure syntax
mutable function parameters
control flow keywords break and continue
changed name of class Vec to List
numeric literal separator from _ to '
type of integer literals from Int32 to Int64
require result type for functions and lambdas
number literal suffixes from L/I/D/F to i64/i32/f64/f32
added named arguments
hash code field to String
intrinsics for rounding floats
unified condition expressions
var as a replacement for let mut
implementation of trait Hash for String
intrinsics for total order comparison for floats on x64
higher-order functions to classes Array and List
higher-order functions to enums Option and Result
implementations of traits Equals, Hash, Stringable to enums Option and Result
2021
changed annotation processing
precedence of operator &
names of panicking methods in Option and Result
added intrinsics for the absolute value of floats
more functionality to types Array, Result, String and Vector
2020
removed keyword nil
exceptions
keyword loop
changed change result type syntax from -> to :
added enums
tuples
modules
varargs
keyword annotation
traits Zero and Sizable
intrinsics for bit manipulation instructions popcnt/lzcount/tzcount
2019
removed secondary constructors
modifiers, replaced with annotations
changed syntax of generics from <>/::<> to []
name of Int/Long and Float/Double to Int32/Int64 and Float32/Float64
added type Option
universal === operation
traits Equals, Identity, Hash, Default, Comparable, Sortable, Stringable