Skip to content

Releases: Tencent/puerts

Unreal_v1.0.6p1

16 Jan 07:19
Compare
Choose a tag to compare

针对v1.0.6的修复

5.3报GenericPlatformProcess.h的错误请合入:f35a847

v1.0.6p1 2024年1月16日

bug修复

  • 待结束的timer回调中设置的timer不生效的问题

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

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

Unreal_v1.0.6

11 Jan 08:28
Compare
Choose a tag to compare

!请使用p1版本

v1.0.6 2024年1月11日

新增特性

  • 支持通过赋值去清空一个JsObject

  • 添加UsingCrossModuleCppType,能避免不同模块引用同一个类typeid不同的问题

  • 静态绑定支持在原生函数中跑异常,有两种实现,线程本地存储以及异常,前者有侵入性,后者不能跨动态库使用

  • 容器添加[Symbol.iterator]支持

  • puerts::Object尝试添加SetWeakAndOwnBy方法,用于某种场景下避免循环引用

  • 静态绑定新增MethodProxy,PropertyProxy,用于解决多重继承virtual public静态绑定,子类对象调用父类方法时,this指针错误的问题

  • 静态绑定添加从Function数据获取this的选项:GetSelfFromData

  • ue5.3兼容

  • v8后端拓展esm的支持:引用ue,cpp模块,继承ue类支持esm(*.mts)

  • TArray.Add() 变参函数 (#1513)

优化

  • v8 和 UE 字符串传递默认使用 UTF16 避免编码转换

  • 声明生成排除PropertyMetaRoot

  • 重构静态绑定,支持同时使用多种后端

  • 支持在puerts名字空间加个_qjs后缀

  • 默认打开UE绕行优化 fix #1537

  • 容器以及纯c++类型修改为使用InstanceTemplate()->NewInstance实现FindOrAdd,fix #1496

  • 优化timer实现,fix #1506

变更

  • 内部使用的GetJsObject方法改为私有,防止业务调用

  • pesapi版本升级以及api新增

  • v8编译参数v8_use_external_startup_data改为false,去掉SnapshotBlob.h,fix #1478

bug修复

  • 修复在windows下使用远程IOS编译,变量名重名导致的编译失败

  • Delegate没调用Bind就Unbind会报错 (#1622)

  • mixin原生类,然后恢复,导致后续原生实现调用参数不对的问题,fix #1618

  • 解决静态绑定下,需要检查参数类型,子类不能通过基类参数的检查的问题

  • 修复 codegen .d.ts 函数参数列表可能重名的问题 (#1609)

  • V8Object.hpp加上线程安全支持

  • FJsObject析构时加入JsEnv生命周期的判断,fix #1582

  • 属性的meta在ts删除了,生成蓝图要同步删除,fix #1551

  • UStruct 析构可能发生在后台线程 fix #1539

  • js分配的容器,在关闭JsEnv时可能会有内存泄露,fix #1530

  • 防止toManualReleaseDelegate传给多个不同签名的回调,导致后面的参数处理错误

  • 函数返回const FXXStruct&时,静态绑定报错,fix #1516

  • 如果require脚本发送错误,不应该放cache,这会导致第二次require能成功返回(但模块不正常)

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

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

Unity_v2.0.4,ApiLevel:32

09 Jan 01:51
1b4768d
Compare
Choose a tag to compare

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

[2.0.4] - 2024-01-09

  1. fix: the error when invoking extension method with out/ref args.
  2. fix: the error when set a JSObject to null.
  3. fix: the error when getting the arg index when invoking extension method with default arguments value.
  4. fix: members of valuetype created by paramless ctor will be random value.

difference between Node.js/Quickjs/V8: wiki

Unity_v2.0.3,ApiLevel:32

02 Nov 04:37
Compare
Choose a tag to compare

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

[2.0.3] - 2023-11-02

  1. important!: to follow the rules of Assetstore, move the generation menu from PuerTS to Tools/PuerTS
  2. feature: support dynamic import (import()) #1540
  3. fix: a bug in access control #1512
  4. fix: a bug about Interface in DTS generation #1541
  5. fix: a bug about functions returning Datetime in DTS generation #1565
  6. fix: a bug in invoking ctors with params in xil2cpp mode #1519
  7. fix: compating the latest Thread::GetThreadStaticDataForThread in xil2cpp mode #1503
  8. fix: some generation error in xil2cpp mode #1520
  9. fix: a memory issue after invoking paramless ctor of valuetype #1563

difference between Node.js/Quickjs/V8: wiki

Unity_v2.0.2,ApiLevel:32

07 Sep 07:25
Compare
Choose a tag to compare

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

  1. fix: defaultParam's value is not as expected when StaticWrapper in generated @ctxdegithub
  2. fix: could not build puerts with v8_8.4. In Unity2020-, the xil2cpp mode binary with v8_9.4 of android armv7 may not work. #1469
  3. optimize: combine libwee8.a and libpuerts.a in android for xil2cpp mode @mingxxming
  4. optimize: use universal binary instead of two binary with different arch in OSX now. @mikejurka
  5. optimize: JsEnv now have a public Isolate field to get the pointer of v8::Isolate @mingxxming
  6. optimize: remove our SnapshotBlob.h. Use v8's builtin snapshot instead. #1477
  7. optimize: The build script can now run with low Node.js version @xiezheng-XD #1495
  8. optimize: support inspector by default in Linux @Geequlim

difference between Node.js/Quickjs/V8: wiki

Unreal_v1.0.5

31 Aug 03:56
Compare
Choose a tag to compare

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

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

新增特性

  • ios下,以及quickjs后端的wasm实现

  • FJsObject添加JsEnv生命周期监听,puerts.Object补上拷贝构造,赋值的JsEnv生命周期监听

  • 支持使用visual studio时,typescript的监听和自动蓝图,js生成

  • 支持通过@uproperty.attach设置Component层次

  • 对放置路径不符合ts标识符规范的蓝图

  • 支持单独设置某个虚拟机的max-old-space-size,并把增量分析编译虚拟机的内存增加到2G

  • 声明生成按钮改为puerts按钮,除了生成*.d.ts,也拷贝系统js文件

  • 添加自动管理生命周期的puerts.toDelegate方法

  • ue.d.ts新增ue api的注释

  • pesapi addon的支持

  • pesapi添加类型信息支持

  • pesapi addon支持通过WITHOUT_PESAPI_WRAPPER使用dll链接,而不是内部函数指针

  • pesapi addon支持直接使用V8 api

  • pesapi addon支持v8 fast api call

  • 添加pesapi_create_array, pesapi_is_array,pesapi_get_array_length

  • 添加macOS arm64的支持

  • quickjs版本支持html5打包

优化

  • minxin如果class是RootSet,Function也AddToRoot

  • 只有原生的才生成到ue.d.ts

  • 重构静态绑定:backend彻底分离而且可以共存

  • 尝试ts继承蓝图类时报错

变更

  • 配置类别更名 Engine Class Extends Mode -> Default JavaScript Environment

  • 不支持override GameInstance.ReceiveInit

  • Typing目录调整到Project下

  • quickjs编辑器下默认使用静态链接!影响比较大,如果用quickjs,就不能在JsEnv外使用静态绑定

  • ReactUMG不再随Puerts发布,有需要自行下载:https://github.com/puerts/ReactUMG

bug修复

  • 函数参数是ts关键字导致的语法非法

  • 解决重用外层esm标记导致的两次require间相互影响的问题

  • 静态绑定如果构造函数没重载时,参数错误构造函数不执行也不抛异常的问题

  • 解决元素为组件的容器识别为组件的问题

  • 解决v8 fast api call下静态函数性能慢的问题

  • 修复forceinject的时候可能重复setprototype导致的exception

  • ue5.2可能会生成重名的隐藏property,加个过滤

Unity_v2.0.1,ApiLevel:32

16 Aug 07:11
Compare
Choose a tag to compare

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

  1. Fix: NestedType was not declared correctly in link.xml #1460
  2. Fix: out parameters with ValueType might cause crash in xil2cpp mode. #1460
  3. Fix: default value of parameters in extension method was not correct in xil2cpp mode #1456
  4. Fix: JSObject was not recycle correctly

difference between Node.js/Quickjs/V8: wiki

Unity_v2.0.0,ApiLevel:32

31 Jul 10:27
Compare
Choose a tag to compare

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

  1. Fix: debugpath was not work and make VSCode debug not availabled
  2. Fix: puer.$genericMethod cannot get the genericMethod from super class in xil2cpp mode #1417 @danij91
  3. Fix: GetFriendlyName is not a function when generating extensionInfo #1437

This is the first stable version of 2.0.0. Shout out to everyone who attending the test.
If you need any help in upgrading. See upgrade guide

这个版本是2.0第一个正式版本。感谢所有参与过2.0内测的朋友。
若对升级有疑问可以参见升级指南

difference between Node.js/Quickjs/V8: wiki

Unity_v2.0.0-rc.1,ApiLevel:32

14 Jul 09:59
Compare
Choose a tag to compare
Pre-release

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

  1. Fix: BlitableCopy was broken issue #1427
  2. Fix: two wrapper generation issue #1433 #1432

difference between Node.js/Quickjs/V8: wiki

Unity_v2.0.0-rc.0,ApiLevel:32

01 Jul 06:14
Compare
Choose a tag to compare
Pre-release

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

  1. Fix: struct's paramless default ctor was unable to use #1301
  2. Fix: op_xxxx method was unable to use after generated #1399
  3. Fix: GetFriendlyName was not defined after generated
  4. Fix: the Constructor of BlittableCopy Type didn't invoked
  5. Optimization: isESM check optimize #1391

difference between Node.js/Quickjs/V8: wiki