Simplified O_strcat().
[mpsl.git] / RELEASE_NOTES
blobf7fe164df1ce2c82b09b89aaf28d642f3dbc3a27
1 MPSL Release Notes
2 ==================
4 2.0.0
5 -----
7  * Adapted to MPDM 2.0.0.
8  * Any function argument not explicitly declared and
9    sent as argument in the function call is stored
10    in the local array _ (underscore).
11  * The adel() function no longer returns the deleted element.
12  * mpsl_compile_file() now has an additional argument
13    holding the source file search path.
15 1.0.9
16 -----
18  * New syntax for _inverse_ calling functions; the new
19    construction `val1->func(val2)' is equivalent
20    to `func(val1, val2)'. This way, chained function
21    calls where the first argument of one is the return
22    of the other are much easier to write and understand.
23  * Numbers prefixed by `0b' are accepted as binary numbers
24    and `sprintf()' accepts `%b' to print them.
25  * New operands >> and << (bit shifting).
26  * New operands &=, |= and ^=, <<= and >>=.
27  * New operand ** (power).
28  * New function `random()'.
29  * New trapping functionality.
31 1.0.8
32 -----
34  * New function `sscanf()'.
35  * New function `compile()', to compile a string of MPSL code
36    to an executable value.
37  * New function `bincall()', to create an executable value
38    given a pointer to binary code.
39  * The `mpsl' executable now ignores the first line of an MPSL
40    script if it starts with #!.
41  * Real numbers can be expressed in scientific notation.
43 1.0.7
44 -----
46  * The `write()' allows a variable argument of values to write.
47  * Values are dumped as MPSL instead of MPDM's low-level format.
48  * New function `chdir()'.
50 1.0.6
51 -----
53  * Fixed a strange but annoying bug regarding local variables
54    losing their values in anonymous subroutines.
56 1.0.5
57 -----
59  * New `g' flag in regex().
60  * Fix backslash parsing in strings.
62 1.0.4
63 -----
65  * The iterator variable in foreach() is _always_ created
66    as a local variable inside the block. Also, the old
67    construction foreach(local v, ...) issues a warning,
68    as it's redundant.
70 1.0.3
71 -----
73  * Anonymous subroutines now run inside a block frame
74    instead of a subroutine frame. This way, they can have
75    access to local variables defined in the subroutine
76    they are called from. So, for example, if you run
77    map() inside a subroutine, its anonymous code block
78    can access the local variables defined there.
79  * getenv() doesn't crash if the environment variable
80    does not exist.
82 1.0.2
83 -----
85  * Small internal refactoring regarding subroutine and
86    block frames. Frame creation code has been unified,
87    so block frames don't crash when a NULL local symbol
88    table is sent as argument, and can have arguments.
89    This change is not visible from outside; only a step
90    towards closing bug #1107.