1 Legend: - means planned/unreleased
3 * means finished/released
5 - MaLa 0.3 (planed features)
7 - ringbuffer for the program
8 - secondary types within the descriptor
9 types: dirty, int, float, mp ...
12 - for data (MRU dead queue, whatever) (maybe)
14 - modules/loaders produce macros instead engine->program (--MALARC --COMMANDLINE ...)
15 - hierachical expansion parser (start with '--' then, else if '-..')
16 - accumulate/robust errorchecking (less if()'s compound check)
17 - segv handler instead ENOMEM checking in experimental branch
18 - prereserve objects in freelists/wordtable for errorhandlers
24 - MaLa 0.2 (in progress)
25 Derived from the first hackerlab reference implementation
27 * expansions while pushback_program .. less bucket/string copy issues
28 + refactor stringlist api (no direct CIRCLEQ calls)
29 + define order of expansions
30 * actioninit takes 'parent' char* , brief/help become own actions
31 * new mala_strings shared, buckets, lookup, copy on write
32 * array for common names (instead string lookup)
33 + constant initialized strings (descriptor is dynamic, char* is const)
34 + modules/loaders produce macros instead engine->program (--MALARC --COMMANDLINE ...)
35 - accumulate/robust errorchecking (less if()'s compound check)
36 - *_dump needs stream handle (instead stderr fixed)
38 - prepend unknown words with --DEFAULT-PARSER on mala_engine_run (defaults to --LITERAL)
39 - '--DELAY' dont evaluate the next argument
40 * expansions dont do magic
41 * foo=bar becomes --SETENV foo bar
42 * ! --FOO becomes --NOT --FOO
43 * implement general --BEGIN --END blocks (compile to --BLOCK-nnnn with delayed evaluation)
44 - named blocks --BLOCK-name ... --END-name
45 * '_' is used internally as (namespace) delimiter
46 (underscore expansion prevents users from using it)
49 - --BLOCK-nnnnnnnn gets a once*_parser instead removing itself
53 + macros for common parsers MALA_SUBSTITUTE_PARSER("FOO","BAR") etc.