首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
luajit专题
lua, luajit理解
lua, luajit可以 类比成一个c++解释器 torch 类比成一个 c++的包
阅读更多...
LuaJit分析(八)LuaJit预编译库函数加载过程
在luajit的pmain函数中,在执行命令行输入的参数之前,会执行如下函数: luaL_openlibs(L); 该函数位于lib_init.c中,实现如下: LUALIB_API void luaL_openlibs(lua_State *L){const luaL_Reg *lib;for (lib = lj_lib_load; lib->func; lib++) {lua_push
阅读更多...
LuaJit分析(四)luajit 64位与32位字节码区别
对一个lua脚本文件,只有一条语句 print(“hello”, “world”),分别生成字节码文件如下: 32位字节码: 1b4c 4a02 022d 0200 0300 0300 0536 0000 0027 0101 0027 0202 0042 0003 014b 0001 000a 776f 726c 640a 6865 6c6c 6f0a 7072 696e 7400 64位
阅读更多...
LuaJit分析(十)luajit自定义修改
通过分析luajit字节码文件格式可知,luajit文件由文件头和原型数组组成,而原型又包括原型头和原型体,文件头中包含了字节码文件的一些关键信息,目前的反编译工具根据标准的luajit2.0文件格式解析文件,如果对字节码文件的信息自定义,将直接导致反编译过程中出现异常 下面修改luajit字节码的三点并测试:signature标志、STRIP与BE、opcode顺序 修改signature
阅读更多...
LuaJIT源码分析(三)字符串
LuaJIT源码分析(三)字符串 要表示一个字符串,核心就是需要知道字符串的长度,以及存放字符串具体数据的地址。lua的字符串是内化不可变的,也就是lua字符串变量存放的不是字符串的拷贝,而是字符串的引用。那么,每当新建一个字符串时,lua都会去检查当前虚拟机中是否已经存在相同的数据,如果有就可以直接拿来用,没有再进行创建。 为了实现这一机制,lua必然有一个全局的地方存放当前用
阅读更多...
Unity热更新技术学习——Lua,Luajit
文章目录 Lua预编译资源使用 Lualuajit 其他语言关于JITIOS 和 JITIOS 和 jit 的后话 Lua Lua是一门轻量级的脚本语言,使用C语言编写,编译器和解释器也是C语言编写。 下载资源: 源码 http://www.lua.org/ftp/预编译好的Lua库和编译器 http://luabinaries.sourceforge.net/ 预
阅读更多...
Luajit 2023移动版本编译 v2.1.ROLLING
文章顶部有编好的 2.1.ROLLING 2023/08/21版本源码 Android 64 和 iOS 64 luajit 目前最新的源码tag版本为 v2.1.ROLLING on Aug 21, 2023 应该是修正了很多bug, 我是出现下面问题才编的. cocos2dx-lua 游戏 黑屏 并报错: [LUA ERROR] bad light userda
阅读更多...
mac 环境下 LuaJit 执行报错 : unknown luaJIT command or jit.* modules not installed
quick-cocos工程 mac 环境下执行LuaJit 对 lua 打包 zip 出现 : unknown luaJIT command or jit.* modules not installed 原因: quick-cocos中的LuaJit 版本 与 mac 环境 安装的 Luajit 版本不一致. 重装 mac环境的Luajit 为相同版本后解决.
阅读更多...
【LuaJIT版】从零开始在 macOS 上配置 Lua 开发环境
前言 这篇文章针对的是基于 LuaJIT 的环境配置。借助于 LuaJIT,Lua 的执行效率可以进一步提升几十倍。如果你不是很清楚自己是需要 Lua 还是 LuaJIT,那么建议你从 LuaJIT 起步。LuaJIT 对应的是 Lua5.1 的语法,这一点需要注意。 如果你想看基于最新版 Lua 环境的配置文章,请移步:http://yanfeng.life/2017/11/10/Lates
阅读更多...
LuaJIT中唯一的数据结构:table
LuaJit和其他语言不同只有table一种数据结构,它将数组、hash、集合等结构杂糅在一起。 接下来我们将举例来说明一下table数据结构的特点: ipairs函数遍历数组部分的内容 ./resty -e 'local color ={first="red","blue",third="green","yellow"} for k,v in ipairs(color) do print
阅读更多...
linux环境下编译,安卓平台使用的luajit库
一、下载luajit源码 1、linux下直接下载: a、使用curl下载:https://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz b、git下载地址;https://github.com/LuaJIT/LuaJIT.git 2、Windows下载好zip文件,下载地址:https://github.com
阅读更多...
linux环境下编译,安卓平台使用的luajit库
一、下载luajit源码 1、linux下直接下载: a、使用curl下载:https://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz b、git下载地址;https://github.com/LuaJIT/LuaJIT.git 2、Windows下载好zip文件,下载地址:https://github.com
阅读更多...
LuaJIT编写的解析十六进制数据
以下是使用LuaJIT编写的解析十六进制数据并将uint16转换为JSON的示例代码: local ffi = require("ffi")local bit = require("bit")local cjson = require("cjson")-- 定义结构体ffi.cdef[[typedef struct {uint16_t value;} uint16_t_struct;]]
阅读更多...
LuaJit交叉编译移植到ARM Linux
简述 Lua与LuaJit的主要区别在于LuaJIT是基于JIT(Just-In-Time)技术开发的,可以实现动态编译和执行代码,从而提高了程序的运行效率。而Lua是基于解释器技术开发的,不能像LuaJIT那样进行代码的即时编译和执行。因此,在运行速度方面,LuaJIT要比Lua快得多。此外,LuaJIT还支持更多的操作系统和处理器架构,具有更广泛的适用性。但是,由于它引入了JIT技术,其实
阅读更多...
luajit简介
LuaJIT是一种高效的Lua解释器,其通过即时编译技术将Lua代码转换为机器代码,从而提供了非常快速的执行速度。在本文中,我们将介绍LuaJIT的原理、使用方法以及在嵌入式Linux系统中的应用示例。 LuaJIT的原理 LuaJIT基于Lua 5.1实现,采用JIT(Just-In-Time)技术,可以将Lua程序编译成本地机器指令,从而加速程序的执行速度。在执行过程中,LuaJIT会记录
阅读更多...
Unity 一键打包工具(Addressables、LuaJit编译)
前几天由于项目需要,做了这个一键打包工具,主要是方便策划人员打包 优化的地方也有,但是嘛,工具这个东西,策划用作说行就行是吧,不影响效率就行了 luaJit非我所在项目,这里只是顺便一起写了, 如果项目使用了,Google、FaceBook、GA、Lua,请在项目设置中加入以下宏 UNITY_GOOGLE、UNITY_FACEBOOK、UNITY_GA、UNITY_LUA 我的项目资源
阅读更多...