Skip to content

Releases: snekkylang/snekky

GitHub Actions

11 Jul 02:22
Compare
Choose a tag to compare
GitHub Actions Pre-release
Pre-release

Please download the latest binaries from the actions tab.

0.8.0

21 Jan 20:54
Compare
Choose a tag to compare
  • Added support for multithreading (Example).
  • Booleans now exist in bytecode.
  • Added JSON encoder and decoder (Example)
  • Added IO namespace (BytesOutput, Bytes).
  • Added continue keyword.
  • Added and improved various array methods.
  • Added clone method to arrays and hashes.
  • Duplicate constants will now be re-used.
  • Properly handle deep-comparison of objects and arrays.
  • Fixed nested breaks not working properly.
  • Fixed various problems with object destructuring.
  • Fixed parsing of chained equality operators.
  • Catch illegal use of return, break and continue statements in compiler.
  • Improved command handling in REPL.
  • Fixed /clear command in REPL not working properly.
  • Fixed REPL not working on Linux.
  • Added missing keywords to REPL syntax highlighting.
  • Fixed various typos in REPL.
  • Added disassemble command to REPL (requires snekkyd in path).

0.7.0

07 Nov 17:38
Compare
Choose a tag to compare
  • Added REPL.
  • Added support for ranges (a...b and a..b).
  • Added support for basic string escaping.
  • Added various string methods (including .contains and .replace).
  • Added support for regexes (~/regex/g).
  • Added support for when statements/expressions (Example).
  • Blocks can now be parsed as expressions.
  • Fixed <= and >= evaluating left and right twice.

0.6.0

23 Oct 18:29
Compare
Choose a tag to compare
  • Bytecode dumped with --dump will now be compressed.
  • Added support for object members (eg. [1, 2, 3].push(4)).
  • Moved various std lib functions to object members.
  • Added various new std lib functions.
  • Added support for for ... in loops using iterators.
  • Added hash/array destructuring.
  • Added support for variable assigns with operators (eg. x += 2).
  • Check whether provided parameters meet expected parameters count of function.
  • Added simple HTTP client.
  • Changed naming of std functions to camel case.
  • Replaced env array with parent ponter tree to prevent issues in closures.
  • Array index operator now evaluates to null if index does not exist instead of throwing an error.
  • Made different data types inequal to each other.

0.5.0

01 Oct 16:17
Compare
Choose a tag to compare
  • Added ability to import external source files using import <path>.
  • Added namespacing for std lib functions.
    • Sys.println(s)
    • Sys.print(s)
    • Sys.read_line()
    • String.length(s)
    • String.char_at(s, n)
    • String.split(s, d)
    • Math.PI
    • Math.abs(n)
    • Math.floor(n)
    • Math.sqrt(n)
    • File.read_utf8(p)
    • File.read_utf8(p, s)
    • Array.push(a, v)
    • Array.pop(a)
    • Array.length(a)
    • Array.map(a, cb)
  • Added support for single-line comments using //.
  • Added null type.
  • Added support for != operator.
  • Added support for <= and >= operators.
  • Added support for && and || operators (short-circuit evaluation).
  • Added support for else if.
  • Added --no-debug flag to omit debug data from bytecode.
  • Expressions now implicitly return the last expression if ; is omitted.
  • Expressions that don't evaluate to a value now return null.
  • Values of objects can now be accessed using . ({test: 1}.test).
  • Changed string concatenation operator to ><.
  • Fixed wrong scope of function parameters.
  • Fixed unary operator not working properly on object/array indices.
  • Snekky will no longer evaluate the bytecode if --dump flag is present.

0.4.0

11 Sep 23:29
Compare
Choose a tag to compare
  • Improved performance.
  • Input filename can now be specified in the first argument (Snekky <filename>).
  • Added flag to dump generated bytecode (Snekky <filename> --dump).
  • .bite bytecode files can now be directly executed.
  • Functions can now implicitly return a value (no semicolon after last statement).

0.3.0

08 Sep 22:28
Compare
Choose a tag to compare
  • Added support for arrays.
  • Added support for hashes.
  • Added array_length, array_push and sqrt builtin functions.
  • Snekky bytecode could now be distributed (contains constant pool and debug tables).
  • Comparison is now supported for all data types.
  • return-statements can now be used without a return value.

0.2.2

05 Sep 18:31
Compare
Choose a tag to compare
  • Dramatically improved performance (~5 times faster).

0.2.1

03 Sep 19:31
Compare
Choose a tag to compare
  • Fixed if-expressions not working in binary version.

0.2.0

03 Sep 17:27
Compare
Choose a tag to compare
  • Added support for self-invoking functions.
  • Strings can now be concatenated using . (concatenation operator).
  • Ifs can now be used as expressions.
  • Print error if variable is undefined ar runtime.