Cleaned up the InOutProcessor code.
[cslatevm.git] / TODO.org
blob79be10fd00675dbc3f2db90dfb642e4d803cb834
1 * Syntax
2 ** DONE Bootstrap in :=.                                          :macro:global:
3 ** DONE Allow | as a binary selector character.
4 ** DONE Implement "&foo" in message sends as "&foo: True".
5 ** DONE Core use of ::= binding.                                  :macro:global:
6 ** DONE Implement creation of local variables for assignments.
7 ** DONE Implement generalized word-quoting. foo{any text...} http://atomo-lang.org/docs/macros.html#section_macro-quotes :lexer:
8 *** DONE Implement bytes{1 2 3 4} to create literal ByteArrays.
9 *** DONE Implement words{foo bar baz} to tokenize a list of words.
10 *** DONE Implement p{/usr/lib/foo} to create literal Path objects.
11 *** TODO Implement math{3 + 4 * 5} to apply the precedence library's `math to it.
12 *** TODO Implement glob{foo?.*.c} to create Glob objects.
13 *** TODO Implement r{[a-z](.*)[ ]} to create regular expression matchers.
14 *** TODO Implement q{} to create ##() literal/read-time arrays.
15 *** TODO Implement comment{} or why{} or doc{} for comments and reclaim double-quotes.
16 ** STARTED Implement "%" as a binary selector lexeme unless used as Eventually prefix.
17 ** TODO Implement mutator selector pattern of "foo:=" and sunset "foo:". :global:
18 ** TODO Externalize `setTo: rules into data structures.
19 ** STARTED Implement Ruby === for includes:/select:/case-statement usage. :vm:support:
20    With different assymetrical selector, e.g. isCaseOf:.
21    Root -> \=. Collection -> includes:, Block -> applyWith:. Regex -> matches:.
22 ** TODO Implement \=:= as pattern-matching binding.                      :macro:
23    Requires generation of ::= statements.
24    Requires destructuring of Patterns/Partials
25 ** TODO Implement method definition as "signature := body".
26    Requires method header rewrite at macro-expansion time.
27 ** TODO Implement initial setting of a local to a literal as a static initialization.
28    Requires some VM support to instantiate the context with the values.
29 ** TODO Implement | as a special binary macro for chaining expressions and shell pipelines.
30 ** TODO Change block header syntax to [|( ... ) body ]. :lexer:global:incompatible:
31 ** TODO Swap {} with []                              :lexer:global:incompatible:
32 * Libraries
33 ** TODO Finish XTreams refactoring of base libraries.
34 ** TODO Mini-language for unit testing.
35 ** TODO Add DoubleFloat support to FFI.
36 * System Structure
37 ** TODO Implement file loading as parse-compile-then-execute and use/install the result object.
38 ** TODO Re-implement the bootstrap assembly in terms of these compiled file-methods.
39 ** TODO Implement an Eco-system style repository of modules that can be loaded per-caller.
40 ** TODO Rename files to mirror module name (very closely if not identically).
41 * Documentation
42 ** TODO Anatomy-style documentation tool based on the parser.
43 ** TODO Literate-style documentation facility based on the doctool.
44 * Promotion
45 ** Implement online tutorials using doc tool
46 ** Fill out rosetta code http://www.rosettacode.org/wiki/Category:Slate
47 ** Install Packages for various OS/distributions (pkg/)
48 * Quality
49 ** Unit tests
50 ** Fix bugs on http://code.google.com/p/slate-language/issues/list
51 ** NOTE ExtensibleSequence's removeFirst/removeFirst:/removeLast/removeLast: are just open-coded versions of first/first:/last/last: where the firstIndex or lastIndex are updated.
52 ** TODO Fix File's size method (...).