ArkScript v4.0.0-rc6
Pre-release
Pre-release
Added
- fuzzing step in the CI
- better error reporting on unknown import
- check on number of arguments passed to
type - warning when the formatter deletes comment(s) by mistake
- check on arguments passed to
list,concat,appendand friends to only push valid nodes (that produces a value)
Changed
- fixed a bug in the compiler where one could pass a non symbol to
let,mutorset, resulting in a compiler crash - fixed a bug in the macro processor where one could pass an unknown symbol to
argcountand crash the processor - fixed a bug in the compiler where one could pass something other than a list to
(fun)as the argument block, resulting in a crash - fixed a bug in the compiler generating not callable functions
- fixed a bug in the macro processor generating invalid
let/mut/setnodes - fixed a bug in the macro processor allowing out of bounds access with
($ test (@ [1 2 3] -5)) - fixed a bug in the vm which wrongfully allowed self concat in place:
(concat! lst lst) - fixed a bug in the compiler where one could "use" operators without calling them:
(print nil?) - fixed a bug in the compiler allowing the use of operators without any argument:
(+) - fixed a bug in the vm during error reporting when a non-function was used as a function
- refactored code inside the bytecode reader to promote code reuse
- fixed a bug in the compiler generating invalid
whilenodes - fixed a bug when passing the wrong number of arguments to a function inside an async call was crashing the VM because the function couldn't be named
- fixed a bug in the compiler generating invalid
funnodes - fixed a bug when generating
let,mutorsetnodes inside macros with an invalid node type - fixed a bug when reading invalid UTF8 codepoints in the parser caused out of bounds reads
- fixed a bug with recursive macro, exhausting the stack space due to recursive evaluation
- futures can be awaited again, they will return nil on all the tries
- checking for reused argument name in macros during parsing
- enhanced comment after node handling in macros
- adding a hard limit on package names length (255 characters, to comply with posix limits)
- disallow passing invalid nodes as arguments to functions and operators
- checking for unevaluated spread inside macros
- checking for invalid symbols when defining a function through a macro
- added a max macro unification depth
Removed
- removed useless
\0escape in strings