hslua: A Lua language interpreter embedding in Haskell

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain]

The Foreign.Lua module is a wrapper of Lua language interpreter as described on lua.org.

This package contains a full Lua interpreter version 5.3.4. If you want to link it with a system-wide Lua installation, use the system-lua flag.

Example programs are available in a separate repository.


[Skip to ReadMe]

Properties

Versions0.1, 0.2, 0.3, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.6.1, 0.3.7, 0.3.8, 0.3.9, 0.3.10, 0.3.11, 0.3.12, 0.3.13, 0.4.0, 0.4.1, 0.5.0, 0.6.0, 0.7.0, 0.7.1, 0.8.0, 0.9.0, 0.9.1, 0.9.2, 0.9.2, 0.9.3, 0.9.4, 0.9.5, 0.9.5.1, 0.9.5.2, 1.0.0, 1.0.1
Change logCHANGELOG.md
Dependenciesbase (>=4.7 && <5), bytestring (>=0.10.2 && <0.11), containers (==0.5.*), exceptions (==0.8.*), fail (>=4.9 && <5), mtl (==2.2.*), text [details]
LicenseMIT
Copyright© 2007–2012 Gracjan Polak © 2012–2016 Ömer Sinan Ağacan © 2016–2017 Albert Krewinkel
AuthorGracjan Polak, Ömer Sinan Ağacan
Maintaineralbert+hslua@zeitkraut.de
CategoryForeign
Source repositoryhead: git clone https://github.com/hslua/hslua.git
UploadedSun Oct 22 20:59:40 UTC 2017 by tarleb

Modules

[Index]

Flags

NameDescriptionDefaultType
system-lua

Use the system-wide Lua instead of the bundled copy.

DisabledAutomatic
apicheck

Compile Lua with -DLUA_USE_APICHECK.

DisabledAutomatic
lua_32bits

Compile Lua with -DLUA_32BITS

DisabledAutomatic
allow-unsafe-gc

Allow optimizations which make Lua's garbage collection potentially unsafe; haskell finalizers must be handled with extreme care.

EnabledAutomatic
export-dynamic

Add all symbols to dynamic symbol table; disabling this will make it possible to create fully static binaries, but renders loading of dynamic C libraries impossible.

EnabledAutomatic
luajit

Link with LuaJIT. This implies flag system-lua as well.

DisabledAutomatic
lua501

Build against lua 5.1.

DisabledAutomatic
lua502

Build against lua 5.2.

DisabledAutomatic
use-pkgconfig

Build using pkg-config to discover library and include paths. This is only used with system-lua and luajit.

DisabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainers' corner

For package maintainers and hackage trustees


Readme for hslua-0.9.2

[back to package description]

hslua – Lua interpreter interface for Haskell

Build Status AppVeyor Status Coverage Status Hackage

Hslua provides bindings, wrappers, types, and helper functions to bridge haskell and lua.

Build flags

The following cabal build flags are supported:

Example: using a different lua version

To use a system-wide installed Lua/LuaJIT when linking hslua as a dependency, build/install your package using --constraint="hslua +system-lua" or for LuaJIT: --constraint="hslua +luajit". For example, you can install Pandoc with hslua that uses system-wide LuaJIT like this:

cabal install pandoc --constraint="hslua +system-lua +luajit"

or with stack:

stack install pandoc --flag=hslua:luajit

FAQ

Where are the coroutine related functions? Yielding from a coroutine works via longjmp, which plays very badly with Haskell's RTS. Tests to get coroutines working with HsLua were unsuccessful. No coroutine related functions are exported from the default module for that reason. However, raw bindings to the C API functions are still provided in Foreign.Lua.RawBindings. If you get coroutines to work, or just believe that there should be wrapper functions for other reasons, we'd love to hear from you.

Why are there no predefined stack instances for default numerical types? HsLua defines instances for the FromLuaStack and ToLuaStack type-classes only if the following law holds: return x == push x *> peek x. Lua can be compiled with customized number types, making it impossible to verify the correctness of the above equation. Furthermore, instances for numerical types can be based on those of LuaInteger and LuaNumber and are easy to write. Therefor hslua doesn't provide any such instances.