Changelog of @hackage/lua 2.3.2

Changelog

lua uses PVP Versioning.

lua-2.3.2

Release pending.

  • Update to Lua 5.4.6.

lua-2.3.1

Released 2023-03-17.

  • New module Lua.Debug: the module provides bindings to a subset of functions of the Lua debug interface. Currently the module only binds lua_getupvalue and lua_setupvalue.

lua-2.3.0

Released 2023-03-13.

  • New function hslua_setwarnf: The function allows to set a C function as a hook that is called on all complete warning messages. It is intended as a simple way to set a custom warning function.

  • Export version and copyright info from Lua.Constants: the following patterns are made available, with content identical to that of the respective C functions: LUA_VERSION, LUA_RELEASE, and LUA_COPYRIGHT.

  • Added a new flag cross-compile. When enabled, the code is setup in a way that allows cross-compilation of the package, but some of the string constants will be hard-coded and may not match the Lua version against which the library is compiled.

  • Type is now an instance of Read.

lua-2.2.1

Released 2022-06-19.

  • Make string-peeking independent of the current foreign encoding: always use char8 encoding to retrieve values of LUA_PRELOAD_TABLE and LUA_LOADED_TABLE.

lua-2.2.0

Released 2022-02-19.

  • Update to Lua 5.4, include Lua 5.4.4 by default.

  • Removed hardcode-reg-keys flag: this is no longer required for Lua 5.4.

  • Support arbitrary number of uservalues: Lua 5.4 allows an arbitrary number of uservalues to be associated with userdata objects. The functions lua_newuserdata, lua_getuservalue, and lua_setuservalue are replaced with the new functions lua_newuserdatauv, lua_getiuservalue, and lua_setiuservalue, respectively.

    The function hslua_newhsuserdata is renamed to hslua_newhsuserdatauv and takes the number of associated uservalues as an additional argument.

  • Support for the new warnings system: export binding to lua_warning.

  • The function lua_gc now takes three data arguments of type CInt. This is a workaround for the fact that the C function has become variadic.

  • The new patterns LUA_GCGEN and LUA_GCINC are usable with lua_gc to switch to generational and incremental garbage collection, respectively.

lua-2.1.0

Released 29-01-2022.

  • The functions lua_rawget and lua_rawgeti now return the type of the value that was pushed to the stack.

  • Added bindings to unsafe function lua_arith. A new type ArithOPCode for arithmetic operations is added, as are pattern synonyms for the supported operations. These are:

    • LUA_OPADD
    • LUA_OPSUB
    • LUA_OPMUL
    • LUA_OPDIV
    • LUA_OPIDIV
    • LUA_OPMOD
    • LUA_OPPOW
    • LUA_OPUNM
    • LUA_OPBNOT
    • LUA_OPBAND
    • LUA_OPBOR
    • LUA_OPBXOR
    • LUA_OPSHL
    • LUA_OPSHR
  • Added ersatz functions hslua_arith and hsluaL_requiref, wrapping lua_artih and luaL_requiref, respectively. Both functions catch any error resulting from the call.

  • Made types OPCode, StatusCode, and GCCode instances of type class Show.

  • The Show instances of Integer and Number now behave like those of the wrapped types. Both types are now also instance of Read.

  • Removed hslua_userdata_gc from hslua.h.

lua-2.0.2

Released 2021-11-26.

  • Make sure lualib.h is available through this package. The header file contains info on how and under which name the standard library is loaded.

lua-2.0.1

Released 2021-11-03.

  • Added bindings to lua_rotate and lua_version.

lua-2.0.0.1

Released 2021-10-30.

  • Only install includes when using the Lua code shipped with the package (Ellie Hermaszewska). Cabal no longer tries to install the header files if a system-wide installation is used.

lua-2.0.0

Released 2021-10-21.

  • Module hierarchy moved from Foreign.Lua.Raw to Lua.

  • Documentation has been improved.

  • Added new function withNewState to run Lua operations.

  • New modules Lua.Ersatz containing all bindings to safe ersatz functions.

  • Higher level and enum types have been removed, only the low-level “code” types are kept in this package.

  • Constants are now represented as pattern synonyms like LUA_OK.

  • Provide bindings to more functions:

    • lua_is... type-checking functions;
    • lua_pushstring to push plain CStrings;
    • auxiliary functions
      • luaL_loadfile, and
      • luaL_loadfilex;
    • unsafe functions
      • lua_gettable,
      • lua_settable,
      • lua_getglobal, and
      • lua_setglobal.
  • The function lua_pop now expects a CInt instead of a StackIndex.

  • New StackIndex constructor functions nthTop, nthBottom, nth, and top.

  • Avoid unnecessary modification of HSFUN metatable.

  • Various cleanups and test improvements.

lua-1.0.0

Released 2021-02-18.

  • Initially created. Contains all modules in the Foreign.Lua.Raw hierarchy from hslua-1.3. Documentation has been improved.