New README and language overview.
[artemus.git] / RELEASE_NOTES
blob8efd8e197eceb46e6ffa5b46d1c926fb0ebf1b73
1 Artemus Release Notes
2 =====================
4 5.0.0
5 -----
7  * New milestone release. The Artemus language has been
8    completely rewritten to be a LISP-like, compiled
9    machine. No backward compatibility is provided (other
10    than including the old 4.x module in the distribution).
11    The new 5.x language is faster, more flexible, less
12    cumbersome (for example, there's no need for escaping
13    inner blocks that should execute only conditionally)
14    and include support for translateable strings.
16 4.1.3
17 -----
19  * The `foreach' constructor now includes an optional
20    4th argument, the _header_, that will be appended
21    to the output in case it's different from the
22    previous iteration. This code block is expected to
23    contain dollar-prefixed arguments.
24  * New template function `item', to return an item
25    from a colon-separated list given its subscript.
26  * Fix `case' comparisons when the variable contains
27    carriage returns.
28  * Fix loader_func() to correctly process empty
29    templates.
30  * Unless a very grave bug or vulnerabity is found,
31    this will be the last 4.x release; next release
32    will jump to the 5.x branch. Please take note that
33    this new branch is intentionally incompatible
34    with current one. Anyway, the Artemus4.pm module
35    and associated tools are planned to be distributed
36    with the 5.x series for a very long time.
38 4.1.2
39 -----
41  * New template function `sort'.
42  * New template function `reverse'.
43  * Templates can be loaded from external sources by
44    using the new `loader_func' argument to new().
45  * The Perl module Artemus is now an alias for the
46    Artemus4 module, as a way to smooth the future
47    transition to version 5. No changes need to be
48    done.
50 4.1.1
51 -----
53  * New template function `case'.
54  * New template function `env', to get values from the
55    environment.
56  * New template function `size', to return the number
57    of elements in a colon-separated list.
58  * New template function `seq', to generate a sequence
59    between two numbers as a colon-separated list.
60  * Improved debugging information.
62 4.1.0
63 -----
65  * New template function `foreach', to implement loops.
66  * New template function `set', for assigning a value to
67    a variable.
68  * New template arithmethic functions `add' and `sub'.
69  * New template comparison functions `gt', `lt' and `eq'.
70  * New template logical functions `and', `or' and `not'.
71  * New template function `random'.
72  * Comments can now be included with the {% } markup (they
73    are deleted from the final output).
74  * Old cruft has been deleted from the script (ftp, makefile
75    and sitemap generation).
76  * Template parameters are always expanded (instead of short-
77    circuiting when one is not found).
78  * Artemus markup can be escaped to allow templates being used
79    from another ones with being executed first.