assign-expansion
[mala.git] / NEWS
blob2491cc144d54b75fe590b4548581ef891bb0f500
1 Legend: - means planned/unreleased
2         + means in progres
3         * means finished/released
5 TODO:
6 all _free() functions may take NULL pointers
7 accumulate errorchecking (less if()'s compound check)
9 - MaLa 0.2
10   Derived from the first hackerlab reference implementation
11   - Improved VM
12     * new mala_strings shared, buckets, lookup, copy on write
13     - ringbuffer for the program
14     + array for common names (instead string lookup)
15     - primary/secondary types within the descriptor
16       types:
17       - dirty
18       - string
19       - unistring
20       - inlined int
21       - long long
22       - mp
23     - pools for stringlib
24       - for descriptors
25       - for data (maybe)
26     - constant initialized strings (descriptor is dynamic, char* is const)
27     - tabling (cache for results chksum:result[N] in actiondesc or action)
28   - Language semantics
29     - prepend unknown words with --DEFAULT-PARSER (defaults to --LITERAL)
30     - '--LITERAL' puts the parameter to the arglist
31     - '--DELAY' dont evaluate the next argument
32     - expansions dont do magic
33       - foo=bar becomes --SETENV foo bar
34       - ! --FOO becomes --NOT --FOO
35     - remove the negated flag, use MALA_NEGATED vm state?
36     - store the 'end of scope' within the engine and --PARAM x reads args after the end
37        err reading new args as coroutine?
38     - implement general --BEGIN --END blocks (compile to --BLOCK-nnnn with delayed evaluation)
39     - named blocks --BLOCK-name ... --END-name
40   - Tools
41     - macros for common parsers MALA_SUBSTITUTE_PARSER("FOO","BAR") etc.