DKL9 GitList
Repositories
DKL9 home
rtensor
Code
Commits
Branches
Tags
Search
Tree:
0133bd2
Branches
Tags
master
rtensor
changelog.md
Develop many cases in LaTeX converter
dkl9
commited
0133bd2
at 2023-203 16:57:06
changelog.md
Blame
History
Raw
# RTensor/VeCalc/maths_parser changelog ## 0.1 * make five basic binary operators * make lexer * attempt left-recursive parser. fail miserably. * remove left-recursion * make right-recursive parser. succeed (but it's ugly). * add support for radix-pointed numeric literals * add method for handling associativity * make parsetree to ast converter * implement ast evaluation ## 0.2 * add parentheticals * add assignment * add postfix output * add unary operationss * improve vecalc independently of parser (semicolons, error handling, etc) * add more operators (`-/` and `,`) ## 1.0 * rewrite parser, eliminating parsetree step * add vector component access syntax ( `(a, b, c)[2] == b` ) * add vector component assignment ( `v[2] = a` ) (lvalue generalisation) * add function call syntax ( `f()`, `f(x)`, `f(x, y)` ) * add function objects * add builtin functions in vecalc ## 1.1 * change unary operator parsing * fix index-suffix parsing bug * fix vector-element-assignment bug * add `<` operator * add functions `floor`, `len`, `any`, and `all` (vecalc, not in parser) * add functions `if` and `map` (vecalc, not in parser) ## 1.2 * add functions `filter`, `reduce`, and `tail` (vecalc, not in parser) * add constants `pi` and `phi` (vecalc, not in parser) * fix vector-indexing bug * fix other wacky bugs ## 1.3 2021-09-01 * improve empty list handling * add functions `random`, `zero`, and `clear` (vecalc, not in parser) * add constants `true` and `false` (vecalc, not in parser) * add function `for` (vecalc, not in parser) ## 1.4 2021-09-05 * improve evaluation error messages * further improve empty list handling * fix bug in `random` function * demonstrate that vecalc is now sufficiently powerful as to implement quicksort * make some examples clickable * try and fail to add an indication that the expression is being evaluated but is not finished ## 1.5 2021-10-01 * finally add a favicon, wow * warning on closing page * more examples ## 1.6 2021-11-23 * fix bug in `map` function * improve `filter` function * abbreviate saved-answer identifiers * improve error messages for argument patterns ## 1.7 2021-12-28 * add operator `=>` (maplet, anonymous function) * enhance function call syntax * fix bug in function call parsing * correct inconsistency in `zero` function * more examples * improve examples * fix warning on closing page * replace PNG file favicon with inline SVG (saves 2.3 kB) ## 1.8 2022-010 * improve error messages for library functions and token errors * catch long `for` loops * add functions `trim`, `tostring`, `render`, and `html` * deprecate `gi` parameter * split `AST` class from `maths_parser.js` to `maths_ast.js` * implement syntactic function mechanism * fix bug in history navigation * more examples ## 2.0 2022-035 * produce direct characters (rather than references) in `toHTML` * improvements to `toHTML` * make `MathsFunc.apply()` API match that of `Function` * syntax changes, theoretically non-breaking to users (no distinct assignment statements or lvalues, just `=` operator) * syntax changes, probably breaking (unified `v[i]` syntax with `f(x)` syntax to make `v(i)`, removing `v[i]`) * update examples to match syntax changes * add constant `null` * make function call/vector index syntax more sugary (`f(a)(b)` instead of `(f(a))(b)`) * properly distinguish scalars from vectors * add operator `..` (tensor concatenation and ranges) * allow `'` (prime/apostrophe) in identifiers * implement multi-argument anonymous functions * rename from VeCalc to RTensor ## 2.1 2022-081 * split rendering to HTML from `maths_ast.js` to `rtensor_to_html.js` * split `MathsFunc` definition from `maths_parser.js` to `mathsfunc.js` * fix `AST.toString()` to invert parsing * switch to XHTML * write a separate documentation file (`documentation.md`) * render comma operations in `toHTML` * fix bug in parsing numbers with only a fractional component * make `toHTML` consider derived functions (`sec`, `csc`, `cot`, etc) to be of similar status to actual builtins * fix parenthesisation of base of exponents in `toHTML` ## 2.2 2022-230 * fix associativity bugs * allow identifiers starting with `'` (apostrophe) * allow square brackets for indexing and functions * treat square-bracket function calls as syntactic * remove the syntactic function distinction, making all functions call-by-value with an option for the value to be an AST * add functions `lhs`, `rhs`, and `operator` to access parts of ASTs * add syntactic-input handler for `if` function * implement binary operations on ASTs (returns new ASTs) * add functions `sum` and `product` (expecting syntactic input) ## 2.3-dev 2022-294, 2023-204 * implement complex numbers * unify numeric types (reals also supported) into query-string-controlled list of types * implement bigints * implement arithmetic operations on functions * fix bug with `sum` and `product` applied to tensors * add code-loading textbox * implement syntactic version of `for` * write library files `linalg.rt`, `polynomial.rt`, `integer.rt` * add function `latex` to convert AST to LaTeX