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.