Releases: skx/monkey
release-0.4
This release updates our examples to include demonstration of new features.
New features in this release include:
- The
pragma
built-in command.- This allows getting/setting interpreter flags.
- Currently the only supported pragma is
pragma("strict");
, but this might change in the future.
- Support for string matching against regular expressions, via the
match()
function.- This supports captures as well as truthiness testing.
- The registration of all known environmental-variables at startup-time.
- Each variable is prefixed with a
$
symbol, which should be familiar to shell-users.
- Each variable is prefixed with a
release-0.3
This release updates the parser to add some new features:
<=
and>=
may be used as comparison/boolean functions.**
is a POW operator (2 ** 3 => 8).- ` is a backtick operator allowing command execution.
The backtick operator returns NULL on failure, otherwise a hash with two keys:
stdout
- The output hte command produced on STDOUT.
stderr
- The output the command produced on STDERR.
The backtick operator is demonstrated in examples/exec.mon
We've also added support for writing to files, and STDOUT/STDERR via the new standard-library function write
.
- Example of writing to a file examples/file-writing.mon
- Example of writing explicitly to STDOUT or STDERR examples/stdout-stderr.mon
The standard-library was also updated to include support for reading directory-contents via the function directory.glob
, as demonstrated in examples/glob.mon
Finally it is now possible to return an array of hash-keys via the new standard library function keys
- which is demonstrated in examples/hash.mon
release-0.2
This is a bug-fix release primarily affecting multibyte characters.
- Bugfix: The string-length calculation is now correct for multibyte characters.
len("狐犬") -> 2
- Bugfix: Indexing operations on strings are now correct for multibyte characters:
"狐犬"[0] -> "狐"
"狐犬"[1] -> "犬"
- Bugfix: The interpreter correctly loads files from the shebang line.
release-0.1
This is the initial binary release of monkey, future releases will have a useful changelog.