mybios

Results 4 issues of mybios

在使用LuaHelper后,发现内存&性能等方面相对emmylua都有很大提升,我们项目打算全员从emmylua切换到LuaHelper,但由于有数十万行以上存量代码都是以Emmylua标准编写,有一个关键特性需要在LuaHelper中支持,才能比较完美的切换到LuaHelper: 在类的构造过程中,我们通过定义一个table当作类,并调用类的括号(__call),从而得到这个类的实例,这个实例需要支持成员的智能提示,也即需要支持table括号执行后得到table本身。 如下所示: ` local ClassA = {fieldA = 0, fieldB = 1} function ClassA:test1() end function ClassA:test2() end -- 这里希望支持括号执行后得到ClassA,并能智能提示 local instanceA = ClassA() -- 这里在EmmyLua中能提示,在LuaHelper中提示不了 instanceA:test1() ---@class ClassB...

现在生成的代码调用方式分几种: 1、静态方法 2、成员方法 3、属性方法 4、运算符方法 调用方式又分为:虚方法/属性、抽象方法/属性、接口实现方法、new覆盖方法等等 而这些调用,都免不了要通过lua的table hash查找的方式来找到具体的成员,这个过程是可以优化的。 我这边使用过这种方法来优化DLL中导出的所有方法调用: 1、使用一张全局表,来通过顺序数字下标来保存所有需要被调用的方法function 例如: GlobalMethodCache = {UnityEngine.GameObject.AddComponent , UnityEngine.GameObject.GetComponent} 2、在meta.xml中,通过Template对这些方法调用,统一改成下标索引调用,即: local gameObject; gameObject:AddComponent(xxx) gameObject:GetComponent(xxx) 优化成 local GlobalMethodCache; local gameObject; GlobalMethodCache[1](gameObject, xxx) GlobalMethodCache[2](gameObject, xxx)...

在导出UE4或其他引擎逻辑时,会返回一些泛型实例化的类,如TArray/TMap/TSet等,希望emmylua支持这种写法,以便支持TArray这样的类型定义,通过泛型推导后,应该可以把Get返回值类型也推导出来: ` ---@generic T ---@class TArray< T> local TArray = {} ---@param index integer ---@return T function TArray:Get(index)end `

support newest v8 style api. implement Inherit fix some bugs...