-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Brian Svoboda edited this page Nov 17, 2017
·
15 revisions
Welcome to the Bok development wiki!
- Test build procedure with
setup.py
- Implement the local
bok.config
withConfigParser
- Include a more complete interface to
numpy
- array literals with
{1 2 3}
- calling attributes like
@pi
push to stack
- array literals with
- Special purpose registers for python positional and keyword arguments
-
:*
for positional arguments -
:**
for keyword arguments
-
- Calling methods and attributes on python objects
- syntax, leading ".", e.g.
{{1 2}} .T
- check if callable for methods/attributes
- dictionaries
[['a' 2] ['b' 3]] dict
,M['a' 2, 'b' 3]
- sets
[1 2 3 3] set
,S[1 2 3 3]
- tuples
[1 2 3] tuple
,T[1 2 3]
- 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
- syntax, leading ".", e.g.
- 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
- quoting a single word with
- More descriptive error handling with tracebacks
- Interactive stepping debugger
- Tests, either with
pytest
orhypothesis
- 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