split std/ into smaller files
[mala.git] / NEWS
blobac622c292fe8b4b6ad481236a0af644e19d0568f
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     - enhanced mala trace/debugger
29     - mala-states to common strings mala_state_parser substitutes current state?
30     - mala_predicates.c
31     - SEGV handler (setjump after sideeffects, rollback in case of segv, garbage collect, retry)
32   - Language semantics
33     - dynamic preprocessor substitutions ({ becomes --BEGIN, } becomes --END) like subst macros
34     - voluntary typesystem with inheritance
35     - --STOP instruction yields MALA_ESTOP
36     - --ESCAPE --UNESCAPE for strings
37     - split --ERROR-FOO to --ERROR FOO (--DEF --ERROR --ERROR_%-1 as default handler)
38   - Modules
39     - readline
40     - libtcc
41     - libltdl
42     - dialog
43   - Documentation
44     - Texinfo Programmer doc
45     - Texinfo User doc generated by MaLa
46   - Security System
47   - Typesystem
48     - completion
49   - gettext
50   - make BUGS part of the testsuite
51   - fix BUGS
52   - test libmala by linking with it
53   - superstatic (-ffunction-sections) / dynamic build
54   - malacc
55   - getopt compatibility interface
58 - MaLa 0.2 (in progress)
59   Derived from the first hackerlab reference implementation
60   * Improved VM
61     * expansions while pushback_program .. less bucket/string copy issues
62     * refactor stringlist api (no direct CIRCLEQ calls)
63     * define order of expansions
64     * actioninit takes 'parent' char* , brief/help become own actions
65     * new mala_strings shared, buckets, lookup, copy on write
66     * array for common names (instead string lookup)
67     * constant initialized strings (either part, data or descriptor are const)
68     * accumulate/robust errorchecking (less if()'s compound check)
69     * *_dump needs stream handle (instead stderr)
70     * parsers which return SUCCESS or FAILURE are substituted with --NULL
71     * replace --NULL with --PASS
72     * add MALA_REMOVE state which suppresses side-effects (MALA_SIDEEFFECT macro?)
73       (-IF foo --PRINT bar instead --IF foo --BEGIN --PRINT bar --END)
74     - add a garbagge collector tracer ("GC: new $type '%s'" "GC: delete $type '%s'")
75     - garbagge collect actions (gc_depth in in action == gc count of string at instance?)
76     - change engine.program and engine.arguments to --PROGRAM and --ARGUMENTS
77   * Language semantics
78     * prepend unknown words with --DEFAULT-PARSER on mala_engine_run (defaults to --LITERAL)
79     * expansions dont do magic
80       * foo=bar becomes --SETENV foo bar
81       * ! --FOO becomes --NOT --FOO
82     * implement general --BEGIN --END blocks (compile to --BLOCK-nnnn with delayed evaluation)
83     * '_' is used internally as (namespace) delimiter
84         (underscore expansion prevents users from using it)
85     - prefix macros like --LITERAL and --NOT etc. evaluate %1
86     - --BEGIN already selects if it is a macro, expansion or substitution (unnamed macro)
87     - garbagge collect blocks instead self deletion
88     - rename --HERE to --BEFORE-HERE
89   - Modules
90     + std
91       + --SIGNATURE_--MACRO argumentspecs
92       + --RESULT_--MACRO returnspec
93       - --PRINTL prints blocks too
94       - parsers for things generated by expansions
95     - strings
96     - integer arithmetic
97   - Documentation
98     - Buildin Help system
99     - general help for modules and mala (--HELP_MALA --HELP_STD etc)
100   * Tools
101     * macros for common parsers MALA_SUBSTITUTE_PARSER("FOO","BAR") etc.
102   * make dist
103   * mala program install
104     * output to stdout or error to stderr
105   * pkg-config support
107 * MaLa 0.1 (was never implemented for glibc)
108   Hackerlab reference implementation, incomatible with future stuff