API roundup
[mala.git] / NEWS
blob13ec056fc50f414c1b86c582fcfdab1a0fecdcda
1 Legend: - means planned/unreleased
2         + means in progres
3         * means finished/released
5 Following is a list of all planned and implemented features.
6 The topmost notes planned features for the release after the current one.
7 The second is the current state. Followed by any older releases
10 - MaLa 0.3 (planed features)
11   - Improved VM
12     - ringbuffer for the program
13     - secondary types within the descriptor
14       types: dirty, int, float, mp ...
15     - source refactoring and cleanup
16     - pools for stringlib
17       - for descriptors
18       - for data (MRU dead queue, whatever) (maybe)
19       - stringlist nodes
20     - modules/loaders produce macros instead engine->program (--MALARC --COMMANDLINE ...)
21     - hierachical expansion parser (start with '--' then, else if '-..')
22     - accumulate/robust errorchecking (less if()'s compound check)
23     - segv handler instead ENOMEM checking in experimental branch
24     - prereserve objects in freelists/wordtable for errorhandlers
25     - mala_alloc wraper (general fault injection lib)
26     - general identifier naming rules enforcement
27     - better API for parameter-passing in parsers
28   - Language
29     - dynamic preprocessor substitutions ({ becomes --BEGIN, } becomes --END) like subst macros
30     - voluntary typesystem with inheritance
31     - --STOP instruction yields MALA_ESTOP
32   - Modules
33     - readline
34     - libtcc
35     - libltdl
36     - dialog
37   - Documentation
38     - Texinfo Programmer doc
39   - Security System
40   - Typesystem
41     - completion
42   - gettext
43   - make BUGS part of the testsuite
44   - fix BUGS
45   - test libmala by linking with it
46   - superstatic / dynamic build
47   - malacc
49 - MaLa 0.2 (in progress)
50   Derived from the first hackerlab reference implementation
51   * Improved VM
52     * expansions while pushback_program .. less bucket/string copy issues
53     * refactor stringlist api (no direct CIRCLEQ calls)
54     * define order of expansions
55     * actioninit takes 'parent' char* , brief/help become own actions
56     * new mala_strings shared, buckets, lookup, copy on write
57     * array for common names (instead string lookup)
58     * constant initialized strings (either part, data or descriptor are const)
59     * accumulate/robust errorchecking (less if()'s compound check)
60     * *_dump needs stream handle (instead stderr)
61   * Language semantics
62     * prepend unknown words with --DEFAULT-PARSER on mala_engine_run (defaults to --LITERAL)
63     * expansions dont do magic
64       * foo=bar becomes --SETENV foo bar
65       * ! --FOO becomes --NOT --FOO
66     * implement general --BEGIN --END blocks (compile to --BLOCK-nnnn with delayed evaluation)
67     * '_' is used internally as (namespace) delimiter
68         (underscore expansion prevents users from using it)
69   - Modules
70     + std
71       + --SIGNATURE_--MACRO argumentspecs
72       + --RESULT_--MACRO returnspec
73       - --PRINTL prints blocks too
74       - parsers for things generated by expansions
75     - strings
76     - integer arithmetic
77   - Documentation
78     - Buildin Help system
79     - general help for modules and mala (--HELP_MALA --HELP_STD etc)
80   * Tools
81     * macros for common parsers MALA_SUBSTITUTE_PARSER("FOO","BAR") etc.
82   * make dist
83   * mala program install
84     * output to stdout or error to stderr
85   * pkg-config support
87 * MaLa 0.1 (was never implemented for glibc)
88   Hackerlab reference implementation, incomatible with future stuff