Lua热更新(hotfix)

(金庆的专栏)

hotfix
Lua 5.2/5.3 hotfix. Hot update functions and keep old data.
https://github.com/jinq0123/hotfix

hotfix 实现了Lua热更新,仅对函数作替换,保留旧数据。

例如 test.lua:
local M = {}
local a = "old"
function M.get_a() return a end
return M

更新到
local M = {}
local a = "new"
function M.get_a() return a .. "_x" end
return M

运行
local hotfix = require("hotfix")
local test = hotfix.hotfix_module("test")
test.get_a()  -- "old_x"

数据 a 作为函数的upvalue得到了保留,但是函数得到了更新。

可查看 test/main.lua 中的测试用例。

运行测试:
E:\Git\Lua\hotfix\test>d:\Tools\lua\lua53.exe
Lua 5.3.2  Copyright (C) 1994-2015 Lua.org, PUC-Rio
> require("main").run()
Test OK!
>

最新文章

  1. java中动态代理实现机制
  2. JavaScript:substr vs substring vs slice
  3. Html5的一些引擎使用感触
  4. dba诊断之lock
  5. EF中使用SQL语句或存储过程
  6. vs10创建sqlclr部署失败
  7. Go语言基础知识
  8. Java程序CPU使用率过高
  9. CSS——background-size实现图片自适应
  10. Java设计模式学习记录-装饰模式
  11. CSS属性书写顺序及命名规则
  12. 探索ORM ————iBati(一)
  13. 远程binlog
  14. Generics Variance
  15. PreviewMouseLeftButtonDown 与 MouseLeftButtonDown
  16. python面试题包含基础和Linux操作以及数据库相关
  17. querySelector()与querySelectorAll()的区别及NodeList和HTMLCollection对象的区别
  18. Python 正则表达式取值
  19. Android_Fragment_Fragment详解
  20. java基础—多态(动态加载)

热门文章

  1. [LeetCode] Reverse String II 翻转字符串之二
  2. spring copy中的一个很气人的问题(初学者渣渣的一些感受)
  3. tkinter 创建登陆注册界面
  4. [POI 2007]ZAP-Queries
  5. [Luogu 1284]三角形牧场
  6. [HNOI2008]明明的烦恼
  7. [SHOI2014]概率充电器
  8. C++Primer学习——类型转换
  9. NOIP2014-5-24模拟赛
  10. UVA 1146 Now or later