hslua v1.3.0 Release Notes

Release Date: 2020-10-16 // about 4 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.