Skx Monkey Versions Save

An interpreted language written in Go

release-0.4

5 years ago

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.

release-0.3

5 years ago

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.

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

5 years ago

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

5 years ago

This is the initial binary release of monkey, future releases will have a useful changelog.