I wonder about enabling the LuaJIT FFI though. Why is that? A search on the forum didnt' given a single match for the word 'ffi', so I figured I ask. Did you decide to enable it on purpose, and if so, what is this purpose?
The big issue is that the FFI allows you to call external C functions from the standard C library, Windows API (on a Windows computer) and any dynamically linked library that may be laying around. This strikes me as being against the philosophy of Love that I imagine involves keeping the game in a sandbox and allowing it to access the computer and the filesystem only via the APIs provided by Love. It also makes writing malicious Love packages really uncomfortably easy, which means running untrusted Love games is even more unwise than previously.
On the plus side, I think you can access the full OpenGL api and write proper 3d programs now. Didn't try it yet, but since the FFI is there, isn't that now not only allowed but encouraged by Love? Forget the graphics functions and just roll your own display logic?
Here is an example program that calls the C function exit to quit the program. I expect it to work everywhere, but confirmed that it does only on a Linux box.
Code: Select all
local ffi = require 'ffi'
ffi.cdef 'void exit(int)'
function love.draw()
love.graphics.print("Press a key to quit", 50, 50)
end
function love.keypressed()
ffi.C.exit(666)
end
http://luajit.org/ext_ffi.html
Note that I'm not saying I want this to go away completely. I'm just asking why is it enabled by default!