Patch provided by Leonardo Taccari in PR 39142.
While here define test target, confirmed to pass all tests on NetBSD/i386 4.0.
Version 0.9.13
04 Sep 2007
- make static methods calling each other work correctly
Version 0.9.12
19 Aug 2007
- change system() library function to return raw exit code
Version 0.9.11
14 Aug 2007
- change signature type to also contain the function name
- add function_name() library function
Version 0.9.10
07 Jan 2007
- fix documentation of gmtime() and localtime() to list needed argument
- add mputstring() and mgetstring() library functions
- add cfloat() library function for calling C function that expect "float"
instead of "double"
Changes in this version include:
This release fixes a possible double free problem in the
printf() implementation. The problem occurred when more
conversion specifiers than function arguments were present and
the format required a cast from the dummy void value used by
the implementation to another type. Thanks to Dennis Heuer
for reporting the problem.
Also based on a suggestion by Dennis, the interpreter no
longer allows non-terminated escape sequences in string
literals. In other words, a string literal may no longer end
in a backslash character.
Alistair Crooks provided a couple of new example scripts that
include interfacing to native C libraries under NetBSD. He
also suggested to allow hexadecimal integer literals. These
are now allowed and need to be prefixed with "0x". For
example, "0xFF" or "0xff" is the same as writing "255".
Fabian Tschiatschek provided a patch to allow extra arguments
to be passed to map, filter, foldl, foldr, drop_while, and
take_while. These are passed down into the function provided
as the first argument. Fabian also noticed that the
documentation and implementation of foldr did not agree about
the order of arguments. The implementation was changed to
match the language manual.
There is a new library function called is_null that can check
whether a memory resource contains a C NULL pointer.
patch-ab has now been removed since, with the inclusion of is_null(), there
is no need for it.
Fix two things:
+ in the internal tests, as a last resort, look for libc.so
+ when calling a foreign function from arena which returns a pointer,
if the foreign function returns NULL, make the return value from
dyn_call_ptr() into a void arena value.
Patch has been fed back upstream.
with a 3-clause BSD licence, into the Packages collection.
A lightweight scripting language based on ANSI C. The language uses a
syntax and library similar to that of ANSI C, but adds automatic
memory management and runtime polymorphism on top of that.
The Arena language was designed with the following main features in
mind, most of which were added on top of a very C-like core to support
better ad-hoc scripting:
* syntax similar to ANSI C
* standard library similar to ANSI C
* automatic memory management
* runtime polymorphism
* support for exceptions
* support for anonymous functions
Additionally, an interpreter for the Arena language can be implemented
to be very compact in terms of both source code size and memory
consumption.