皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

xLua 2.1.13 发布,腾讯开源的手游热更新解决方案

新增特性

  1. 新增 AdaptByDelegate 注入模式;
  2. 新增 xlua.get_generic_method,用于调用泛型函数;
  3. 支持类似 CS.System.Collections.Generic.List(CS.System.Int32) 的泛型写法;
  4. 注入新选项:忽略编译器自动生成代码,以及不生成 base 代理;
  5. 针对 lua 编程以及热补丁,均添加直接可用的自动化配置样例;
  6. 新增 luajit 的 gc64 支持;
  7. 加入兼容字节码(一份字节码支持 32 位和 64 位系统)的支持;
  8. 内置新 lua 内存泄漏检测工具;
  9. delegate 桥接动态实例化:delegate 是 4 个参数以内,参数均引用类型,无返回值或者返回引用类型,不用配置 CSharpCallLua 也能调用 lua 函数;
  10. 提供 util.print_func_ref_by_csharp 函数,用于查看当前被 C#引用的 lua 函数;
  11. 支持无 CS 全局变量的工作方式;

变更

  1. 虚拟机升级:lua5.3.4 -> lua5.3.5,luajit2.1b2 -> luajit2.1b3;
  2. delegate bridge 代码段占用优化;
  3. 改为 PostProcessBuild 事件检查是否生成代码;
  4. 适配 xcode 10:osx 平台不再支持 32bit 版本构建;
  5. 名字空间、类名拼写错误时,对静态成员的设置会报错;
  6. 防止 CS 全局 table 被删除导致 xlua 工作异常;
  7. Windows 下构建 lib,若使用 vs 2015 参数执行 cmake 失败,则继续尝试使用 vs 2017;
  8. 编辑器下不生成代码时,也检查 Blacklist,维持和运行时一致;

bug 修复

  1. 泛型的数组生成代码报错;
  2. 防止对 TypeExtensions 配置了 LuaCallCSharp 后,lua 里头 IsValueType 之类的判断永真;
  3. 生成代码过滤掉含指针的函数和字段;
  4. 适应索引器属性名不是 Item 的情况;
  5. 解决 attribute 初始化异常会导致生成代码,注入终止的问题;
  6. 精简模式下空 Enum 生成代码错误;
  7. 通过把初始化函数分割成小函数,规避 unity 在 android 下执行大函数 crash 的 bug;
  8. Assignable 处理 obj 为 null 情况;
  9. 内嵌类不 Obsolete,但外层类 Obsolete 的生成代码报错
  10. 解决 inline 注入方式下,如果 lua 逻辑跑异常,看不到异常信息的问题;
  11. 修复 xlua.private_accessible 访问后,同名 public 的方法无法访问的 Bug;
  12. [Out] 修饰的参数不应该生成 out 关键字;
  13. 通过反射查找合适的适配器时,有可能访问到非适配器函数;
  14. 精简模式导出代码无 get_Item、set_Item;
  15. IntKey 方式下不自动 xlua.private_accessible 的问题;

下载地址:

转自 https://www.oschina.net/news/102431/xlua–2-1-13-released

分享到:更多 ()