Version 0.9.3
-------------

This release adds a new resource datatype that is used to
represent operating system resources such as open file handles.
This is an incompatible change but allows for automatic closing
of file handles when they go out of scope. The previous integer
handles could also end up being changed by arithmetic
expressions.

Memory management for arrays was improved by allocating space
for 100 entries at a time instead of once for each added
element. Thanks to Anthony C Howe for the suggestion and a patch.

Also based on a suggestion by Anthony C Howe, most of the
interpreter has been reorganzied to be reentrant and thus
thread-safe. This also includes a preliminary version of an
API that can be used to embed the interpreter inside another
application. See the files api.h and arena.c and expect
documentation later. Neither this nor the thread-safety have
seen testing as of yet. Expect more changes in this area.

Dennis Heuer suggested to make it possible to dynamically
load C libraries and call C functions. To support this, two
new sets of library functions were added. One set allows
manual memory management and the other allows to load C
libraries and call C functions. Functions arguments are
automatically converted from Arena to C types and vice
versa. Passing arrays and structures can only be done manually
by using the memory functions to create in-memory C versions
on the fly.

The implementation of C function calls is experimental and
only works on 32-bit x86 systems with GCC as the C compiler.
Also, the underlying operating system needs to support
the dlopen() family of library functions. It has seen light
testing on both a Linux and a Solaris 10 system.


Version 0.9.2
-------------

This release fixes an off-by-one bug in the implementation
of the strftime library function that caused the unit
tests to fail on OpenBSD systems. Thanks to Jasper Lievisse
Adriaanse for reporting.

The "make install" target now takes care that the destination
directory for the interpreter binary (/usr/local/bin by default)
exists. Thanks to Dennis Heuer for reporting the issue.

There is a group of new library functions that provide
list-like handling for arrays. Most of these are variants
of the list library functions of Haskell, a functional
programming language.


Version 0.9.1
-------------

There was an annoying bug in the handling of the continue
statement. Namely, the interpreter's continue flag was reset
at the end of the statement block containing the continue
statement. This meant that a continue statement only worked
when it was in the top-most block inside a loop. If it
occured further down in a nested block, it had no effect.

Additionally, there was a double free problem when the
possiblity to leave out an expression in a for loop statement
was used multiple times in a script.

Both problem now have test cases in the regression test
suite.


Version 0.9.0
-------------

This was the initial release of the Arena scripting language
manual and interpreter.

The relatively high initial version number was chosen because
the language and basic library are supposed to be complete as
defined in the manual. Also, the interpreter survives all unit
tests and valgrind runs have shown it to be free of invalid
memory accesses and leaks (there are still some leaks when a
script causes a runtime error; but that aborts the whole
interpreter process anyway).
