Re: LuaJIT - an alternative for current Python C bindings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/15/2012 07:44 PM, Alek Paunov wrote:

LuaJIT is currently not available for our secondary architectures, so
this would need fixing first.  ("not available" meaning exactly that,
there is no fallback to a slow C interpreter mode or something like
that.)


Oh, I completely forgot the secondary architectures (besides ARM).
Florian, you follow LuaJIT - what other architectures (except the
clearly missing s390) should be covered ?.

ppc64 isn't supported, either.

I am commenting on the possibility for deploying LuaJIT FFI as a partial
replacement (problematic + future) of the hand written or SWIG Python
bindings in the first place, not switching the system language from
Python to Lua. In a system tool/daemon written in Python:

  * Python loads libluajit.so (import lupa; from lupa import LuaRuntime;
...)

And this will reduce memory overhead? I doubt it. Every C object will be wrapped in a high-level Python object, a low-level Python object (provided by lupa), a Lua registry slot (used by lupa), and an FFI wrapper (provided by LuaJIT). Correctness requires that the GIL (or some other lock) is held while C functions are called through the FFI because LuaJIT is not reentrant.

There are some open issues, too. LuaJIT hasn't yet found a way to handle C preprocessor defines (which are often used to provide constants). There is not attempt at all to deal with conflicting declarations. If two modules need definitions for time_t or struct timespec, one of them will fail with an "attempt to redefine" error.

(Don't get me wrong, LuaJIT is a great piece of work.)

--
Florian Weimer / Red Hat Product Security Team
--
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux