LuaJIT 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
LuaJIT 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
LuaJIT 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
LuaJIT 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
LuaJIT 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 MIT/X
开发语言 Lua 查看源码 »
操作系统 Linux
软件类型 开源软件
所属分类 开发工具编译器
开源组织
地区 不详
投 递 者 红薯
适用人群 未知
收录时间 2010-03-05

软件简介

LuaJIT:采用C语言写的Lua的解释器的代码

LuaJIT is a Just-In-Time Compiler for the Lua* programming language.

LuaJIT试图保留Lua的精髓--轻量级,高效和可扩展.
功能
所有的函数缺省会被JIT(即时编译器)编译到本地机器码:
* 没有被使用的函数不会被编译.
* 可以选择性打开和关闭即时编译函数,子函数甚至整个模块.
* 需要解析的函数(译注:即没有被编译的函数)和编译过的函数可以自由的混合使用.
预编译(Ahead-of-time AOT)也是被支持的:
* 一些API函数和命令行选项允许用户全盘控制编译过程
这个即时编译器是可扩展的:
* 优化器是一个外部模块可以附着在编译器流水线上.
* 一些模块提供了关于编译过程的跟踪和调试信息.
* 所以这些功能可以通过命令行参数来激活.

LuaJIT被设计成全兼容Lua 5.1.她接受同样的源代码和/或预编译字节码.她支持所有标准语言语义.特别是:
* 支持所有标准类型,操作符和元方法.
* 隐式类型强制转换(number/string).
* 完全 IEEE-754 语义浮点算法(NaN, +-Inf, +-0, ...).
* 完全支持词法闭包.正确的尾调用不会消耗栈帧(译注:栈空间).
* 异常是精确的.回溯追踪工作的很好.
* 通过CoCo提供协程支持.(译注:一点兼容性问题 )
* 没有改变Lua 5.1的增量垃圾收集器.
* 没有改变标准Lua/C API.
* 动态加载的C模块保持和Lua 5.1一样链接兼容性(同样的ABI 抽象二进制接口).(译注:基本不用重新编译老的Lua模块,但是仍然偶遇兼容性问题).
* LuaJIT可以像Lua那样嵌入到一个应用程序里.
一些次要的不同点和调试有关:
* 调试钩子只在调试代码生成使能时调用
* 在JIT编译过的代码中不支持尾调用计数.HOOKTAILRET 也不会被调用.注意: 除非你写Lua调试器,否则这些对你没有影响.

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (1)

加载中
luajit具体支持Lua 5.1.几?
2020/08/06 10:36
回复
举报
更多评论
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2018/08/04 10:08

LuaJIT 之 FFI

1. FFI 教程 原文: FFI Tutorial 相关链接:OpenResty 最佳实践之 FFI 加载 FFI 库 FFI 库时默认编译进 LuaJIT 中的,但是不会默认加载或初始化。因此,当需要使用 FFI 库时,需要在 Lua 文件的开头添加如下语句: local ffi = require("ffi") 访问标准系统函数 如下示例显示了如何访问标准系统函数。 local ffi = require("ffi") ffi.cdef[[ void Sleep(int ms); int poll(struct pollfd *fds, unsigned long nfds,...

0
0
发表了博客
2019/06/04 14:20

聊聊LuaJIT

JIT 什么是JIT JIT = Just In Time即时编译,是动态编译的一种形式,是一种优化虚拟机运行的技术。 程序运行通常有两种方式,一种是静态编译,一种是动态解释,即时编译混合了这二者。Java和.Net/mono中都使用了这种技术。 然而IOS中禁止使用(不是针对JIT,而是所有的动态编译都不支持)! 为什么要使用JIT 解释执行: 效率低。 代码暴露。 静态编译: 不够灵活,无法热更新。 平台兼容性差。 JIT: 效率:高于解释执行,低于静...

0
0
发表于DevOps专区
2019/06/11 11:53

《Walk On LuaJIT》 (上篇)

作者:Tweyseo 概要:经历了一段时间的打磨,Tweyseo老师在Lua.ren首发了他的新文章《Walk On LuaJIT》。因为微信公众号对群发文章有字数限制,我们把文章分多次发布。 国内关于LuaJIT原创文章不多,深耕细节的更少,Tweyseo老师经过自己的实践与思考完成这篇文章的同时,也将文中的一些关键细节与Openresty团队的老师进行了交流沟通,感谢Openresty团队的各位老师。但同时文章中也留下了难解的伏笔课题。 欢迎读者老师们参考阅...

0
0
2015/06/10 18:40

luaJIT FFI Library

LuaJIT FFI Library The FFI library allows calling external C functions and using C data structures from pure Lua code. The FFI library largely obviates the need to write tedious manual Lua/C bindings in C. No need to learn a separate binding language — it parses plain C declarations! These can be cut-n-pasted from C header files or reference manuals. It's up to the task of binding large libra...

0
0
发表于软件架构专区
2015/06/03 20:20

Building openresty1.7.10.1 with luajit on windows

Building openresty1.7.10.1 with luajit on windows using Cygwin, 在windows下用Cygwin下编译带Luajit的openresty 2013-11-27 15:39 815人阅读 评论(0) 收藏 举报 (heeroz原创 )First install 32bit cygwin. Install packet: openssl zlib-dev pcre gcc-core perl readline openresty没有对Cygwin做兼容,我们需要自己来修改文件 Open bundle\lua-cjson and lua-rds-parser and lua-redis-parser three folder's Makefile ...

0
1
发表了博客
2014/12/14 09:43

安转luajit 和 cjson模块

###安装luajit 从[luajit](http://luajit.org/download.html)下载源码,make && make install 顺利安装 缺省路径安装在/usr/local/ export LUAJIT_LIB=/usr/local/lib export LUAJIT_INC=/usr/local/include/luajit-2.0 # 版本号自行修改 ###安装cjson 从[cjson官网](http://www.kyne.com.au/~mark/software/lua-cjson.php) 下载源码 解压,编辑Makefile ,修改: LUA_INCLUDE_DIR = $(PREFIX)/include/luajit-2.0 $ make cc -c...

0
4
发表了博客
2014/02/14 10:05

luajit日记-配置说明

LuaJIT Running 1.Configuring LuaJIT The standard configuration should work fine for most installations. Usually there is no need to tweak the settings. The following files hold all user-configurable settings:     src/luaconf.h sets some configuration variables.     Makefile has settings for installing LuaJIT (POSIX only).     src/Makefile has ...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2014/03/03 11:48

C++ 、 V8 、 luajit 和 C 关于哈希表的性能测试

测试结果: spion@missperfect:~/Projects/testhash$ gcc -O3 test.c -o testc spion@missperfect:~/Projects/testhash$ time ./testc The 1000000 a 2000000 at 1000000 brown 1000000 dog 1000000 era 1000000 fox 1000000 jumped 1000000 lake 1000000 lazy 1000000 new 1000000 near 1000000 of 1000000 over 1000000 quick 1000000 restaurant 1000000 the 2000000 real 0m0.234s user 0m0.228s sys 0m0.004s sp...

7
3
2019/03/17 11:46

如何在nginx lua环境下执行系统命令?

location /test_lua_gm { default_type 'text/plain'; content_by_lua 'ngx.say("test, lua")'; access_by_lua_block { os.execute("mkdir /src/tt"); } } 以上nginx配置,浏览器显示出了test,lua但是后面的系统命令不能执行,请教如何执行成功的方法,谢谢!!!...

1
0
发表了问答
2016/11/24 14:53

luasql和resty.mysql区别

luasql和resty.mysql区别是什么 resty.mysql库是不是不能使用事务,我在网上搜索lua mysql事务的时候都是使用luasql这个库控制事务。

3
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
1 评论
92 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部