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
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
Changes:
- Fixed multidimensional arrays in structs
- Fixed release builds with
NDEBUG
- CI updates
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
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.
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.
Requirements:
- Lua 5.1 - 5.4
libffi
meson
0.50+, optionalpkg-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