stringlib refactoring
[mala.git] / NEWS
blob35948a89a178fc4e4192a7cb1fe92b8ead67b27a
1 Legend: - means planned/unreleased
2         + means in progres
3         * means finished/released
5 TODO:
6 accumulate errorchecking (less if()'s compound check)
7 expansions while pushback_program .. less bucket/string copy issues
8 hierachical expansion parser (start with '--' then, else if '-*'..)
9  move (some) expansions to the loader code
13 - MaLa 0.2
14   Derived from the first hackerlab reference implementation
15   - Improved VM
16     + refactor stringlist api (no direct CIRCLEQ calls)
17     - define order of expansions
18     - actioninit takes 'parent' char* , brief/help become own actions
19     * new mala_strings shared, buckets, lookup, copy on write
20     - ringbuffer for the program
21     + array for common names (instead string lookup)
22     - primary/secondary types within the descriptor
23       types:
24       - dirty
25       - string
26       - unistring
27       - inlined int
28       - long long
29       - mp
30     - pools for stringlib
31       - for descriptors
32       - for data (MRU queue, whatever) (maybe)
33     + constant initialized strings (descriptor is dynamic, char* is const)
34     - tabling (cache for results chksum:result[N] in actiondesc or action)
35   - Language semantics
36     - prepend unknown words with --DEFAULT-PARSER (defaults to --LITERAL)
37     - '--LITERAL' puts the parameter to the arglist
38     - '--DELAY' dont evaluate the next argument
39     - expansions dont do magic
40       - foo=bar becomes --SETENV foo bar
41       - ! --FOO becomes --NOT --FOO
42     - remove the negated flag, use MALA_NEGATED vm state?
43     - store the 'end of scope' within the engine and --PARAM x reads args after the end
44        err reading new args as coroutine?
45     - implement general --BEGIN --END blocks (compile to --BLOCK-nnnn with delayed evaluation)
46     - named blocks --BLOCK-name ... --END-name
47   - Tools
48     + macros for common parsers MALA_SUBSTITUTE_PARSER("FOO","BAR") etc.