Version 2.36.1 du 30/01/2023- `io.open` did not accept the 'a+', 'r+' and 'w+' options and also did not recognise the 'b' switch. This has been fixed.
- `io.infile` and `io.readfile` now support pattern matching.
- `skycrane.isemail` has been significantly improved, now also accepting preceding or trailing comments in the local-part of an address.
- The new C API function `agn_strmatch` searches a string for a substring, supporting pattern matching.
- The new C API functions `luaL_newref`, `luaL_pushref` and `luaL_freeref` originally written by Rici Lake for Lua 5.1 allow to work with C reference to objects in the Agena stack.
Version 2.36.0 du 26/01/2023- The new function `stack.cbrtd` computes the cubic root of the top element of the current numeric stack.
- The new function `stack.hypotd` computes the hypotenuse of the two top elements of the current numeric stack.
- The new function `stack.hypot4d` computes sqrt(x^2 - y^2) of the two top elements of the current numeric stack.
- The new function `stack.invhypotd` computes the inverse hypotenuse of the two top elements of the current numeric stack.
- The new function `stack.pythad` computes the Pythagorean equation a^2 + b^2 of the two top elements of the current numeric stack.
- The new function `stack.fmad` conducts the fused multiply-add operation x*y+z for the top three elements of the current numeric stack.
- The new function `stack.sinhd` computes the hyperbolic sine of the top element of the current numeric stack, in radians.
- The new function `stack.coshd` computes the hyperbolic cosine of the top element of the current numeric stack, in radians.
- The new function `stack.tanhd` computes the hyperbolic tangent of the top element of the current numeric stack, in radians.
- The new function `stack.arcsinhd` computes the inverse hyperbolic sine of the top element of the current numeric stack, in radians.
- The new function `stack.arccoshd` computes the inverse hyperbolic cosine of the top element of the current numeric stack, in radians.
- The new function `stack.arctanhd` computes the inverse hyperbolic tangent of the top element of the current numeric stack, in radians.
- The new function `stack.arctan2d` computes the arc tangent of y/x of the two top elements of the current numeric stack, in radians.
- `stack.mapd` can now entirely work on the stack and not only process one stack element, but others too, if the first argument `true` is given. Example: We have a function of three parameters x, y, z that returns x*y + z. The call puts the top three argumements 3, 2, 4
- > pushd 3, 2, 4
- > stack.mapd(true, << x, y, z -> fma(x, y, z) >>):
- `stack.mapd` did not properly check for invalid indexes. This has been fixed. Also improved error messages.
- Extended the C API: The new C macros `lua_istrue`, `lua_isfalse` and `lua_isfail` check whether a stack value is a boolean and then whether it is true, false or fail.
- For speed, the C API functions `agn_istrue`, `agn_isfalse` and `agn_isfail` have become C macros.