hslua v1.3.0 Release Notes

Release Date: 2020-10-16 // over 3 years ago
  • 🚀 Released 2020-10-16.

    🚀 Upgrade included Lua version to new bug-fix release 5.3.6. See
    📚 the upstream documentation https://www.lua.org/bugs.html#5.3.5
    🛠 for the bugs which have been fixed.

    Stop exporting c_loaded_table and c_prelad_table from module
    Foreign.Lua.Raw.Auxiliary. Both values are defined only if the
    flag HARDCODE_REG_KEYS is disabled, leading to compilation
    errors when the flag is enabled.

    ➕ Add new function peekStringy to Peek module. It allows to peek
    a value of any IsString type from an UTF-8 encoded string.

    Various improvements to the continuous integration setup,
    including cleanup of the config files, version bumps to the
    👕 ghc/cabal versions used for testing, and running the linter in a
    dedicated GitHub Action.


Previous changes from v1.2.0

  • 🚀 Released 2020-08-15

    🆕 New module Foreign.Lua.Call: the module offers an alternative
    method of exposing Haskell functions to Lua. The focus is on
    maintainability: types and marshaling methods are made explicit;
    📚 the possibility of adding documentation and parameter names
    👌 improves error messages and allows for automatic documentation
    extraction.

    Work on this module is ongoing; the interface is likely to
    🔄 change. Suggestions and feedback are welcome.

    🆕 New types Module, Field, and new functions registerModule,
    preloadModule, pushModule, and render exported from
    🏗 Foreign.Lua.Module: this builds on the new Call module and
    👍 allows the creation of documented modules as well as automatic
    📚 generation of Markdown-formatted module documentation.

    Export new items nth and top from Foreign.Lua.Core and
    Foreign.Lua. They are short-hands for nthFromTop and
    stackTop.

    🐎 Performance improvements: Calling of Lua functions and creation
    of Haskell data wrapping userdata has been sped up by about 10%.
    This is mostly due to using of previously missed optimization
    opportunities.

    🚚 All foreign imports have been moved to into the new
    Foreign.Lua.Raw module. This module will replace the current
    Foreign.Lua.Core module in the future and will be distributed
    🚀 as a separate package (likely starting with the 2.0 release);
    the remaining parts of the current Core module will be
    promoted one level in the module hierarchy.

    The Raw module can be used whenever the full power of HsLua is
    not needed.

    🚦 Error-signaling of API wrapper functions has been changed:
    instead of returning special integer values, functions now take
    an additional pointer argument, which is set to the status
    result of the computation.

    The Failable type in Core.Error is no longer needed and has
    🚚 been removed.

    🏗 CI builds now include GHC 8.8 and GHC 8.10, ensuring that all
    👍 GHC 8.* versions are supported.