Skip to content
Brian Svoboda edited this page Nov 16, 2017 · 15 revisions

Welcome to the Bok development wiki!

Roadmap

  • Test build procedure with setup.py
  • Implement the local bok.config with ConfigParser
  • Include a more complete interface to numpy
    • array literals with {1 2 3}
    • calling attributes like @pi push to stack
  • Calling methods and attributes on python objects
    • syntax, leading ".", e.g. {{1 2}} .T
    • check if callable for methods/attributes
    • dict's `'a' 2] ['b' 3 dict``
    • set's [1 2 3 3] set
    • tuples [1 2 3] tuple
    • syntax or functions for grouping arguments, positional into a list and keywords into a dictionary. In general however, if functions need 3 or more arguments, it will not be simple for stack manipulation reasons. New words can be defined however to provide simple interfaces
  • Object system
    • quoting a single word with \foo like Factor
    • default method .clone to take a word and gives it the name \foo Bar.clone
    • see the Factor white-paper for object system
  • More descriptive error handling with tracebacks
  • Interactive stepping debugger
  • Tests, either with pytest or hypothesis
  • Command line interface for running scripts $ bok foo.bok
  • Fix the import system
    • Diamond problem for multiple imports to the same module
    • Recursive/circular imports to the same module
  • Documentation
    • Complete docstrings for builtin functions
    • Manual and reference documentation with sphinx
  • Interactive REPL improvements
    • Command shortcuts with the F-keys (dump stack, repeat macro, help-browser, etc)
    • Define macros like IPython to save typing
    • Completion for sub-words, e.g. foo.b -> foo.bar
    • Interactive help-browser, like an info page for the docs
Clone this wiki locally