Lua runtime code reading Lua运行期源代码分析阅读

http://sunxiunan.com/?p=1477

 

 

image  

You could download the project for VC2008 in http://groups.google.com/group/lua5/web/lua_vc2008.rar

The project will use parameter like "c:\test.lua", and the lua script like above image.

The code starting point is pmain().

 

image

lua parser will parse the code file, and use LexState *ls to store the information.

image

image

After the binary code generating, opcodes will run in function luaV_execute().

image

image

for the code in standard library (c function), it will be called in function luaD_precall().

image

新学期领福利!购实物周边送年卡会员! T恤、键盘、双肩包等周边任选!还能解锁资源下载、VIP文章等多重会员权益! 阅读详情

相关推荐

python中嵌入lua解析器

一、引言上一周应该某个特殊需求。需要在服务器端搭建一个lua执行环境。lua本身又是嵌入语言。在语言本身上又一定的局限性。所以我打算把lua嵌入到python/java中。做调研的时候,java的嵌入较为麻烦,出现了各种问题。后来确定用python来作这个环境。这样能用上python 的协程、多线程。这里说说python中嵌入lua的问题。二、环境建立python中又一个扩展叫lupa。这个扩展用于

林湾村龙猫 6619

此源码为魔兽世界3.3.5a的模拟器源码,AzerothCore,是目前3.3.5完善度最高,修复程度最好的模拟器源码

此源码为魔兽世界3.3.5a的模拟器源码,AzerothCore(艾泽拉斯核心),是目前3.3.5完善度最高,修复程度最好的模拟器源码。此源码基于SunWell(太阳之井)源码项目的核心升级和更新,并添加了独特的模块化系统,使开发者开发功能变得简单和快捷

lua 源码鉴赏 readinglua 云风.zip

云风此人,我从未见过,但是游戏界,他的传闻还是很多的,这个是他对于lua这个脚本语言的一个原理分析,我受益良多。

绑定自定义类到RuntimeLua-binding)

现在我们的需求是:在C++层定义了一些类,我们需要将这些类导出给Lua来使用,从而完成在C++层实现起来容易的需要,这个时候就需要将整个类作为模块导出。而Cocos2d-x正是采用的这种思想,将Cocos中的类导出供用户使用,而不是再写一套Lua代码,用户使用Cocos导出的这套接口,在Lua脚本层写游戏代码。 为了更好的理解这部分的内容,可以先看一下《在Lua中调用C++函数》这篇文章,了

wkyb608的专栏 976

读书笔记《Lua设计与实现》 了解Lua底层

  孙广东  2017.10.8 http://blog.csdn.NET/u010019717   十一抽时间看了这本书。           还记得第一次接触Lua 是在2014年7月份, 当时还是在长春实习(Cocos Lua), 接触了一个多月就来北京开始了Unity   我是很喜欢看纸质书的,不太喜欢看电子书。 作者说这是第一本揭示Lua实现原理的图书。   这个历史就不...

游戏路上的小学生 1万+

TrinityCore & SUNWELL & azerothcore 3.3.5环境搭建

面来看看怎么搭建TrinityCore的运行环境,网上可以搜到TrinityCore的一键安装,但是我们的目的是为了学习TrinityCore的代码,所以我们会自己编译server端 Git-2.19.0-64-bit 提取码:lnsk cmake-3.12.2-win64-x64 提取码:xatx GitExtensions-2.51-SetupComplete 提取码:g9am vs2...

Whitehat666 4940

推荐开源项目:LuaRuntimeHotfix - 实时热修复你的 Lua 运行环境

推荐开源项目:LuaRuntimeHotfix - 实时热修复你的 Lua 运行环境 项目简介 是一个专为 Lua 开发者设计的实时热修复框架。它允许开发者在游戏或应用运行过程中,无须重启即可更新和修复 Lua 脚本,极大地提升了开发效率和用户体验。 技术分析 1. 基于字节码的动态加载 LuaRuntimeHotfix 利用了 Lua 的字节码特性,可以在运行时动态地加载和执行新的 Lua 代码...

gitblog_00043的博客 593

GPT Academic 全解:多模型接入、模块化插件与三种部署方式的技术指南

本文基于仓库中 [docs/README.Korean.md](https://link.gitcode.com/i/de95e62f4235f1241fb5708b7774e4ed)(该项目 README 的韩文版)展开,系统讲解 GPT Academic 这个"为 GPT/GLM 等大语言模型提供实用化交互接口"的开源项目:包括其完整功能版图、三种安装部署方式、`环境变量 > config_p

gitblog_00673的博客 506

Java秋招八股之王——拿不到大厂Offer来找我(全文14w字,持续更新)

如果你需要一套八股文,想要一套八股文解决秋招的大部分问题,来看看这篇文章吧~内容包含数据结构、计算机网络、数据库、Redis、消息队列、JavaSE、JVM、JUC、海量数据题目、高并发场景、项目的亮点难点、ssm框架、dubbo框架等等。这是我整个秋招不停面试的总结和反思,最后也是靠它拿到了菜鸟的offer,希望会对后面秋招的朋友起到一些帮助。

qq_40460454的博客 1262

Go语言基础

一、Go基础 标识符: ​ go语言中的标识符由字母数字和下划线(_)组成,并且只能以字母和下划线(_)开头 关键字: ​ 关键字是指编程语言中预先定义好的具有特殊含义的标识符。关键字和保留字都不建议用作变量名。 Go语言有25个关键字: 关键字 break default func interface select case defer go map struct chan else goto package switch const fallthrough if

有用的话关个注,点个赞,收个藏🫶。 1883

Lua运行时热重载功能实现①】检测Lua文件发生变化

这几天由于项目组需要一直在琢磨一个功能,就是如何在unity编辑器下不需要重启游戏就能让lua文件改动后立刻生效。如果能够实现这个功能,那会大幅提高开发效率。查了一圈,网上的结果都不太满意,要么只有理论没有源码,要么有源码但是考虑的情况过于简单。所以自己打算写博客告诉大家,我是怎么实现的,并且提供完整源码。github工程地址 使用的unity2019.3.0 + xlua。改成其他lua也是可以用,只要在传入luaEnv的时候做相应改动就可以了。 这个功能大体分为两大步: 检测哪些lua文件发生变化

水鸡的游戏开发学习笔记 2798

tolua_runtime:跨平台Lua运行时环境的强大工具

tolua_runtime:跨平台Lua运行时环境的强大工具 项目介绍 tolua_runtime 是一个专为跨平台应用设计的Lua运行时环境,旨在为开发者提供一个高效、灵活且易于集成的解决方案。无论你是开发桌面应用、移动应用,还是游戏,tolua_runtime 都能帮助你轻松地将Lua脚本集成到你的项目中,实现动态代码执行和快速迭代。 项目技术分析 跨平台支持 tolua_runtime 提供...

gitblog_00025的博客 570

Sunwell-TBC-Bugtracker

报告的名称应能一眼识别问题。您必须在方括号(raid,class等)中写出什么问题。例如:[Warrior]剑刃风暴,[Ulduar-Thorim]造成太多伤害,[Warsong Gulch]错误的旗帜重生计时器。 必须彻底描述每个错误。仅仅“ Quest X不起作用”是远远不够的。您必须写出确切发生的情况以及应该发生的情况。 应使用以下模式报告每个错误: 说明:工作原理:应该如何工作: 为了更快地修复问题,您应该在“重现步骤”下编写重现上述错误的步骤。 “其他信息”部分应包含每个咒语,物品,游戏对象等的ID。您需要通过以下链接添加它们: : 。此外,您应该在此处显示证据表明这确实是一个错误,而不是预期的操作。 每个报告都必须放在正确的类别中。 “已导出”类别适用于从我们先前的BugTracker导出的错误,您没有使用过。 不符合上述要求的报告可以不做进一步调查而关闭。

魔兽335模拟器源代码

魔兽模拟器源码SunwellCore,添加很多自定义功能 xy_item_teleport:功能宝石 xy_npc_trainer:综合训练师 xy_npc_teleport:传送大师 xy_doc:物品信息发布 xy_jcsr:集成商人 xy_itemup:物品强化宝石 xy_Vip_system:会员开通NPC xy_pay_reward:充值返利领取NPC xy_online_reward:每日在线奖励领取NPC item_repution_up:声望提示物品 npc_guildBattle:公会战管理员 npc_guildBattle_tele:公会战比赛场地传送员 等等...

c++魔兽游戏里踢人源代码

魔兽游戏里踢人我们HOOK发送函数。如果我们和某个玩家私聊,假设输入7720668,那么肯定可以在pBuffer中搜索到这个字符串,然后我们关闭相应的socket即可实现T人了。 (这里也说明了:只有主机才可以T人。因为通过伪造TCP,SYN,ACK数据包来实现,几乎不可能) (魔兽世界游戏踢我们HOOK发送功能。如果我们耳语一个玩家,假设输入7,720,668,然后肯定在pBuffer中搜索到这个字符串,然后我们关闭套接字来实现相应的T人。(这也解释了:T只能托管一个,因为通过伪造TCP,SYN,ACK包来实现,差不多不可能))

sunwell

sunwell

推荐开源项目:tolua_runtime - 动态链接LuaC++的强大力量

推荐开源项目:tolua_runtime - 动态链接LuaC++的强大力量 1、项目介绍 tolua_runtime 是一个精心设计的开源项目,它提供了一种高效的方式,让你可以在C++Lua之间无缝地进行交互。利用这个库,开发者可以充分利用Lua的脚本语言特性,轻松实现游戏逻辑,服务端业务规则或是在任何需要动态扩展的C++应用中添加功能。 该项目支持多个平台,包括Windows(32位&am...

gitblog_00059的博客 502

openwow-to-sunwelldb:用户脚本修复了旧的openwow数据库链接到sunwelldb

向Sunwelldb开放 用户脚本修复了旧的openwow数据库链接到sunwelldb 要与Violentmonkey,Tampermonkey或Greasemonkey一起使用,应在chrome,firefox和任何其他本机或通过扩展支持用户脚本的浏览器上运行。

readinglua.pdf

readinglua Lua 源码欣赏

上一篇: Google的Go编程语言使用初探
下一篇: Change Ugly code in our project
book_sunwell
博客等级 码龄20年 0粉丝 15原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值