hslua 2.0.1 → 2.1.0
raw patch · 8 files changed
+523/−474 lines, 8 filesdep ~hslua-classesdep ~hslua-coredep ~hslua-marshallingPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hslua-classes, hslua-core, hslua-marshalling, hslua-objectorientation, hslua-packaging, text
API changes (from Hackage documentation)
- HsLua: class Peekable a
- HsLua: inContext :: PeekError e => String -> LuaE e a -> LuaE e a
- HsLua: messageFromException :: PeekError e => e -> String
- HsLua: peek :: (Peekable a, PeekError e) => StackIndex -> LuaE e a
Files
- CHANGELOG.md +506/−457
- LICENSE +1/−1
- hslua.cabal +10/−9
- src/HsLua.hs +2/−3
- src/HsLua/Util.hs +1/−1
- test/HsLua/UtilTests.hs +1/−1
- test/HsLuaTests.hs +1/−1
- test/test-hslua.hs +1/−1
CHANGELOG.md view
@@ -1,176 +1,192 @@-## Changelog+# Changelog -### hslua-2.0.1+`hslua` uses [PVP Versioning][]. +## hslua-2.1.0++Released 29-01-2022.++- Update to hslua-objectorientation 2.1.0. This entails changes+ to `deftype'` and `deftypeGeneric`, switching the order of+ item pusher and list-extractor function in the tuple passed as+ the last argument.++- Update to hslua-core 2.1.0, hslua-marshalling 2.1.0, and+ hslua-classes 2.1.0.++## hslua-2.0.1+ Released 2021-11-04. - - Updated lower bounds of hslua packages:- + hslua >= 2.0.0.2,- + hslua-marshalling >= 2.0.1, and- + hslua-objectorientation >= 2.0.1.+- Updated lower bounds of hslua packages:+ - hslua \>= 2.0.0.2,+ - hslua-marshalling \>= 2.0.1, and+ - hslua-objectorientation \>= 2.0.1. This fixes a number of smaller issues; see the respective package changelogs for details. -### hslua-2.0.0+## hslua-2.0.0 Released 2021-10-21. -- Move module hierarchy from Foreign.Lua to HsLua.--- 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`.+- Move module hierarchy from Foreign.Lua to HsLua. -- Renamed stack index helpers to `nth`, `nthTop`, `nthBottom`,- `top`. The following have been *removed*: `stackTop`,- `nthFromTop`, `nthFromBottom`.+- 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`. -- Extracted raw Lua bindings into new package *lua*. This means- that all cabal flags have been moved to package *lua* as well.- Version lua-1.0.0 contained the `Foreign.Lua.Raw` hierarchy as- present in hslua-1.3.0. See that package's changelog for- info on the additional modifications since then.+- Renamed stack index helpers to `nth`, `nthTop`, `nthBottom`,+ `top`. The following have been *removed*: `stackTop`,+ `nthFromTop`, `nthFromBottom`. -- The module Foreign.Lua.Raw.Error was merged into the- HsLua.Core.Error module.+- Extracted raw Lua bindings into new package *lua*. This means+ that all cabal flags have been moved to package *lua* as well.+ Version lua-1.0.0 contained the `Foreign.Lua.Raw` hierarchy as+ present in hslua-1.3.0. See that package’s changelog for info+ on the additional modifications since then. -- The functions `getglobal` and `gettable` now return the Lua- `Type` of the pushed value.+- The module Foreign.Lua.Raw.Error was merged into the+ HsLua.Core.Error module. -- Extracted new packages:+- The functions `getglobal` and `gettable` now return the Lua+ `Type` of the pushed value. - + *hslua-core*: the package contains all modules from the- *Core* sub-hierarchy.+- Extracted new packages: - * *hslua-classes*: typclasses *Peekable* and *Pushable* for- pushing and pulling, as well as function calling.+ - *hslua-core*: the package contains all modules from the+ *Core* sub-hierarchy. - + *tasty-hslua*: makes testing helpers available for reuse.+ - *hslua-classes*: typclasses *Peekable* and *Pushable* for+ pushing and pulling, as well as function calling. -- Moved *run* functions from Util to Core.Run.+ - *tasty-hslua*: makes testing helpers available for reuse. -- Moved module Utf8 from the base level into Core.+- Moved *run* functions from Util to Core.Run. -- Refactored code to expose Haskell functions to Lua:+- Moved module Utf8 from the base level into Core. - + Removed functions `newCFunction`, `freeCFunction`. Use- `pushHaskellFunction` instead, it takes care of garbage- collection.+- Refactored code to expose Haskell functions to Lua: - + Renamed typeclass `ToHaskellFunction` to `Exposable`,- function `callFunc` to `invoke`. All these have been moved- to *hslua-classes*.+ - Removed functions `newCFunction`, `freeCFunction`. Use+ `pushHaskellFunction` instead, it takes care of garbage+ collection. - + The type PreCFunction is now defined in package lua;- HaskellFunction is defined in hslua-core.+ - Renamed typeclass `ToHaskellFunction` to `Exposable`,+ function `callFunc` to `invoke`. All these have been moved+ to *hslua-classes*. - + Changed `pushHaskellFunction` to only accept HaskellFunction- arguments, move it to hslua-core.+ - The type PreCFunction is now defined in package lua;+ HaskellFunction is defined in hslua-core. - + Removed helper functions `addfunction` and `addfield` from- *Module*. Use documented functions and fields instead.+ - Changed `pushHaskellFunction` to only accept+ HaskellFunction arguments, move it to hslua-core. -- Added support for a "since" tag on documented functions; allows- to mark the library version when a function was introduced in- its present form.+ - Removed helper functions `addfunction` and `addfield` from+ *Module*. Use documented functions and fields instead. +- Added support for a “since” tag on documented functions;+ allows to mark the library version when a function was+ introduced in its present form. -### 1.3.0.1+## hslua-1.3.0.1 Released 2021-02-06. -- Fixed build with GHC 9.0.1 (Simon Jakobi).+- Fixed build with GHC 9.0.1 (Simon Jakobi). -- Improved test-suite; fixed memory leaks in some tests.+- Improved test-suite; fixed memory leaks in some tests. -- Moved CI to GitHub Actions.+- Moved CI to GitHub Actions. -### 1.3.0+## hslua-1.3.0 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.+- 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.+- 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.+- 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.+- 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. -### 1.2.0+## 1.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.+- 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.+ 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.+- 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`.+- 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.+- 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.+- 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.+ 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.+- 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.+ 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.+- CI builds now include GHC 8.8 and GHC 8.10, ensuring that all+ GHC 8.\* versions are supported. -### 1.1.2+## hslua-1.1.2 Released 2020-06-27 -- Revert signature of function `pushList` to it's proper 1.1- value. This fixes a mistake which caused the 1.1.1 release- to be in violation of the PVP versioning policy.+- Revert signature of function `pushList` to it’s proper 1.1+ value. This fixes a mistake which caused the 1.1.1 release to+ be in violation of the PVP versioning policy. -- Module Foreign.Lua.Peek: add function `pushKeyValuePairs` (Alex- Loomis).+- Module Foreign.Lua.Peek: add function `pushKeyValuePairs`+ (Alex Loomis). -### 1.1.1+## hslua-1.1.1 Released 2020-06-02 @@ -178,31 +194,32 @@ policy, due to a unintended signature change of function `pushList`. It is recommended not to use this version. -- New module Foreign.Lua.Push: provides functions which marshal- and push Haskell values onto Lua's stack.+- New module Foreign.Lua.Push: provides functions which marshal+ and push Haskell values onto Lua’s stack. - Most functions in Foreign.Lua.Types.Pushable are now defined- using functions from this module.+ Most functions in Foreign.Lua.Types.Pushable are now defined+ using functions from this module. -- New module Foreign.Lua.Peek: provides functions which unmarshal- and retrieve Haskell values from Lua's stack. Contrary to `peek`- from Foreign.Lua.Types.Peekable, the peeker functions in this- module will never throw errors, but use an `Either` type to- signal retrieval failure.+- New module Foreign.Lua.Peek: provides functions which+ unmarshal and retrieve Haskell values from Lua’s stack.+ Contrary to `peek` from Foreign.Lua.Types.Peekable, the peeker+ functions in this module will never throw errors, but use an+ `Either` type to signal retrieval failure. - The error type `PeekError` should not be considered final and- will likely be subject to change in later versions.+ The error type `PeekError` should not be considered final and+ will likely be subject to change in later versions. -- Module Foreign.Lua.Utf8: never throw errors when decoding UTF-8- strings. Invalid UTF-8 input bytes no longer cause exceptions,- but are replaced with the Unicode replacement character U+FFFD.+- Module Foreign.Lua.Utf8: never throw errors when decoding+ UTF-8 strings. Invalid UTF-8 input bytes no longer cause+ exceptions, but are replaced with the Unicode replacement+ character U+FFFD. -- Fixed missing and faulty Haddock documentation.+- Fixed missing and faulty Haddock documentation. -- Fixed a bug which caused unnecessary use of strings to represent- floating point numbers under certain configurations.+- Fixed a bug which caused unnecessary use of strings to+ represent floating point numbers under certain configurations. -### 1.1.0+## hslua-1.1.0 Released 2020-03-25. @@ -210,443 +227,475 @@ recommended to skip this release unless the newly introduced features are required. -- Allow custom error handling: conversion of Lua errors to- Haskell exceptions and back is made configurable. Users can- define their own exception/error handling strategies, even- opening up the option to pass arbitrary exceptions through Lua.-- - New types exported from `Foreign.Lua.Types`:+- Allow custom error handling: conversion of Lua errors to+ Haskell exceptions and back is made configurable. Users can+ define their own exception/error handling strategies, even+ opening up the option to pass arbitrary exceptions through+ Lua. - - `ErrorConversion`: defines the ways in which exceptions- and errors are handled and converted.- - `LuaEnvironment`: environment in which Lua computations- are evaluated. Contains the Lua interpreter state and- the error conversion strategy.+ - New types exported from `Foreign.Lua.Types`: - - The environment of the `Lua` type is changed from a plain- Lua `State` to the above mentioned `LuaEnvironment`.+ - `ErrorConversion`: defines the ways in which+ exceptions and errors are handled and converted.+ - `LuaEnvironment`: environment in which Lua+ computations are evaluated. Contains the Lua+ interpreter state and the error conversion strategy. - - New functions `run'` is exported from `Foreign.Lua.Util`- and `Foreign.Lua`: it is analogous to `run`, but allows to- run computations with a custom error conversion strategy.+ - The environment of the `Lua` type is changed from a plain+ Lua `State` to the above mentioned `LuaEnvironment`. - - New function `runWithConverter` exported from- `Foreign.Lua.Core.Types` and `Foreign.Lua.Core`; like- `run'`, but takes a custom state.+ - New functions `run'` is exported from `Foreign.Lua.Util`+ and `Foreign.Lua`: it is analogous to `run`, but allows to+ run computations with a custom error conversion strategy. - - New function `unsafeRunWith` exported from- `Foreign.Lua.Core.Types` and `Foreign.Lua.Core`; runs a- computation without proper error handling.+ - New function `runWithConverter` exported from+ `Foreign.Lua.Core.Types` and `Foreign.Lua.Core`; like+ `run'`, but takes a custom state. - - New function `errorConversion` exported from- `Foreign.Lua.Core.Types` and `Foreign.Lua.Core`: extract- the error conversion strategy from the Lua type.+ - New function `unsafeRunWith` exported from+ `Foreign.Lua.Core.Types` and `Foreign.Lua.Core`; runs a+ computation without proper error handling. - - New function `throwErrorAsException` exported from- `Foreign.Lua.Core.Error` and `Foreign.Lua.Core`: throws a- Lua error as Haskell exception, using the current error- conversion strategy.+ - New function `errorConversion` exported from+ `Foreign.Lua.Core.Types` and `Foreign.Lua.Core`: extract+ the error conversion strategy from the Lua type. -- Function `runWith` is moved from module `Foreign.Lua.Core` to- `Foreign.Lua.Util`.+ - New function `throwErrorAsException` exported from+ `Foreign.Lua.Core.Error` and `Foreign.Lua.Core`: throws a+ Lua error as Haskell exception, using the current error+ conversion strategy. -- The module `Foreign.Lua.Utf8` is now exported.+- Function `runWith` is moved from module `Foreign.Lua.Core` to+ `Foreign.Lua.Util`. +- The module `Foreign.Lua.Utf8` is now exported. -### 1.0.3.2+## hslua-1.0.3.2 Released 2019-08-21. -- Added flag to use hardcoded values for registry keys: The names- of the registry keys used to store package information are- available as CPP values from file lauxlib.h since Lua 5.3.4;- compiling HsLua against older Lua versions was not possible, as- those values were expected to exist.+- Added flag to use hardcoded values for registry keys: The+ names of the registry keys used to store package information+ are available as CPP values from file lauxlib.h since Lua+ 5.3.4; compiling HsLua against older Lua versions was not+ possible, as those values were expected to exist. - The respective values are now hardcoded into HsLua, and a new- flag `hardcode-reg-key` is introduced, which will cause the use- of these hardcoded values instead of those defined in- lauxlib.h. Using this flag makes it possible to compile hslua- against all Lua 5.3.* versions.+ The respective values are now hardcoded into HsLua, and a new+ flag `hardcode-reg-key` is introduced, which will cause the+ use of these hardcoded values instead of those defined in+ lauxlib.h. Using this flag makes it possible to compile hslua+ against all Lua 5.3.\* versions. -- Added missing C files for benchmarking to list of- *extra-source-files*.+- Added missing C files for benchmarking to list of+ *extra-source-files*. -### 1.0.3.1+## hslua-1.0.3.1 Released 2019-05-08. -- Prevent filenames being treated as strings in debug messages.- Lua's `loadbuffer` takes a `source` description as an argument,- which is used for debug messages. The `loadfile` function now- adds a special prefix (`@`) to `source`, thus marking it as a- filename.+- Prevent filenames being treated as strings in debug messages.+ Lua’s `loadbuffer` takes a `source` description as an+ argument, which is used for debug messages. The `loadfile`+ function now adds a special prefix (`@`) to `source`, thus+ marking it as a filename. -### 1.0.3+## hslua-1.0.3 Released 2019-05-04. -- New module `Foreign.Lua.Module`, containing helper functions to- define and load modules from Haskell.+- New module `Foreign.Lua.Module`, containing helper functions+ to define and load modules from Haskell. -- Improve documentation of `open<lib>` (many thanks to Christian- Charukiewicz.)+- Improve documentation of `open<lib>` (many thanks to Christian+ Charukiewicz.) -### 1.0.2+## hslua-1.0.2 Released 2019-01-05. -- Fixed cross-compilation: placement of C import declarations- were fixed, thereby resolving issues with cross-compilation.- (Vanessa McHale and Faraz Maleknia)--- Added .gitattributes file, fixing the wrong language- classification of the GitHub repository. (Vanessa McHale)--- Improved `toHaskellFunction` documentation. The documentation- is now more specific on which Haskell exceptions are caught and- which will lead to crashes.-+- Fixed cross-compilation: placement of C import declarations+ were fixed, thereby resolving issues with cross-compilation.+ (Vanessa McHale and Faraz Maleknia) -### 1.0.1+- Added .gitattributes file, fixing the wrong language+ classification of the GitHub repository. (Vanessa McHale) -- Exposed more functions from Lua's `lauxlib` library:+- Improved `toHaskellFunction` documentation. The documentation+ is now more specific on which Haskell exceptions are caught+ and which will lead to crashes. - + `getmetafield`,- + `getmetatable'`,- + `getsubtable`, and- + `traceback`.+## hslua-1.0.1 - The function `getsubtable` is a reimplementation instead of a wrapper- to the C function for simplicity (thereby avoiding additional C- wrappers).+- Exposed more functions from Lua’s `lauxlib` library: -- Fixed tests for GHC 8.6 by no longer depending on failable pattern- matching.+ - `getmetafield`,+ - `getmetatable'`,+ - `getsubtable`, and+ - `traceback`. + The function `getsubtable` is a reimplementation instead of a+ wrapper to the C function for simplicity (thereby avoiding+ additional C wrappers). -### 1.0.0+- Fixed tests for GHC 8.6 by no longer depending on failable+ pattern matching. -#### New features+## hslua-1.0.0 -- Error handling at language borders has been vastly improved and is now- mostly automatic. Haskell's `Foreign.Lua.Exception`s are transformed- into Lua errors and *vice versa*. Lua-side wrappers are no longer- necessary.+### New features -- Haskell functions are no longer pushed as userdata by- `pushHaskellFunction`, but as C functions. This simplifies tasks where- Lua expects true function objects object (for example when looking for- module loaders).+- Error handling at language borders has been vastly improved+ and is now mostly automatic. Haskell’s+ `Foreign.Lua.Exception`s are transformed into Lua errors and+ *vice versa*. Lua-side wrappers are no longer necessary. -- Added stack instance for+- Haskell functions are no longer pushed as userdata by+ `pushHaskellFunction`, but as C functions. This simplifies+ tasks where Lua expects true function objects object (for+ example when looking for module loaders). - + Data.Set.Set,- + Integer,- + Int,- + Float, and- + Double.+- Added stack instance for - Instances for numbers fall back to strings when the- representation as a Lua number would cause a loss of precision.+ - Data.Set.Set,+ - Integer,+ - Int,+ - Float, and+ - Double. -- Haskell functions pushed with `pushHaskellFunction` can now be- garbage collected by Lua without having to call back into- Haskell. The callback into Haskell by the GC had previously- caused programs to hang in some situations.+ Instances for numbers fall back to strings when the+ representation as a Lua number would cause a loss of+ precision. -- Bindings to more Lua C API functions and macros: `isinteger`, `load`,- `loadbuffer`, and `pushglobaltable`.+- Haskell functions pushed with `pushHaskellFunction` can now be+ garbage collected by Lua without having to call back into+ Haskell. The callback into Haskell by the GC had previously+ caused programs to hang in some situations. -- Any Haskell value can be pushed to the Lua stack as userdata via- `pushAny` and retrieved via `peekAny`. Additional functions are- provided to setup the userdata metatable.+- Bindings to more Lua C API functions and macros: `isinteger`,+ `load`, `loadbuffer`, and `pushglobaltable`. -- The C preprocessor constants `LUA_LOADED_TABLE` and- `LUA_PRELOAD_TABLE` are made available as- `loadedTableRegistryField` and `preloadTableRegistryField`,- respectively.+- Any Haskell value can be pushed to the Lua stack as userdata+ via `pushAny` and retrieved via `peekAny`. Additional+ functions are provided to setup the userdata metatable. -- Additional small helper functions:+- The C preprocessor constants `LUA_LOADED_TABLE` and+ `LUA_PRELOAD_TABLE` are made available as+ `loadedTableRegistryField` and `preloadTableRegistryField`,+ respectively. - + `peekRead` -- read value from a string.- + `popValue` -- peek value at the top of the Lua stack, then- remove it from the stack regardless of whether peeking was- successful or not.+- Additional small helper functions: -#### Naming+ - `peekRead` – read value from a string.+ - `popValue` – peek value at the top of the Lua stack, then+ remove it from the stack regardless of whether peeking was+ successful or not. -- The *Lua* prefix was removed from types (`State`, `Integer`, `Number`,- `Exception`) and the respective infix from functions (`try`, `run`,- `runWith`, `runEither`). HsLua should be imported qualified to avoid- name collisions.+### Naming -- Terminology now consistently uses *exception* to refer to Haskell- exceptions, and *error* for Lua errors; function names changed- accordingly (`throwException`, `catchException`,- `withExceptionMessage`).+- The *Lua* prefix was removed from types (`State`, `Integer`,+ `Number`, `Exception`) and the respective infix from functions+ (`try`, `run`, `runWith`, `runEither`). HsLua should be+ imported qualified to avoid name collisions. -- Module *Foreign.Lua.Api* was renamed to *Foreign.Lua.Core*.+- Terminology now consistently uses *exception* to refer to+ Haskell exceptions, and *error* for Lua errors; function names+ changed accordingly (`throwException`, `catchException`,+ `withExceptionMessage`). -- *Foreign.Lua.lerror* was renamed to *Foreign.Lua.error*.+- Module *Foreign.Lua.Api* was renamed to *Foreign.Lua.Core*. -- Typeclass *ToLuaStack* was renamed to *Pushable*.+- *Foreign.Lua.lerror* was renamed to *Foreign.Lua.error*. -- Typeclass *FromLuaStack* was renamed to *Peekable*.+- Typeclass *ToLuaStack* was renamed to *Pushable*. -- Cabal flag *use-pkgconfig* was renamed to *pkg-config* (which is the- flag name used by other projects such a zlib).+- Typeclass *FromLuaStack* was renamed to *Peekable*. +- Cabal flag *use-pkgconfig* was renamed to *pkg-config* (which+ is the flag name used by other projects such a zlib). -#### Type signatures+### Type signatures -- The return value of `lua_newuserdata` is *CSize* (was *CInt*).+- The return value of `lua_newuserdata` is *CSize* (was *CInt*). -- Table index parameter in `rawgeti` and `rawseti` must be of type- *LuaInteger*, but were of type *Int*.+- Table index parameter in `rawgeti` and `rawseti` must be of+ type *LuaInteger*, but were of type *Int*. -- The number of upvalues passed to `pushcclosure` must be of type- *NumArgs*.+- The number of upvalues passed to `pushcclosure` must be of+ type *NumArgs*. -- `Lua.error` has type *Lua NumResults*, simplifying its use in+- `Lua.error` has type *Lua NumResults*, simplifying its use in HaskellFunctions. -- Retrieval functions which can fail, i.e. `tocfunction`, `tointeger`,- `tonumber`, `tostring`, `tothread`, and `touserdata`, use the *Maybe*- type to indicate success or failure, avoiding the need to perform- additional checks.+- Retrieval functions which can fail, i.e. `tocfunction`,+ `tointeger`, `tonumber`, `tostring`, `tothread`, and+ `touserdata`, use the *Maybe* type to indicate success or+ failure, avoiding the need to perform additional checks. -#### Removed Features+### Removed Features -- Support for Lua versions before 5.3 has been dropped.+- Support for Lua versions before 5.3 has been dropped. -- Support for GHC 7.8 has been dropped.+- Support for GHC 7.8 has been dropped. -- `wrapHaskellFunction` has been made internal and is no longer- exported.+- `wrapHaskellFunction` has been made internal and is no longer+ exported. -#### Changed behavior+### Changed behavior -- Peekable instances for numbers and strings became more forgiving.- Peeking of basic types now follows Lua's default conversion rules:+- Peekable instances for numbers and strings became more+ forgiving. Peeking of basic types now follows Lua’s default+ conversion rules: - + numbers can be given as strings, and *vice versa*;- + any value can be converted into a boolean -- only `nil` and `false`- are peeked as `False`, all other as `True`.+ - numbers can be given as strings, and *vice versa*;+ - any value can be converted into a boolean – only `nil` and+ `false` are peeked as `False`, all other as `True`. -#### Other+### Other -- Many internal improvements and additions such as a benchmarking suite,- code cleanups, better tests, etc.+- Many internal improvements and additions such as a+ benchmarking suite, code cleanups, better tests, etc. -### 0.9.5.{1,2}+## hslua-0.9.5.2 -- Relaxed upper bound on *exceptions*.+- Relaxed upper bound on *exceptions*. Again. -### 0.9.5+## hslua-0.9.5.1 -- Provide Optional as a replacement for OrNil. Exports of the latter- have been fixed.-- Provide utility function `raiseError`: Its argument will be thrown as- an error in Lua.-- Add `modifyLuaError`: The function lives in Foreign.Lua.Error and- allows to alter error messages. This is most useful for amending- errors with additional information.-- Fixed a bug in `toList` which left a element on the stack if- deserializing that element lead to an error. This also affected the- FromLuaStack instance for lists.-- Fixed a bug in `pairsFromTable` which left a key-value pair on the- stack if either of them could not be read into the expected type. This- also affected the FromLuaStack instance for Map.+- Relaxed upper bound on *exceptions*. -### 0.9.4+## hslua-0.9.5 -- Make Lua an instance of MonadMask: MonadMask from Control.Monad.Catch- allows to mask asynchronous exceptions. This allows to define a- finalizer for Lua operations.-- Add functions and constants to refer to stack indices: The functions- `nthFromBottom`, `nthFromTop` as well as the constants `stackTop` and- `stackBottom` have been introduced. Numeric constants are less clear,- and named constants can aid readability.-- Add type OrNil: This type can be used when dealing with optional- arguments to Lua functions.-- Add function absindex: it converts the acceptable index `idx` into an- equivalent absolute index (that is, one that does not depend on the- stack top). The function calls `lua_absindex` when compiled with Lua- 5.2 or later; for Lua 5.1, it is reimplemented in Haskell.-- Functions in `tasty` which have been deprecated have been replaced- with non-deprecated alternatives.+- Provide Optional as a replacement for OrNil. Exports of the+ latter have been fixed.+- Provide utility function `raiseError`: Its argument will be+ thrown as an error in Lua.+- Add `modifyLuaError`: The function lives in Foreign.Lua.Error+ and allows to alter error messages. This is most useful for+ amending errors with additional information.+- Fixed a bug in `toList` which left a element on the stack if+ deserializing that element lead to an error. This also+ affected the FromLuaStack instance for lists.+- Fixed a bug in `pairsFromTable` which left a key-value pair on+ the stack if either of them could not be read into the+ expected type. This also affected the FromLuaStack instance+ for Map. +## hslua-0.9.4 -### 0.9.3+- Make Lua an instance of MonadMask: MonadMask from+ Control.Monad.Catch allows to mask asynchronous exceptions.+ This allows to define a finalizer for Lua operations.+- Add functions and constants to refer to stack indices: The+ functions `nthFromBottom`, `nthFromTop` as well as the+ constants `stackTop` and `stackBottom` have been introduced.+ Numeric constants are less clear, and named constants can aid+ readability.+- Add type OrNil: This type can be used when dealing with+ optional arguments to Lua functions.+- Add function absindex: it converts the acceptable index `idx`+ into an equivalent absolute index (that is, one that does not+ depend on the stack top). The function calls `lua_absindex`+ when compiled with Lua 5.2 or later; for Lua 5.1, it is+ reimplemented in Haskell.+- Functions in `tasty` which have been deprecated have been+ replaced with non-deprecated alternatives. -- Re-export more FunctionCalling helpers in `Foreign.Lua`: The typeclass- `ToHaskellFunction` and the helper function `toHaskellFunction` are- useful when working with functions. Importing them separately from- `Foreign.Lua.FunctionCalling` was an unnecessary burden; they are- therefor now re-exported by the main module.-- Export registry-relatd constants `refnil` and `noref`: The constants- are related to Lua's registry functions (`ref` and `unref`).-- Add helper to convert functions into CFunction: A new helper- `wrapHaskellFunction` is provided. It expects a- HaskellImportedFunction userdata (as produced by- `pushHaskellFunction`) on top of the stack and replaces it with a C- function. The new function converts error values generated with- `lerror` into Lua errors, i.e. it calls `lua_error`.-- Add utility function `setglobal'`: It works like `setglobal`, but- works with packages and nested tables (dot-notation only).+## hslua-0.9.3 -### 0.9.2+- Re-export more FunctionCalling helpers in `Foreign.Lua`: The+ typeclass `ToHaskellFunction` and the helper function+ `toHaskellFunction` are useful when working with functions.+ Importing them separately from `Foreign.Lua.FunctionCalling`+ was an unnecessary burden; they are therefor now re-exported+ by the main module.+- Export registry-relatd constants `refnil` and `noref`: The+ constants are related to Lua’s registry functions (`ref` and+ `unref`).+- Add helper to convert functions into CFunction: A new helper+ `wrapHaskellFunction` is provided. It expects a+ HaskellImportedFunction userdata (as produced by+ `pushHaskellFunction`) on top of the stack and replaces it+ with a C function. The new function converts error values+ generated with `lerror` into Lua errors, i.e. it calls+ `lua_error`.+- Add utility function `setglobal'`: It works like `setglobal`,+ but works with packages and nested tables (dot-notation only). -- Add cabal flag 'export-dynamic': Default behavior is to include all symbols in- the dynamic symbol table, as this enables users to load dynamic lua libraries.- However, it is sometimes desirable to disable, e.g., when compiling a fully- static binary. See jgm/pandoc#3986.+## hslua-0.9.2 -### 0.9.1+- Add cabal flag ‘export-dynamic’: Default behavior is to+ include all symbols in the dynamic symbol table, as this+ enables users to load dynamic lua libraries. However, it is+ sometimes desirable to disable, e.g., when compiling a fully+ static binary. See jgm/pandoc#3986. -- Increase user-friendlyness of error messages: The error message returned by- `toHaskellFunction` hinted at the fact that the failing function is a Haskell- function. This is mostly unnecessary information and might have confused- users.+## hslua-0.9.1 -### 0.9.0+- Increase user-friendlyness of error messages: The error+ message returned by `toHaskellFunction` hinted at the fact+ that the failing function is a Haskell function. This is+ mostly unnecessary information and might have confused users. -- Added cabal flag to allow fully safe garbage collection: Lua garbage- collection can occur in most of the API functions, even in those usually not- calling back into haskell and hence marked as optimizable. The effect of this- is that finalizers which call Haskell functions will cause the program to- hang. A new flag `allow-unsafe-gc` is introduced and enabled by default.- Disabling this flag will mark more C API functions as potentially calling back- into Haskell. This has a serious performance impact.-- `FromLuaStack` and `ToLuaStack` instances for lazy ByteStrings are added.-- None-string error messages are handled properly: Lua allows error messages to- be of any type, but the haskell error handlers expected string values. Tables,- booleans, and other non-string values are now handled as well and converted to- strings.+## hslua-0.9.0 -### 0.8.0+- Added cabal flag to allow fully safe garbage collection: Lua+ garbage collection can occur in most of the API functions,+ even in those usually not calling back into haskell and hence+ marked as optimizable. The effect of this is that finalizers+ which call Haskell functions will cause the program to hang. A+ new flag `allow-unsafe-gc` is introduced and enabled by+ default. Disabling this flag will mark more C API functions as+ potentially calling back into Haskell. This has a serious+ performance impact.+- `FromLuaStack` and `ToLuaStack` instances for lazy ByteStrings+ are added.+- None-string error messages are handled properly: Lua allows+ error messages to be of any type, but the haskell error+ handlers expected string values. Tables, booleans, and other+ non-string values are now handled as well and converted to+ strings. -- Use newtype definitions instead of type aliases for LuaNumber and LuaInteger.- This makes it easier to ensure the correct numeric instances in situations- where Lua might have been compiled with 32-bit numbers.-- Instances of `FromLuaStack` and `ToLuaStack` for `Int` are removed. The- correctness of these instances cannot be guaranteed if Lua was compiled with a- non-standard integer type.+## hslua-0.8.0 -### 0.7.1+- Use newtype definitions instead of type aliases for LuaNumber+ and LuaInteger. This makes it easier to ensure the correct+ numeric instances in situations where Lua might have been+ compiled with 32-bit numbers.+- Instances of `FromLuaStack` and `ToLuaStack` for `Int` are+ removed. The correctness of these instances cannot be+ guaranteed if Lua was compiled with a non-standard integer+ type. -- The flag `lua_32bits` was added to allow users to compile Lua for 32-bit- systems.-- When reading a list, throw an error if the lua value isn't a table instead of- silently returning an empty list.+## hslua-0.7.1 -### 0.7.0+- The flag `lua_32bits` was added to allow users to compile Lua+ for 32-bit systems.+- When reading a list, throw an error if the lua value isn’t a+ table instead of silently returning an empty list. -- Tuples from pairs to octuples have been made instances of `FromLuaStack` and- `ToLuaStack`.-- New functions `dostring` and `dofile` are provided to load and run strings and- files in a single step.-- `LuaStatus` was renamed to `Status`, the *Lua* prefix was removed from its- type constructors.-- The constructor `ErrFile` was added to `Status`. It is returned by `loadfile`- if the file cannot be read.-- Remove unused FFI bindings and unused types, including all functions unsafe to- use from within Haskell and the library functions added with 0.5.0. Users with- special requirements should define their own wrappers and raw bindings.-- The module *Foreign.Lua.Api.SafeBindings* was merge into- *Foreign.Lua.Api.RawBindings*.-- FFI bindings are changed to use newtypes where sensible, most notably- `StackIndex`, `NumArgs`, and `NumResults`, but also the newly introduced- newtypes `StatusCode`, `TypeCode`, and `LuaBool`.-- Add functions `tointegerx` and `tonumberx` which can be used to get and check- values from the stack in a single step.-- The signature of `concat` was changed from `Int -> Lua ()` to- `NumArgs -> Lua ()`.-- The signature of `loadfile` was changed from `String -> Lua Int` to- `String -> Lua Status`.-- The type `LTYPE` was renamed to `Type`, its constructors were renamed to- follow the pattern `Type<Typename>`. `LuaRelation` was renamed to- `RelationalOperator`, the *Lua* prefix was removed from its constructors.-- Add function `tolist` to allow getting a generic list from the stack without- having to worry about the overlapping instance with `[Char]`.+## hslua-0.7.0 +- Tuples from pairs to octuples have been made instances of+ `FromLuaStack` and `ToLuaStack`.+- New functions `dostring` and `dofile` are provided to load and+ run strings and files in a single step.+- `LuaStatus` was renamed to `Status`, the *Lua* prefix was+ removed from its type constructors.+- The constructor `ErrFile` was added to `Status`. It is+ returned by `loadfile` if the file cannot be read.+- Remove unused FFI bindings and unused types, including all+ functions unsafe to use from within Haskell and the library+ functions added with 0.5.0. Users with special requirements+ should define their own wrappers and raw bindings.+- The module *Foreign.Lua.Api.SafeBindings* was merge into+ *Foreign.Lua.Api.RawBindings*.+- FFI bindings are changed to use newtypes where sensible, most+ notably `StackIndex`, `NumArgs`, and `NumResults`, but also+ the newly introduced newtypes `StatusCode`, `TypeCode`, and+ `LuaBool`.+- Add functions `tointegerx` and `tonumberx` which can be used+ to get and check values from the stack in a single step.+- The signature of `concat` was changed from `Int -> Lua ()` to+ `NumArgs -> Lua ()`.+- The signature of `loadfile` was changed from+ `String -> Lua Int` to `String -> Lua Status`.+- The type `LTYPE` was renamed to `Type`, its constructors were+ renamed to follow the pattern `Type<Typename>`. `LuaRelation`+ was renamed to `RelationalOperator`, the *Lua* prefix was+ removed from its constructors.+- Add function `tolist` to allow getting a generic list from the+ stack without having to worry about the overlapping instance+ with `[Char]`. -### 0.6.0+## hslua-0.6.0 -* Supported Lua Versions now include Lua 5.2 and Lua 5.3. LuaJIT and Lua 5.1- remain supported as well.-* Flag `use-pkgconfig` was added to allow discovery of library and include paths- via pkg-config. Setting a specific Lua version flag now implies `system-lua`.- (Sean Proctor)-* The module was renamed from `Scripting.Lua` to `Foreign.Lua`. The code is now- split over multiple sub-modules. Files processed with hsc2hs are restricted to- Foreign.Lua.Api.-* A `Lua` monad (reader monad over LuaState) is introduced. Functions which took- a LuaState as their first argument are changed into monadic functions within- that monad.-* Error handling has been redesigned completely. A new LuaException was- introduced and is thrown in unexpected situations. Errors in lua which are- leading to a `longjmp` are now caught with the help of additional C wrapper- functions. Those no longer lead to uncontrolled program termination but are- converted into a LuaException.-* `peek` no longer returns `Maybe a` but just `a`. A LuaException is thrown if- an error occurs (i.e. in situtations where Nothing would have been returned- previously).-* The `StackValue` typeclass has been split into `FromLuaStack` and- `ToLuaStack`. Instances not satisfying the law `x == push x *> peek (-1)` have- been dropped.-* Documentation of API functions was improved. Most docstrings have been copied- from the official Lua manual, enriched with proper markup and links, and- changed to properly describe hslua specifics when necessary.-* Example programs have been moved to a separate repository.-* Unused files were removed. (Sean Proctor)+- Supported Lua Versions now include Lua 5.2 and Lua 5.3. LuaJIT+ and Lua 5.1 remain supported as well.+- Flag `use-pkgconfig` was added to allow discovery of library+ and include paths via pkg-config. Setting a specific Lua+ version flag now implies `system-lua`. (Sean Proctor)+- The module was renamed from `Scripting.Lua` to `Foreign.Lua`.+ The code is now split over multiple sub-modules. Files+ processed with hsc2hs are restricted to Foreign.Lua.Api.+- A `Lua` monad (reader monad over LuaState) is introduced.+ Functions which took a LuaState as their first argument are+ changed into monadic functions within that monad.+- Error handling has been redesigned completely. A new+ LuaException was introduced and is thrown in unexpected+ situations. Errors in lua which are leading to a `longjmp` are+ now caught with the help of additional C wrapper functions.+ Those no longer lead to uncontrolled program termination but+ are converted into a LuaException.+- `peek` no longer returns `Maybe a` but just `a`. A+ LuaException is thrown if an error occurs (i.e. in situtations+ where Nothing would have been returned previously).+- The `StackValue` typeclass has been split into `FromLuaStack`+ and `ToLuaStack`. Instances not satisfying the law+ `x == push x *> peek (-1)` have been dropped.+- Documentation of API functions was improved. Most docstrings+ have been copied from the official Lua manual, enriched with+ proper markup and links, and changed to properly describe+ hslua specifics when necessary.+- Example programs have been moved to a separate repository.+- Unused files were removed. (Sean Proctor) -### 0.5.0+## hslua-0.5.0 -* New raw functions for `luaopen_base`, `luaopen_package`, `luaopen_string`,- `luaopen_table`, `luaopen_math`, `luaopen_io`, `luaopen_os`, `luaopen_debug`- and their high-level wrappers (with names `openbase`, `opentable` etc.)- implemented.-* Remove custom versions of `loadfile` and `loadstring`.-* Drop support for GHC versions < 7.8, avoid compiler warnings.-* Ensure no symbols are stripped when linking the bundled lua interpreter.-* Simplify `tostring` function definition. (Sean Proctor)-* Explicitly deprecate `strlen`. (Sean Proctor)-* Add links to lua documentation for functions wrapping the official lua C API.- (Sean Proctor).+- New raw functions for `luaopen_base`, `luaopen_package`,+ `luaopen_string`, `luaopen_table`, `luaopen_math`,+ `luaopen_io`, `luaopen_os`, `luaopen_debug` and their+ high-level wrappers (with names `openbase`, `opentable` etc.)+ implemented.+- Remove custom versions of `loadfile` and `loadstring`.+- Drop support for GHC versions \< 7.8, avoid compiler warnings.+- Ensure no symbols are stripped when linking the bundled lua+ interpreter.+- Simplify `tostring` function definition. (Sean Proctor)+- Explicitly deprecate `strlen`. (Sean Proctor)+- Add links to lua documentation for functions wrapping the+ official lua C API. (Sean Proctor). -### 0.4.1+## hslua-0.4.1 -* Bugfix(#30): `tolist` wasn't popping elements of the list from stack.+- Bugfix(#30): `tolist` wasn’t popping elements of the list from+ stack. -### 0.4.0+## hslua-0.4.0 -* `pushstring` and `tostring` now uses `ByteString` instead of `[Char]`.-* `StackValue [Char]` instance is removed, `StackValue ByteString` is added.-* `StackValue a => StackValue [a]` instance is added. It pushes a Lua array to- the stack. `pushlist`, `islist` and `tolist` functions are added.-* Type errors in Haskell functions now propagated differently. See the- `Scripting.Lua` documentation for detailed explanation. This should fix- segfaults reported several times.-* `lua_error` function is removed, it's never safe to call in Haskell.+- `pushstring` and `tostring` now uses `ByteString` instead of+ `[Char]`.+- `StackValue [Char]` instance is removed,+ `StackValue ByteString` is added.+- `StackValue a => StackValue [a]` instance is added. It pushes+ a Lua array to the stack. `pushlist`, `islist` and `tolist`+ functions are added.+- Type errors in Haskell functions now propagated differently.+ See the `Scripting.Lua` documentation for detailed+ explanation. This should fix segfaults reported several times.+- `lua_error` function is removed, it’s never safe to call in+ Haskell. Related issues and pull requests: #12, #26, #24, #23, #18. -### 0.3.14+## hslua-0.3.14 -* Pkgconf-based setup removed. Cabal is now using `extra-libraries` to link with Lua.-* `luajit` flag is added to link hslua with LuaJIT.+- Pkgconf-based setup removed. Cabal is now using+ `extra-libraries` to link with Lua.+- `luajit` flag is added to link hslua with LuaJIT. -### 0.3.13+## hslua-0.3.13 -* Small bugfix related with GHCi running under Windows.+- Small bugfix related with GHCi running under Windows. -### 0.3.12+## hslua-0.3.12 -* `pushrawhsfunction` and `registerrawhsfunction` functions are added.-* `apicheck` flag is added to Cabal package to enable Lua API checking. (useful for debugging)+- `pushrawhsfunction` and `registerrawhsfunction` functions are+ added.+- `apicheck` flag is added to Cabal package to enable Lua API+ checking. (useful for debugging) -### 0.3.11+## hslua-0.3.11 -* `luaL_ref` and `luaL_unref` functions are added.+- `luaL_ref` and `luaL_unref` functions are added.++ [PVP Versioning]: https://pvp.haskell.org
LICENSE view
@@ -1,7 +1,7 @@ Copyright © 1994-2020 Lua.org, PUC-Rio. Copyright © 2007-2012 Gracjan Polak Copyright © 2012-2015 Ömer Sinan Ağacan-Copyright © 2016-2021 Albert Krewinkel+Copyright © 2016-2022 Albert Krewinkel Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the
hslua.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: hslua-version: 2.0.1+version: 2.1.0 synopsis: Bindings to Lua, an embeddable scripting language description: HsLua provides wrappers and helpers to bridge Haskell and <https://www.lua.org/ Lua>.@@ -18,7 +18,7 @@ maintainer: albert+hslua@zeitkraut.de copyright: © 2007–2012 Gracjan Polak; © 2012–2016 Ömer Sinan Ağacan;- © 2017-2021 Albert Krewinkel+ © 2017-2022 Albert Krewinkel category: Foreign build-type: Simple extra-source-files: README.md@@ -29,8 +29,9 @@ , GHC == 8.4.4 , GHC == 8.6.5 , GHC == 8.8.4- , GHC == 8.10.4+ , GHC == 8.10.7 , GHC == 9.0.1+ , GHC == 9.2.1 source-repository head type: git@@ -42,13 +43,13 @@ , bytestring >= 0.10.2 && < 0.12 , containers >= 0.5.9 && < 0.7 , exceptions >= 0.8 && < 0.11- , hslua-core >= 2.0.0.2 && < 2.1- , hslua-classes >= 2.0 && < 2.1- , hslua-marshalling >= 2.0.1 && < 2.1- , hslua-objectorientation >= 2.0.1 && < 2.1- , hslua-packaging >= 2.0 && < 2.1+ , hslua-core >= 2.1 && < 2.2+ , hslua-classes >= 2.1 && < 2.2+ , hslua-marshalling >= 2.1 && < 2.2+ , hslua-objectorientation >= 2.1 && < 2.2+ , hslua-packaging >= 2.1 && < 2.2 , mtl >= 2.2 && < 2.3- , text >= 1.0 && < 1.3+ , text >= 1.2 && < 2.1 ghc-options: -Wall -Wincomplete-record-updates -Wnoncanonical-monad-instances
src/HsLua.hs view
@@ -2,7 +2,7 @@ Module : HsLua Copyright : © 2007–2012 Gracjan Polak; © 2012–2016 Ömer Sinan Ağacan;- © 2017-2021 Albert Krewinkel+ © 2017-2022 Albert Krewinkel License : MIT Maintainer : Albert Krewinkel <tarleb+hslua@zeitkraut.de> Stability : beta@@ -39,8 +39,7 @@ import HsLua.Core import HsLua.Class.Exposable import HsLua.Class.Invokable-import HsLua.Class.Peekable hiding ( PeekError, reportValueOnFailure- , peekList, peekKeyValuePairs)+import HsLua.Class.Peekable import HsLua.Class.Pushable hiding (pushList) import HsLua.Class.Util import HsLua.Packaging
src/HsLua/Util.hs view
@@ -2,7 +2,7 @@ Module : HsLua.Util Copyright : © 2007–2012 Gracjan Polak; © 2012–2016 Ömer Sinan Ağacan;- © 2017-2021 Albert Krewinkel+ © 2017-2022 Albert Krewinkel License : MIT Maintainer : Albert Krewinkel <tarleb+hslua@zeitkraut.de> Stability : beta
test/HsLua/UtilTests.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE OverloadedStrings #-} {-| Module : HsLua.UtilTests-Copyright : © 2017-2021 Albert Krewinkel+Copyright : © 2017-2022 Albert Krewinkel License : MIT Maintainer : Albert Krewinkel <tarleb+hslua@zeitkraut.de>
test/HsLuaTests.hs view
@@ -3,7 +3,7 @@ {-# LANGUAGE TypeApplications #-} {-| Module : HsLua.Packaging.Module-Copyright : © 2019-2021 Albert Krewinkel+Copyright : © 2019-2022 Albert Krewinkel License : MIT Maintainer : Albert Krewinkel <albert+hslua@zeitkraut.de> Stability : alpha
test/test-hslua.hs view
@@ -1,6 +1,6 @@ {-| Module : Main-Copyright : © 2017-2021 Albert Krewinkel+Copyright : © 2017-2022 Albert Krewinkel License : MIT Maintainer : Albert Krewinkel <tarleb+hslua@zeitkraut.de>