packages feed

hslua-core-2.2.0: CHANGELOG.md

# Changelog

`hslua-core` uses [PVP Versioning][].

## hslua-core-2.2.0

Released 2022-02-19.

-    Use lua-2.2.0, which requires Lua 5.4.

-    Rename `newuserdata` to `newuserdatauv` and let it take the
     number of associated uservalues as an additional argument.

     Similarly, `newhsuserdata` is now `newhsuserdatauv`.

-    Rename `getuservalue` and `setuservalue` to `getiuservalue`
     and `setiuservalue`, respectively. Like both functions now
     take an extra argument specifying the number of the uservalue
     that should be retrieved or set.

     It is now possible for `setiuservalue` to fail, so it returns
     a boolean to indicate whether the action was successful.

-    The `GCControl` type has been updated to match the new gc
     control:

     -   The GCStep constructor takes an argument "stepsize";
     -   constructors GCGen and GCInc have been added;
     -   constructors GCSetPause and GCSetStepMul have been removed.

## hslua-core-2.1.0

Released 29-01-2022.

-   The functions `rawget`, `rawgeti`, and `getref` now return the
    type of the value that was pushed to the stack.

-   A new function `checkstack'` is added to HsLua.Core.Auxiliary
    and exported from the main HsLua.Core module. The function
    throws an exception if the stack cannot be grown to
    accommodate a given number of elements; it is similar to
    `luaL_checkstack`.

-   Added function `requiref`, which safely wraps the unsafe
    `luaL_requiref` function.

-   New functions `pcallTrace`, `callTrace`, `dostringTrace`, and
    `dofileTrace`: behaves like the respective unsuffixed
    functions, but use a message handler that creates a stack
    traceback on error.

-   Added function `rotate`, wrapping `lua_rotate`.

-   Package helper `requirehs` signature changed to

    ``` haskell
    requirehs :: LuaError e
              => Name                 -- ^ modname
              -> (Name -> LuaE e ())  -- ^ openf
              -> LuaE e ()
    ```

    The function creating and pushing the module value now takes
    the module name as an argument. It also behaves more like
    `luaL_requiref` in that it reloads the module if the value in
    the LOADED table is falsy.

## hslua-core-2.0.0.2

Released 2021-11-03.

-   Fixed output of `pushTypeMismatchError` when there is no value
    at the given index. Previously the function would report the
    value as type `string` and now reports it as `no value`.

## hslua-core-2.0.0.1

Released 2021-10-29.

-   Fixed bug in pushTypeMismatchError. The function did not use
    an absolute stack index in one place, which sometimes lead to
    incorrect actual types being reported.

## hslua-core-2.0.0

Released 2021-10-21.

-   Error handling has been reworked completely. The type of
    exceptions used and handled by HsLua is now exposed to the
    type system. The type `Lua` makes use of a default error type.
    Custom error handling can be implemented by using the `LuaE`
    type with an exception type that is an instance of class
    `LuaError`.

-   Added new module HsLua.Core.Userdata. It contains thin
    wrappers around the functions available for creating
    Haskell-value-wrapping userdata objects.

-   Added new module HsLua.Core.Closures, containing functions to
    expose Haskell functions to Lua.

-   Reverted to using the auxlib `luaL_loadfile` function to load
    a Lua file. Previously files were opened and read in Haskell,
    but some functionality of the auxlib function was missing.

## hslua-core-1.0.0

Released 2021-02-27.

Extracted from hslua-1.3.0.

  [PVP Versioning]: https://pvp.haskell.org