Switched ::= back to := for some persistent structures that seem to really need repla...
[cslatevm.git] / TODO.org
blob39afc48b3822875ae1a5908fd2fc3c513089e53b
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 ** STARTED Bootstrap in ::= binding.                              :macro:global:
6 ** TODO Implement mutator selector pattern of "foo:=" and sunset "foo:". :global:
7 ** TODO Externalize `setTo: rules into data structures.
8 ** TODO Implement Ruby === for includes:/select:/case-statement usage. :vm:support:
9    With different assymetrical selector, e.g. isCaseOf:.
10    Root -> \=. Collection -> includes:, Block -> applyWith:. Regex -> matches:.
11 ** TODO Implement \=:= as pattern-matching binding.                      :macro:
12    Requires generation of ::= statements.
13    Requires destructuring of Patterns/Partials
14 ** TODO Implement method definition as "signature := body".
15    Requires method header rewrite at macro-expansion time.
16 ** TODO Implement generalized word-quoting. foo{any text...} http://atomo-lang.org/docs/macros.html#section_macro-quotes :lexer:
17 *** TODO Implement math{3 + 4 * 5} to apply the precedence library's `math to it.
18 *** TODO Implement bytes{1 2 3 4} to create literal ByteArrays.
19 *** TODO Implement w{foo bar baz} (or words{}) to tokenize a list of words.
20 *** TODO Implement path{/usr/lib/foo} to create literal Path objects.
21 *** TODO Implement r{[a-z](.*)[ ]} to create regular expression matchers.
22 *** TODO Implement glob{foo?.*.c} to create Glob objects.
23 *** TODO Implement q{} to create ##() literal/read-time arrays.
24 *** TODO Implement comment{} or why{} or doc{} for comments and reclaim double-quotes.
25 ** TODO Change block header syntax to [|( ... ) body ]. :lexer:global:incompatible:
26 ** TODO Swap {} with []                              :lexer:global:incompatible:
27 * Libraries
28 ** TODO Finish XTreams refactoring of base libraries.
29 ** TODO Mini-language for unit testing.
30 * System Structure
31 ** TODO Implement file loading as parse-compile-then-execute and use/install the result object.
32 ** TODO Re-implement the bootstrap assembly in terms of these compiled file-methods.
33 ** TODO Implement an Eco-system style repository of modules that can be loaded per-caller.
34 ** TODO Rename files to mirror module name (very closely if not identically).
35 * Documentation
36 ** TODO Anatomy-style documentation tool based on the parser.
37 ** TODO Literate-style documentation facility based on the doctool.
38 * Promotion
39 ** Implement online tutorials using doc tool
40 ** Fill out rosetta code http://www.rosettacode.org/wiki/Category:Slate
41 ** Install Packages for various OS/distributions (pkg/)
42 * Quality
43 ** Unit tests
44 ** Fix bugs on http://code.google.com/p/slate-language/issues/list