1 Legend: - means planned/unreleased
3 * means finished/released
6 all _free() functions may take NULL pointers
7 accumulate errorchecking (less if()'s compound check)
10 Derived from the first hackerlab reference implementation
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
26 - constant initialized strings (descriptor is dynamic, char* is const)
27 - tabling (cache for results chksum:result[N] in actiondesc or action)
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
41 - macros for common parsers MALA_SUBSTITUTE_PARSER("FOO","BAR") etc.