Skip to content

Releases: xrstf/rudi

v0.0.10

25 Nov 13:32
Compare
Choose a tag to compare

Changelog

  • 962aee8 more docs
  • 74f2221 add one-line docs to every function
  • eb302e0 docs
  • 754e673 make append/prepend work for strings
  • 0d22531 fix delete! behaviour by introducing custom bang handlers...
  • 3008720 fix behaviour of bang-modified functions and sub keys
  • 02a500a begin docs

v0.0.9

23 Nov 22:13
Compare
Choose a tag to compare

Changelog

v0.0.8

23 Nov 18:25
Compare
Choose a tag to compare

Changelog

  • 56ac41f more documentation, improve readme
  • 7894465 revamp the convenience API at the module root
  • d6fdfb0 make (set) stateless, introduce bang modifier (!) to make any function try to update its first argument

v0.0.7

22 Nov 21:46
Compare
Choose a tag to compare

Changelog

  • 14b9bdd add (delete) function
  • dcdbdd2 extend pathexpr to allow deleting items from slices
  • 5234fda fix lint errors
  • 03037d7 fix typo
  • 789ffac gimps
  • 7959d07 add pathexpr.Delete()
  • 5aa85fb move code that gets/sets values at deeper paths in datastructures into a pathexpr package
  • b8161e2 more tests

v0.0.6

21 Nov 08:58
Compare
Choose a tag to compare

Changelog

  • 6021ce7 extend readme
  • 8163655 mention alternatives
  • 91c7964 rename project to avoid name clash with the existing Otto JS interpreter
  • 7c2d98e fix example in readme
  • 167a8e9 add filter function
  • 02fb444 move map/range to the lists section
  • 726f6c4 for now i cba to figure out how sub modules can be go-installable
  • 6078bab lower minimum Go version to 1.18
  • 3a787fd fix lint issues
  • 9ab59be add docs for +
  • 4a06173 fix and document (has?)

v0.0.5

19 Nov 18:46
Compare
Choose a tag to compare

Changelog

  • 097a40e restructure otti package, improve integrated help
  • 2a51a2d run console by default if no arguments are provided at all to Otti
  • cbf2a86 make function help available in Otti console
  • 29e4a91 make docs embeddable

v0.0.4

19 Nov 14:39
Compare
Choose a tag to compare

Changelog

v0.0.3

19 Nov 01:11
Compare
Choose a tag to compare

Changelog

  • 574507c add support for (set) on the global document, plus (set $var.sub[0] ...)
  • 91e0818 more tests
  • 917920e fix tests

v0.0.2

18 Nov 15:58
Compare
Choose a tag to compare

Changelog

  • deda901 fix typos
  • ed7184a extend readme
  • d1b0d63 use readline to make REPL more bearable
  • feaf7c1 make code snippets available for parse errors
  • 7f52b08 provide utility functions to make integration easier
  • ce190f5 restructure packages a bit, make lang package smaller
  • f5200cc add --debug-ast to script mode
  • 50674ec cleanup
  • 928d57b add --yaml and --pretty to script mode for nicer output control
  • 1e35dcf add non-interactive (script) mode
  • 9e2d4bd load multiple files in repl, assign to $files
  • c0e7140 ignore goreleaser's dist directory
  • faabdda simplify grammar and allow programs to consist of a series of any expression, as long as they are whitespace separated (e.g. (+ 1 2) .)

v0.0.1

17 Nov 21:18
Compare
Choose a tag to compare

Changelog

  • ce5c368 add goreleaser
  • 270ce92 fix context not being shared across repl invocations
  • 5b1aa39 less verbose error message
  • dc83e22 begin work on Otti, the Otto interpreter
  • c0a01b6 make identifiers not evaluatable anymore so the error messages in the REPL make more sense
  • 1d5505a basic unit tests for literal evaluation (aka the simple tests 😁)
  • dce43fa add path expressions to objects, vectors and tuples
  • d8bf7ed cleanup grammar a bit
  • 3e3c440 improve debug package, begin to work on top-level expression support
  • 0052bb1 begin docs
  • 8ee7dcf cleanup
  • e0afde6 add (now)
  • f966ee5 add lt, gt, lte, gte
  • bdda10f begin to work on loose, PHP-style equality; use question mark consistently on bool functions
  • 7200369 make strict equality work for vectors and objects
  • eec3c89 add (reverse)
  • 9b1115e fix append and prepend functions
  • 0139b52 more tests
  • 264da71 add tests for hashing functions
  • 3a27228 add tests for encoding functions
  • 5d54c29 fix handling native types in variables (not yet sure if variables are always wrapped data)
  • e1b4044 separate path computation and evaluation, add tests for (has?)
  • c0b674f add tests for (empty?)
  • fac7932 make evaluated vectors/objects be expressions, so the code can be simpler
  • bf35523 minor cleanup
  • ef8424f add (range)
  • 01af00d fix (len) returning int instead of int64
  • ee97626 naming
  • 81f1387 make string functions easier to define
  • b271fb8 remove coalescing everywhere except in to-* functions
  • d3be8d7 add encoding, hashes, more string functions, type-of
  • aa6c681 add type conversion funcs, but not sure yet about all details..
  • e6f134c more tests, dedicated unfinished equality package with strict/loose equalities
  • 6a07138 add tests for lists function, allow (len "string")
  • 65a5518 time to get rid of this adhoc debugging line
  • 1295013 add tests for logic functions
  • df78cc2 unit tests for string functions
  • 97ed532 fix division function, add tests for remaining math functions
  • d17e1cf add tests for (+)
  • 7f4756e flip logic: make builtin package call eval package, configure functions from the outside; all to allow the builtin function tests to use the eval package so we don't have to specifiy the AST manually in the tests
  • d675232 add first unit tests for parser
  • 49cff73 improve coalescing: handle native types again, as we cannot wrap all sub elements in vectors and objects without requiring all functions to call WrapNative() before To...()
  • 50da06a fix PathExpression.String()
  • 9d317a0 WIP get rid of explicit expression type, use a Node interface instead
  • 769272a rename to Otto
  • c22d8f7 make array accessors more powerful by allowing nearly all expressions
  • 4a6fe35 only allow tuples as statements cause i can't figure out how to parse a single, standalone dot with whitspace around it
  • cca4f97 add debug package to print the ast more easily
  • 7755b1c separate path evaluation and path traversal
  • 9237df3 allow a single . as a path expression
  • 71eb113 use fewer structs for go-native types
  • f79faa4 use custom types instead of go-native types
  • 312500e prepare types for evaluated objects/vectors
  • 7d1ea62 add NodeName()
  • 6f4df81 defer arg evaluation in tuples to make the builtin functions more flexible, no need for extra-special tuple handlers
  • 0f50c81 add (has PATH_EXPR) to check if a path exists in a document/variable
  • 3be799d move identifier into expression, make object construction more flexible
  • 158c885 add support for single-line comments
  • 7499f81 clarify: [0] means "constuct array with 1 element: 0", .[0] means "access first element in the global doc"
  • e09f398 add support for basic path traversal
  • 5b3ddf6 begin working on the document editing aspect
  • 480ec1f add (not BOOL)
  • 0be15c3 fix number parsing
  • 86a712b keep ints when possible
  • 17a05dc revamp numbers and accessors (previously pathsteps)
  • fa23625 add comparisons
  • 40811ca add and/or functions
  • 6ec2665 add (do ...) form to allow for imperative sub-programs
  • 58b340d context handling
  • 91f8b0f add other math funcs, concat, split, len
  • 07416e6 make identifiers part of symbols again, let the eval package decide when it's valid
  • f8b0484 hack in support for global variables (should use (set $var ...) instead of having dedicated def verb)
  • b7f7c4c begin the most naive possible way to implement program evaluation
  • e1b69e2 introduce dedicated statement type
  • 0e39ae8 cleanup
  • b1fc68f revamp how and where path expressions work
  • e133c0d reorganize
  • 408f226 add strings, numbers
  • 104e8d1 backup