Releases: Tencent/puerts
Unreal_v1.0.6p1
针对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
!请使用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
中文版本请查看 doc/unity/zhcn/changelog.md
[2.0.4] - 2024-01-09
- fix: the error when invoking extension method with out/ref args.
- fix: the error when set a JSObject to
null
. - fix: the error when getting the arg index when invoking extension method with default arguments value.
- 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
中文版本请查看 doc/unity/zhcn/changelog.md
[2.0.3] - 2023-11-02
- important!: to follow the rules of Assetstore, move the generation menu from
PuerTS
toTools/PuerTS
- feature: support dynamic import (
import()
) #1540 - fix: a bug in access control #1512
- fix: a bug about Interface in DTS generation #1541
- fix: a bug about functions returning Datetime in DTS generation #1565
- fix: a bug in invoking ctors with params in xil2cpp mode #1519
- fix: compating the latest Thread::GetThreadStaticDataForThread in xil2cpp mode #1503
- fix: some generation error in xil2cpp mode #1520
- fix: a memory issue after invoking paramless ctor of valuetype #1563
difference between Node.js/Quickjs/V8: wiki
Unity_v2.0.2,ApiLevel:32
中文版本请查看 doc/unity/zhcn/changelog.md
- fix: defaultParam's value is not as expected when StaticWrapper in generated @ctxdegithub
- 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
- optimize: combine
libwee8.a
andlibpuerts.a
in android for xil2cpp mode @mingxxming - optimize: use universal binary instead of two binary with different arch in OSX now. @mikejurka
- optimize:
JsEnv
now have a publicIsolate
field to get the pointer ofv8::Isolate
@mingxxming - optimize: remove our
SnapshotBlob.h
. Use v8's builtin snapshot instead. #1477 - optimize: The build script can now run with low Node.js version @xiezheng-XD #1495
- optimize: support inspector by default in Linux @Geequlim
difference between Node.js/Quickjs/V8: wiki
Unreal_v1.0.5
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
中文版本请查看 doc/unity/zhcn/changelog.md
- Fix: NestedType was not declared correctly in
link.xml
#1460 - Fix:
out
parameters with ValueType might cause crash in xil2cpp mode. #1460 - Fix: default value of parameters in extension method was not correct in xil2cpp mode #1456
- Fix: JSObject was not recycle correctly
difference between Node.js/Quickjs/V8: wiki
Unity_v2.0.0,ApiLevel:32
中文版本请查看 doc/unity/zhcn/changelog.md
- Fix:
debugpath
was not work and make VSCode debug not availabled - Fix:
puer.$genericMethod
cannot get the genericMethod from super class in xil2cpp mode #1417 @danij91 - 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
中文版本请查看 doc/unity/zhcn/changelog.md
difference between Node.js/Quickjs/V8: wiki
Unity_v2.0.0-rc.0,ApiLevel:32
中文版本请查看 doc/unity/zhcn/changelog.md
- Fix: struct's paramless default ctor was unable to use #1301
- Fix: op_xxxx method was unable to use after generated #1399
- Fix: GetFriendlyName was not defined after generated
- Fix: the Constructor of BlittableCopy Type didn't invoked
- Optimization: isESM check optimize #1391
difference between Node.js/Quickjs/V8: wiki