aboutsummaryrefslogtreecommitdiff
path: root/docs/bqn.js
AgeCommit message (Collapse)Author
2022-09-07Avoid memory blowup in _multiAxisMarshall Lochbaum
2022-09-05Transpose on 1 axis is a no-opMarshall Lochbaum
2022-09-05Support Latin-1 alphabetic characters (leaving undocumented/unspecified for now)Marshall Lochbaum
2022-09-05BREAKING: enclose atom argument in ⟨⟩↕atom to align with other 0-axis ↵Marshall Lochbaum
primitives
2022-08-30Use 0< instead of × everywhere in the compilerMarshall Lochbaum
2022-08-30Don't allow Conjugate (monadic +) on non-number atomsMarshall Lochbaum
2022-08-20Fix double-header check when there's strandingMarshall Lochbaum
2022-08-17Index-based is better than mask-based tracing (e.g. for strings and comments)Marshall Lochbaum
2022-07-24Recompile JS bytecodeMarshall Lochbaum
2022-06-30Prevent modified assignment to [] in the compilerMarshall Lochbaum
2022-06-30Prevent · as a modified assignment target in the compiler; VMs mostly don't ↵Marshall Lochbaum
handle this
2022-06-29Fix error location crash for ˜⁼ header missing 𝕨Marshall Lochbaum
2022-06-17Stricter syntax checking for aliasesMarshall Lochbaum
2022-06-16Allow zero-length destructuring []Marshall Lochbaum
2022-06-14Don't allow list destructuring with aliases in bqn.js and vm.bqnMarshall Lochbaum
2022-06-13Fuse merge instruction with array-forming instructions so there are 4 totalMarshall Lochbaum
2022-06-13Implement high-rank array notation [] (including destructuring)Marshall Lochbaum
2022-06-10Convert JS undefined to BQN @ so no-result functions workMarshall Lochbaum
2022-06-03Allow ⊏ to handle trailing unchanged axes in dyadic ⍉, speeding up cases ↵Marshall Lochbaum
with large cells
2022-05-17Fix test for unknown identity valueMarshall Lochbaum
2022-05-17Fix JS comparison of characters with one versus two UTF-16 unitsMarshall Lochbaum
2022-05-05Support identity element for F⌜ if arithmetic function F has an identityMarshall Lochbaum
2022-05-05Fix errors in formatting arrays in compound functions, from max size changesMarshall Lochbaum
2022-05-05Fix some complicated cases of computational Under with derived functionsMarshall Lochbaum
2022-05-03BREAKING: More consistent Under fill handling; don't retain fill with ⌾⊢Marshall Lochbaum
2022-05-02Fix ∾⁼Marshall Lochbaum
2022-04-30Try to reduce formatted size of array elements if necessaryMarshall Lochbaum
2022-04-29Allow formatter 𝕨 for maximum output size, truncating with …Marshall Lochbaum
2022-04-15Mention undo headers in the error message for inverting blocksMarshall Lochbaum
2022-04-08Fix bracket matching in error messages when . follows parensMarshall Lochbaum
2022-04-08Fix bug when merging some nested results in structural UnderMarshall Lochbaum
2022-04-06Implement under ⚇ (only negative and infinite depths can be supported)Marshall Lochbaum
2022-04-04Fix nested ¨ handling in structural UnderMarshall Lochbaum
2022-04-04Support function 𝔾 in ⎉ in structural UnderMarshall Lochbaum
2022-04-03Support ˘ and ⎉ with constant 𝕘 in structural UnderMarshall Lochbaum
2022-03-28Fix depth-2 expansion of structure already at depth 1Marshall Lochbaum
2022-03-28Support for ∾ and > in UnderMarshall Lochbaum
2022-03-14Make setc handle lists of varsAndrey Popp
2022-03-13Make setc not fail on matchesAndrey Popp
2022-03-13Add repl previewAndrey Popp
Repl now has an additional mode of evaluation where observable (visible outside of the evaluated expression) side effects are not allowed. More specifically all assignments and reassignments are *prohibited* unless they fall in the following categories: - Assignments and reassignments within the top level environment - Assignments and reassignments for the environments created during evaluation of the expression being previewed Examples: let repl = BQN.makerepl() repl.preview('42') // ok, pure repl.preview('x ← 42 ⋄ x + 1') // ok, x is from the top env repl('f ← {x ← 0 ⋄ F ← {x+↩𝕩} ⋄ f}') repl.preview('F 42') // fail! mutates x How it's implemented: - A global `preview` flag determines if we are in "preview" mode - During compilation of bytecode to JS we inject code which marks environments with `inpreview` flag - `true` means they've been created during "preview". - Top level environment always has `inpreview = true` as we have this handled by restoring it to the values before the "preview" eval started. - While setting variables we check if are in "preview" and if the target environment has `inpreview` flag, otherwise we fail.
2022-03-11JS does string-based sorting by default, ouchMarshall Lochbaum
2022-03-11Fix missing fill in •rand.Deal and •rand.SubsetMarshall Lochbaum
2022-02-17Fix formatting of error locations that meet or overlapMarshall Lochbaum
2022-02-12Store whether selected structure can have depth>1 in UnderMarshall Lochbaum
2022-02-08Handle other valence of a half-structural function in UnderMarshall Lochbaum
2022-02-07Define limited / in r1Marshall Lochbaum
2022-02-07Fully non-pervasive ⊔ and ⊔⁼ implementationsMarshall Lochbaum
2022-02-07Some rearrangementMarshall Lochbaum
2022-02-07Lower-level Reorder Axes control codeMarshall Lochbaum
2022-02-06Much faster Reorder Axes implementationMarshall Lochbaum