Skip to content

Releases: q66/cffi-lua

0.2.4

Choose a tag to compare

@q66 q66 released this 04 Feb 14:08

This is a bugfix and feature release.

Changes:

  • Lua 5.5 support
  • Change typedef behavior to match LuaJIT
  • Handle __new metamethod correctly
  • Fixed :free() on callbacks
  • Disabled passing unions by value on 32-bit ARM
  • Refactored table initializer support to init structs in arrays
  • A large amount of bug fixes

0.2.3

Choose a tag to compare

@q66 q66 released this 08 Jan 03:52

This is a bugfix release.

Changes:

  • Fixed initialization and sizeof for flexible structs
  • Fixed handling of pointer arithmetic with reference types
  • Fixed handling of references in cffi.copy and other places
  • Reworked module memory management to respect type alignment
  • Added a Clang build with sanitizers (UBSan, ASan, CFI) in CI
    • Fixed issues found by sanitized build
  • Updated CI to Ubuntu 22.04

0.2.2

Choose a tag to compare

@q66 q66 released this 01 Nov 14:58

This is a bugfix release.

Changes:

  • Passing unions by value is now permitted on specific platforms:
    • Windows (x86 and x86_64), MIPS32/64, all 32-bit ARM, PowerPC
  • Initializer fixes in ffi.new
  • Fixed unary metamethods on newer versions of Lua
  • Expanded architecture identifier coverage
  • CI updates
  • Various fixes and cleanups

0.2.1

Choose a tag to compare

@q66 q66 released this 31 Jan 19:15

This is a bugfix release.

Changes:

  • Fixed multidimensional arrays in structs
  • Fixed release builds with NDEBUG
  • CI updates

0.2.0

Choose a tag to compare

@q66 q66 released this 29 Nov 04:05

Changes:

  • No longer using the C++ standard library, exceptions, RTTI and TLS
  • Lower resource utilization, simpler memory management
  • Constant expressions now properly handle errors
  • A large amount of fixes (unhandled cases, LuaJIT FFI compatibility, etc.)
  • Greatly expanded test suite
  • Removed custom test runner (using just Lua)

Requirements:

  • No changes

0.1.1

Choose a tag to compare

@q66 q66 released this 31 Jul 22:18

Changes:

  • Build system enhancements
  • CI enhancements
  • We no longer ship a library/API (except a static library for embedded uses)
  • Initial LuaRocks support (Windows support pending)
  • Added option to disable tests

Requirements:

  • No changes

Library clarification:

By default, you will only get a Lua module now. You can pass -Dstatic=true
to meson to switch the build to a static library; you will then get that
instead of a module. This is intended for systems that don't have Lua module
support - there you will want to link the FFI into the application instead.

It is not possible to build the static library and the module at the same
time, and usually the recommended thing is to build the module.

0.1.0 - Initial release

Choose a tag to compare

@q66 q66 released this 26 Jul 17:05

This is the initial release of the cffi module. It is of beta quality.
See STATUS.md for status and README.md for building and usage.

Production usage is currently not recommended, since the module is not
battle tested. Testing is highly encouraged.

Current requirements:

  • Lua 5.1 - 5.4
  • libffi
  • meson 0.50+, optional pkg-config
  • GCC 7+, Clang 8+ or Visual Studio 2017+ with updates recommended
    • Theoretical minimum is GCC 4.8, Clang 3.4 or any compiler with enough C++14