- ability to add foreign imports to the repl
-
repl properly prints functions and the types of expressions
-
repl doesn't differentiate between expressions and definitions anymore
-
repl accepts redefinitions of previously defined variables
-
index operator now only works for lists
-
! operator now works for strings instead of lists
-
added
<primitiveArray>aget
functions -
changed
<-
operator to have the lowest precedence -
added
AutoCloseable
type class andwithOpen
function -
language formatter is usable now
-
better indentation rules for binary operators, now they don't need indentation
// before fun x = value |> function1 |> function2 // before fun x = value |> function1 |> function2
- Fixed bug in list/set parsing where indentation was not ignored
- Added a basic repl to the language (
novah repl
).
- Native part of stdlib is cached locally for faster copying.
- Added new syntax for literal
BigInteger
s andBigDecimal
s:100000N
,100000.30M
- Added support for
BigInteger
s andBigDecimal
s in pattern matching
- Added
factorial
function toMath
module - Added
toStringList
function toString
module - Added
Contained
instance toMap
- Added
Show
instance to primitive arrays - Added
<primitiveArray>FromList
functions toArray
module - Added
readLine
function to theIO
module - Added range support for
BigInteger
andBigDecimal
- Made
^
operator generic and added implementation forFloat64
,BigInteger
andBigDecimal
- Fixed bug in
novah run
command where the standard input was not being redirected
- Added new syntax for foreign methods and fields: obj#?method(...) and obj#-?field which will return Option types instead of raw types
- Added @ syntax to deref atoms
- Underscores can be used in numbers now and will be ignored: 1_000_000
- The Option type is now native and compiles to plain (nullable) java objects, and boxed types in case of primitives
- Foreign functions and fields accept Option values now if they are not primitives
- Added := and ::= to reset and swap atoms
- Map keys now require an Equals instance
- Added
novah.bigint
andnovah.bigdecimal
modules to stdlib - Converted reserved Java names before code generation
- Properly box primitives before casting to non-primitive types
- Removed null from the language (use Option type)
- Added
printlnErr
andprintErr
to the core library - Tests from
novah.test
will properly report which test failed before printing the error - Added
withTime
function to core library - Bumped kotlin to 1.6.21
- Bumped some library versions
- Fixed bug in code generation in return of longs and doubles
- Fixed unification of records with empty labels
- Fixed record type annotation spreading
- Fixed bug in import parsing
- Fixed bug in auto derive Equals
First release