EvalErrorKind::InvalidBuiltInFuncArgType
has been renamed toEvalErrorKind::InvalidStdFuncArgType
.- New variants have been added to
EvalErrorKind
. - New variants have been added to
EvalStackTraceItem
. ExpectedThing
as been renamed toExpectedToken
.ParseError::Expected
now usesActualToken
instead ofTokenKind
.- Arena allocation is now used for interned strings, AST and some internal data
of
Program
. - String interner cannot be garbage-collected anymore.
- Reject tags in object keys in
std.parseYaml
. - Avoid some panics in
std.parseYaml
with some inputs found with fuzzing. - Avoid stack overflow when dropping expressions with too much nesting.
- Improved error message when passing a value of invalid type to a built-in function.
- Stack trace improvements.
- Performance improvements.
- Some semantics of
std.parseYaml
have changed:- Empty YAML documents are now parsed as
null
instead of an empty string. - Anchors and aliases are now supported.
Null
,NULL
and~
are now parsed asnull
.True
andTRUE
are now parsed astrue
.False
andFALSE
are now parsed asfalse
.- Leading or trailing dot (e.g.,
.5
or1.
) is now allowed in floating point numbers. - Explicit
+
is now allowed in floating point numbers. - Leading zeros are now allowed in floating point numbers.
- Octal and hexadecimal intergers are now parsed as numbers.
- Empty YAML documents are now parsed as
- Detect stack overflow while comparing arrays and objects.
- Detect stack overflow while converting arrays and objects to string.
- Avoid panic when encountering an array or object as object key in
std.parseYaml
. - Avoid panic when encountering a YAML alias in
std.parseYaml
. - Return character indices instead of UTF-8 byte indices in
std.findSubstr
. - Avoid panic when the first character of the pattern passed to
std.findSubstr
is not ASCII.
- Avoid panic if the array passed to
std.format
does not have enough items.
- When a stack trace is larger than the specified maximum, hide items in the middle instead of the end.
- Documentation improvements.
- Do not use
f64::log2
to implementstd.exponent
andstd.mantissa
, which can be too inaccurate in some platforms. - Errors will not show
<000D>
at the end of each source line when source has CRLF line endings.
- Initial release