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