daisy/TODO.md

1.8 KiB

Version Bump checklist

  • update Cargo.toml
  • run cargo test
  • commit
  • git tag -a v1.0.0 -m "Version 1.0.0"
  • git push
  • git push origin v1.0.0
  • cargo publish
  • Update packages

Pre-release

  • Fix linelocation (consistent, what does an operator's linelocation mean?)
  • Tuple operations
  • we don't need vectors as arguments to operators
  • Assignment tests

Parser

  • Better error when sin = 2
  • Should functions be operators?
  • Binary, hex, octal numbers

General

  • Optional config file
  • Optional history file
  • daisyrc file
  • Compile to WASM, publish a webapp
  • evaluate straight from command line
  • Auto-push to crates.io
  • Package for debian

Internals

  • Non-recursive treeify
  • Faster factorial function. Maybe use gamma instead?
  • Arbitrary precision float (rug doesn't offer arbitrary exponents)
  • Remove rug dependency (too big, incompatible)

Math Features

  • Dice
  • Mean, Median, Min
  • Arbitrary base logarithm
  • Derivatives
  • CAS features (trig, roots and powers)
  • Complex numbers
  • acot/acoth functions
  • Sums and products with functional arguments

Prompt

  • Live syntax/output (like firefox js terminal)
  • Syntax highlight input and output
  • fish-style tab completion
  • Numbered expressions, history recall
  • Color configuration
  • Enable/disable unit sets (defaults?)
  • Consistent unit ordering
  • Better linelocation
    • we shouldn't need to re-print user input on evaluation errors, red arrows should adjust themselves to the prettyprinted string
  • Backend-independent colorful printing
    • Better colors in error texts
  • Better substitution. Consistent: when ascii, when unicode?
  • Command to list substitutions

Units

  • long prefixes (megatonne, etc)
  • HMS for degrees
  • Exact radians, using pi constant?
  • Weird units: flops, lumen, lux, bel
  • Command to list units