Things have been pretty stable since MiniScript 1.5 was released in November. But in the never-ending quest for perfection, a little more progress has been made. Here's what's committed to GitHub but not yet pushed as an official release:
Fixed a bug in the C# version that caused the behavior of string sorting (i.e. >
and related operators) to depend on system settings. It now always sorts ordinally, i.e., by the binary values of each character (just like the C++ version).
Improved slice operator so that both indexes may be omitted, i.e., seq[:]
is now the same as seq[0:seq.len]
.
null
can now be used as a map key (or value), which was previously disallowed.
Comparisons between numbers and non-numbers now return true for ==, false for !=, and null for all other comparisons (in line with how other types already worked).
Operations between a string and another type now only implicitly convert the right-hand side to a string in the case of + (but not, for example, in the case of comparison operators, which now support == and != but return null for other comparisons, in line with how other types already worked).
Those last two are a little hard to explain concisely, but the address some cases where previously comparisons were surprisingly asymmetrical... e.g. 42 == "42"
returned null, but "42" == 42
returned 1. Comparisons between mixed types now always return true for != and false for ==, and null for any other comparison (greater than, etc.). So it should now always be the case that a == b
gives the same result as b == a
.
Anyway, just a little update on what's coming down the pike (or already available, to people pulling the cutting-edge GitHub code). These changes will certainly make it into Mini Micro 0.9, which has also been making quiet but steady progress behind the scenes (but that's a topic for another day!).