Changelog:
- Made the all kind of errors (including the syntax and preemptive errors) print the function call stack trace. (related RFC)
- Fixed an undefined behavior in the operators.
- Errors will be written to
stderr
instead ofstdout
. - Added
-u, --unsafe
command-line option to disable preemptive error checks. - Added support of calling functions from imported libraries in the decision blocks like:
lib.f1()
- Made parameter evaluation inside decision block in the grammar forbidden.
- Implemented preemptive error checks: (related RFC)
- Undefined variable checks.
- Undefined function checks.
- Incorrect argument count checks.
- Illegal variable type for function parameter checks.
- Illegal return type checks.
- Checks for foreach-ed variables if they are actual lists or dictionaries.
- Prevent calls to a function with
break
orcontinue
from outside a loop using a preemptive checks. - Prevent calls to a function with
break
orcontinue
from a multiline loop using a preemptive checks.
- Made compiler use known folders API of Windows.
- Added
-l, --license
command-line option to print the license text. - Changed the exit message to
Bye bye!
. - Updated the greeting text at the start of the interactive shell (REPL).
- Implemented tail call optimization. (related RFC)
- Fixed memory leaks on function returns.
- Updated the output of
symbol_table
keyword to include the printing of symbol values. - Fixed a segmentation fault error.
- Fix the incorrect
Program file does not exists on the given path
error message. - Fixed a bug in the operator precendence.