Skip to content

ArkScript v4.0.0-rc6

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Jul 20:19
4b8adbd

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, append and 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, mut or set, resulting in a compiler crash
  • fixed a bug in the macro processor where one could pass an unknown symbol to argcount and 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 / set nodes
  • 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 while nodes
  • 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 fun nodes
  • fixed a bug when generating let, mut or set nodes 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 \0 escape in strings