Skip to content

Releases: Tencent/puerts

Unreal_v1.0.2

08 Sep 04:42
Compare
Choose a tag to compare

mac下如果遇到移入废纸篓问题,请

cd Plugins/Puerts/ThirdParty
find . -name "*.dylib" | xargs sudo xattr -r -d com.apple.quarantine 

新增特性

  • 手机nodejs后端支持

  • 静态绑定支持bound array( 例如:int ba[10])字段,支持void *

  • 静态绑定支持仅声明无定义类的注册

  • 静态绑定支持“重载+默认参数”

  • 静态绑定增加对script type的const T*的支持

  • const char*支持通过ArrayBuffer传递

  • 自创建的JsEnv也能支持代码热刷新

  • 支持std::function的函数签名声明生成

  • 静态绑定添加ExtensionMethod(类似C#)的支持

  • 静态绑定添加TSharedPtr的支持

  • nodejs版本支持代码热刷新

  • 静态绑定支持运行时获取typeid

优化

  • 编辑器下虚拟机重置时,大量对象需要加载js脚本而导致启动速度慢的问题

  • 通过对BackingStore封装,支持编辑器下的结构体gc优化

  • JsEnv.Start统一改为通过require来加载,让初始脚本和其它脚本一致(debug、热刷新等)

  • 增量生成蓝图的ue.d.ts声明,解决业务连带资源过多,导致生成太慢的问题

变更

bug修复

  • 解决开启ThreadSafe选项后,由ts触发ue gc可能会导致死锁的问题

  • 解决将std map替换成tmap后( b823ab9 ),tmap可能会因为插入操作而导致外部查找结果失效的问题

  • 解决release编译,由于同签名函数的CFunctionInfoImpl合并成一个导致生成d.ts的默认值个数不对的问题

  • 修复符合继承类格式,但是继承的不是UE类型而是ts原生类型时导致的报错

  • 稳定性增强,对FV8Utils::GetUObject返回的对象增加无效指针判断

  • previewworld下找不到jsobject的报错

  • 解决UE静态绑定使用了cpp模块里头的类型作为字段,ue.d.ts报错的问题

  • 静态绑定的静态属性生成ue.d.ts时崩溃的问题

  • SignatureFunction所在内存被重用,导致FFunctionTranslator访问无效UFunction导致崩溃

  • 修复DynamicInvoker被多线程访问导致的问题

  • 解决容器(或者其它非POD UStruct)引用参数用$ref(undefined)传递时、内存泄漏的问题

  • 解压容器反射因为字节对齐问题导致的崩溃

  • 解决mixin特性在非运行状态使用,如果编辑器触发保存会触发蓝图非法断言的问题

安装包使用说明

  • puerts_v8.tgz: v8版本,适用于ue4.25及以上版本

  • puerts_v8_for_ue424_or_below.tgz,v8版本,适用于ue4.24及以下版本

  • puerts_nodejs.tgz:nodejs版本

  • puerts_quickjs.tgz:quickjs版本

Unity_v1.3.8,ApiLevel:16

31 Aug 10:31
Compare
Choose a tag to compare

中文版本请查看 doc/unity/zhcn/changelog.md

  1. fix: didn't check NativeObject's type when setting fields. #954
  2. fix: easy to cause task.GetAwaiter(...).OnCompleted is not a function error in Unity's Ilcpp mode #966
  3. optimize: the memory usage for JSObject #947
  4. optimize: disable setting constructor's BindingMode to Lazy
  5. optimize: disable reflect extension feature in Editor's Playmode

difference between Node.js/Quickjs/V8: wiki

Unity_v1.3.7,ApiLevel:16

28 Jul 12:56
Compare
Choose a tag to compare

中文版本请查看 doc/unity/changelog.md

  1. disable generic wrapper by default in 1.3 #937 #918
  2. fix: arguments number mismatch when generating BlittableCopy #938
  3. fix: MJSImporter will cause warning in 2018
  4. fix: #912

difference between Node.js/Quickjs/V8: wiki

Unity_v1.4.0-preview.6,ApiLevel:17

25 Jul 13:21
Compare
Choose a tag to compare
Pre-release

中文版本请查看 doc/unity/zhcn/changelog.md

  1. support multi inspector client
  2. fix the inspector crash problem in unity2021.3.4+
  3. fix #708
  4. disable generic wrapper in unity2018-

difference between Node.js/Quickjs/V8: wiki

Unity_v1.4.0-preview.5,ApiLevel:17

15 Jul 02:38
1378ab6
Compare
Choose a tag to compare
Pre-release

中文版本请查看 doc/unity/zhcn/changelog.md

  1. downgrade the v8 to 8.4 in android、ios building. to avoid #908
  2. fix #907

difference between Node.js/Quickjs/V8: wiki

Unity_v1.3.6,ApiLevel:16

13 Jul 04:35
Compare
Choose a tag to compare

中文版本请查看 doc/unity/changelog.md

  1. fix: UnityMenu.cs code bug fix.
  2. fix: thrown error when generating generic type with constrained generic argument.

difference between Node.js/Quickjs/V8: wiki

Unity_v1.3.5,ApiLevel:16

06 Jul 12:13
Compare
Choose a tag to compare

中文版本请查看 doc/unity/changelog.md

  1. fix: duplicated key error during generating: #657
  2. fix: cannot $generic a Type with Enum #856
  3. fix: did not filter the pointer type in delegate during generating: #857
  4. fix: in the d.ts, the return type of an interface's extension method would be wrong: #857
  5. fix: do not generate extension method for enum #857
  6. fix: some order of parameters with ArrayBuffer will throw an Error. #853
  7. feature: support invoking generic method without constraint: #819
  8. feature: the wrapper file of a generic type can now combine into one single file. #816
  9. feature: TypedValue can now pass to the argument of the corresponding type. #833
  10. optimize: add a reusable Github action for downloading JS backend artifact.
  11. optimize: can download the backend file by a URL in action.

difference between Node.js/Quickjs/V8: wiki

Unreal_v1.0.1

30 Jun 02:14
Compare
Choose a tag to compare

mac下如果遇到移入废纸篓问题,请

cd Plugins/Puerts/ThirdParty
find . -name "*.dylib" | xargs sudo xattr -r -d com.apple.quarantine 

新增特性

  • 多线程安全

  • 蓝图mixin功能

  • 支持UE本地化工作流

  • 原生类型强校验

  • 静态绑定支持默认值

  • 静态绑定支持静态变量

  • 静态绑定支持const char*、const TCHAR*参数

  • 静态绑定支持数组类型及std::string的指针,映射到ts的$Ref

  • 静态绑定引用类型的性能优化

  • UE5.0正式版的支持

  • 添加blueprint.load,blueprint.unload,blueprint.tojs

  • 嵌套结构体(第一个字段嵌套)性能优化

  • 添加gc相关接口:IdleNotificationDeadline、RequestMinorGarbageCollectionForTesting、RequestFullGarbageCollectionForTesting

  • 添加FName的ArrayBuffer表达支持,可优化字符串字面值FName的传输

  • enum添加支持反向映射

  • ts生成的蓝图的路径改为可以通过宏来修改

  • 内部优化:关键路径std::map -> TMap

  • 新增导出DTS时 Ignore Struct、Class 的配置

  • ts_file_versions_info.json的版本号处理优化

  • DefaultJSModuleLoader的一些函数改为虚函数,可被继承和覆盖

  • 把模块的search以及load阶段分开,优化大文件模块会重复读取的问题,某大型项目实测加载性能提升3倍

  • Puerts.Gen增加STRUCT,ENUM,ALL参数

  • 继承ue类支持使用枚举

  • 容器支持GetRef

  • 新增“持有结构体指针时,阻止父节点回收”功能

变更

  • 非编辑器不调用TS的构造函数

  • 原生类型改为强校验

  • 默认对蓝图枚举生成声明

  • ts声明中,UStruct的StaticClass改为StaticStruct,和C++对齐

  • 去掉生成蓝图ts里,参数用TArray的报错

bug修复

  • 解决nodejs版本异步实例化wasm一直没回调的问题

  • 解决ts文件被锁定,编译时死循环的问题

  • 一个文件变更触发整个ts工程读取两遍的性能问题

  • 数字作为name的蓝图枚举,生成的ts声明报错

  • 修复当尝试ts继承一个ustruct的时候,编辑器崩溃的问题

  • 解决静态绑定const UStruct*参数声明生成语法错误的问题

  • nodejs版本打包后,程序退出时崩溃

  • 结构体类型的字段访问的内存泄漏

  • 静态绑定含结构体字段的结构体(比如FBox2d)的首字段的字段访问失败

Unity_v1.4.0-preview.1,ApiLevel:17

10 Jun 14:04
Compare
Choose a tag to compare
Pre-release

中文版本请查看 doc/unity/zhcn/changelog.md

  1. support apple silicon #591
  2. upgrade the default v8 to 9.4,nodejs to 16
  3. make all members become configurable #667
  4. add require('puerts').getLastException to get the Error instance #629
  5. change LC_RPATH setter to support apple silicon

difference between Node.js/Quickjs/V8: wiki

Unity_v1.3.4,ApiLevel:16

18 May 03:12
Compare
Choose a tag to compare

中文版本请查看 doc/unity/changelog.md

  1. the module csharp in d.ts will use export = just like what Node.js did #750
  2. fix: ignored assemblies which path is with Editor when generating extension method #735
  3. add try catch for builtin script running. and will destroy the jsengine when error is thrown.
  4. the Debug build of Plugin will now have the global.gc function.

difference between Node.js/Quickjs/V8: wiki