Re: Is there a list of NYI FastFunc of LuaJIT?

  • From: Mike Pall <mike-1205@xxxxxxxxxx>
  • To: luajit@xxxxxxxxxxxxx
  • Date: Tue, 29 May 2012 18:40:57 +0200

Xavier Wang wrote:
> I'm wondering are there any list of NYI functions or operator in LuaJIT.

For the library functions, you can have a look at the LJLIB*
macros in lib_*.c. If there's no LJLIB_REC(), then the call isn't
JIT-compiled. Even if it's JIT-compiled, some special case may not
be compiled, which you can see by looking for 'nyi' in e.g.
recff_tonumber() in lj_ffrecord.c.

For the operators, you can look for LJ_TRERR_NYIBC in lj_record.c.

The FFI has an extra section, listing the major NYI items:
  http://luajit.org/ext_ffi_semantics.html#status

[
Since I'm totally swamped with work right now, it would be highly
appreciated, if someone got the time to make a table of all
library functions in the LuaJIT wiki and add their JIT compiler
status: yes/no/partial. I'll fill in the gaps, when needed.

BTW: Yes, the wiki supports pretty HTML tables. See the bytecode
page. Alas, I haven't finished reformatting and updating it, yet.
]

> [...] base64 [...]
> so I changed to use ffi, and bit, and something alse, [...]
> after I solved buffer, string.match and all other things, luaJIT
> compiles my code now. and it's 2x faster than C++'s :-)

Actually, going for the FFI would be my first thought to make
base64 fast. String concatenation and string.* won't get even
close, performance-wise. The relatively high abstraction overhead
probably cannot be reduced, even with a lot of effort.

--Mike

Other related posts: