Skip to content

Releases: tokay-lang/tokay

v0.6.6

19 Jun 07:08
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.5...v0.6.6

v0.6.5

19 Dec 15:26
Compare
Choose a tag to compare

This is the first Tokay version supporting and established on generics.

What's Changed

Full Changelog: v0.6.4...v0.6.5

v0.6.4

20 Jul 22:55
Compare
Choose a tag to compare
  • Main parselet operates on multiple inputs (Readers) now
  • Restructuring parts of VM, Runtime renamed into Thread
  • Several test cases restructured
  • Bugfix for str_get_item
  • Ord on Value and RefValue, builtin list_sort()
  • Implementing str_split(s, sep=void, n=void)
  • Fix begin and end feature of parselets (#109)

v0.6.2

19 Apr 19:12
Compare
Choose a tag to compare

Internal revision and clarification on compiler's intermediate structures ImlOp, ImlValue and ImlProgram (part of #105)

v0.6.1

05 Mar 22:44
Compare
Choose a tag to compare

What's Changed

  • Comparison chains within expressions by @phorward in #103
  • Establishing Iterators by @phorward in #101
  • Chars<...> in addition to Char<...> syntax

Full Changelog: v0.6...v0.6.1

v0.6

13 Jan 21:03
Compare
Choose a tag to compare

What's Changed

  • Moving Value::Int from i64 to BigInt by @phorward in #55
  • Use clap v3 rather than v2 for command-line parsing by @phorward in #61
  • Objects should allow for error reporting in to_i64(), to_f64(), to_usize() and to_bigint() by @phorward in #57
  • Use of num-parse to parse integers by @phorward in #65
  • Use s as string param in builtin methods by @jgbyrne in #72
  • Rename instances of faculty to factorial by @jgbyrne in #71
  • Parseable sequences with in-place reader extend by @phorward in #78
  • Implementing item handling for objects by @phorward in #80
  • New builtin signatures by @phorward in #84
  • Reworking test facilities by @phorward in #86
  • Implement divi (integer divison) operations / operators // and //= by @phorward in #92
  • Replace Tokay's internal parser by a parser generated from tokay.tok by @phorward in #93
  • Using RefValue as keys for dicts by @phorward in #96
  • Implement character-classes by Char<...> keyword token by @phorward in #98

New Contributors

Full Changelog:
v0.5.1...v0.6
CHANGELOG.md

v0.5

17 May 12:13
Compare
Choose a tag to compare

Changelog

  • General
    • Improved Tokay parser newline behavior to support Windows and classic Mac line ending as well
    • Moved tests from test.rs into their particular locations, so tests are written next to their implementation
    • Read from stdin when no input stream but a program that is consuming was specified
    • Moved ccl.rs into separate charclass crate
    • Equipped Reader struct with better tools for scanning (Reader::take(), Reader::span())
  • Values
    • New Object trait
    • Splitting enum Value into separate objects using Box<dyn Object>
    • unary_op() and binary_op() for RefValue, with fast-lanes for some operations
    • Replacement of separate binary- and unary-VM instructions into Op::BinaryOp and Op::UnaryOp
    • Implemented all primary operations by builtin methods
  • Builtins
    • Entire redesign of builtins using proc-macro
    • Builtin function registry generated by a build-script, substituting inventory/linkme-crates
    • Builtin functions
      • repr() to get string with Tokay object representation
      • type() to get string of Tokay value type
      • bool methods: bool()
      • int methods: int()
      • float methods: float(), float.ceil(), float.fract(), float.trunc()
      • addr methods: addr()
      • dict methods: dict(), dict.len(), dict.update()
      • list methods: list(), list.add(), list.iadd(), list.len(), list.push(), list.pop()
      • str methods: str(), str.add(), str.byteslen() str.endswith(), str.mul(), str.join(), str.len(), str.lower(), str.replace(), str.startswith(), str.substr(), str.upper()
    • Builtin tokens
      • Float allowing for parsing floating point numbers into float values
      • Ident renamed (from Identifier)
      • Int renamed (from Integer) and accepting parameters like a radix base
      • Word skipping words not in the wanted word size, but not rejecting
  • New example files
    • Self-hosted Tokay parser in examples/tokay.tok
    • Simple JSON parser in examples/json.tok