The latter is used by BP functions, as well as C++ functions that have default arguments that UHT can't parse (eg, a default TMap argument).
#jira
#preflight 62470f9d470aff98e97e71db
#rb Patrick.Laflamme
#rnx
#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 19590554 via CL 19591745 via CL 19591775 via CL 19591795
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v938-19570697)
[CL 19593534 by jamie dale in ue5-main branch]
The BP compiler erroneously reports that python nodes might be missing implicit casts. However, UK2Node_ExecutePythonScript nodes handle argument slightly differently than conventional function nodes. The pins don't actually correspond to actual arguments on ExecutePythonScript. Instead, they more or less serve as references to their linked inputs, which ExecutePythonScript will pop from the stack and perform a direct conversion to a Python type. As a result, there's nothing to cast, and we can safely remove the entries from the ImplicitCastMap on the current content.
#rb jamie.dale
#jira UE-146778
#preflight 623b4fbeca34ffd7bf7db3e8
[CL 19482561 by dave jones2 in ue5-main branch]
- Released the GIL in Finalize() - rename class, get default object and refresh BlueprintActionDatabase
#jira FORT-444807 - Python Load_Asset is causing the editor to hang if it has to load certain assets
#rb Jamie.Dale, Patrick.Laflamme
#ushell-cherrypick of 19292501 by Max.Chen
#preflight 6226843d1938e4deaa7916fc
[CL 19293291 by Patrick Laflamme in ue5-main branch]
Setters and getters are native functions called by FProperties when setting property values with *_InContainer functions.
Setters and getter function names can be manually specified with Setter = Func and Getter = Func keywords inside of UPROEPRTY macro but they will also be automatically parsed if the name is not explicitly specified if the setter or getter function name matches SetPropertyName and GetPropertyName pattern.
The latter behavior can be disabled in UHT's DefaultEngine.ini by setting AutomaticSettersAndGetters=False.
ImportText and ExportTextItem functions have been deprecated and should be replaced with *_InContainer or *_Direct variants.
#rb Steve.Robb
#preflight 6210a377a83e0bcefd03d9e1
#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19070318 via CL 19098059 via CL 19104650 via CL 19104661 via CL 19110012
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19147839 by marc audy in ue5-main branch]
#rb Andrew.Scheidecker
#preflight 620f3a108863746a104d6c36
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19047989 via CL 19048186 via CL 19048197 via CL 19048203 via CL 19049414
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v918-19018356)
[CL 19065767 by robert manuszewski in ue5-main branch]
#jira UE-92057 - Investigate deferring the function resolution for Make/Break meta-data in Python
#rb Jamie.Dale
#preflight 61f84aa35a026d2d19b62c70
#ROBOMERGE-AUTHOR: patrick.laflamme
#ROBOMERGE-SOURCE: CL 18796649 in //UE5/Release-5.0/... via CL 18797780 via CL 18798499
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)
[CL 18798615 by patrick laflamme in ue5-main branch]
- Released the GIL while loading or finding an asset.
- Released the GIL while loading or finding an object.
- Released the GIL while loading or finding packages.
- Released the GIL while logging/flushing stdout/stderr from Python.
#rb Jamie.Dale
#preflight 61f2fb1d1f12674afbbf9933
#ROBOMERGE-AUTHOR: patrick.laflamme
#ROBOMERGE-SOURCE: CL 18764878 via CL 18764883 via CL 18764890 via CL 18765457 via CL 18765586
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)
[CL 18765591 by patrick laflamme in ue5-main branch]
- Removed the meta=(MakeStructureDefaultValue= "1,1,1") from the FTransform struct because Unreal Header Tool is already capable to deduce that from the MakeTransform() default C++ prameter.
- Removed the meta=(Scale = "1,1,1") from MakeTransform UFUNCTION because that can be deduced by Unread Header Toold from the default C++ parameter.
Fixed Python code not invoking the a 'Make' function (declared with meta HasNativeMake on a USTRUCT) if no parameters were supplied to Python (ex. unreal.Transform() would not call the MakeTransform(...)).
- In most case, not calling the Make function worked as expected, but the Make function could implement side effects, so always honor it.
Resaved BP macro assets using MakeTransform() with the default values. The default values saved as string with the asset changed from "1,1,1" to "1.000000,1.000000,1.000000" and this triggered a BP Compiler warning.
The following tests were performed:
- In the Blueprint Editor, added a Make Transform node and ensured the default values for scale were (1, 1, 1)
- In the Blueprint Editor, created a User Defined Struct, added as a member a Transform, ensured the default values for the transform scale were (1, 1, 1)
- Added a Python regression unit tests to ensure unreal.Transform() takes the default scale value as (1, 1, 1) if the scale parameter is not provided.
- Created a Blueprint Macro Libraries with a Macro calling MakeTransform() with default parameters, saved it, applied the fix, got the warning, refreshed the node, resaved the macro and ensured the macro used the correct default scale.
#jira UE-133741 - MakeStructureDefaultValue is not used in Python
#rb Jamie.Dale
#ROBOMERGE-OWNER: patrick.laflamme
#ROBOMERGE-AUTHOR: patrick.laflamme
#ROBOMERGE-SOURCE: CL 18337929 via CL 18338143 via CL 18338146 via CL 18338492 via CL 18338517
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18338531 by patrick laflamme in ue5-release-engine-test branch]
- This makes Python a bit faster at startup (according to my benchmark) and reduce noise looking at the sys.path.
#jira UE-135129 - Avoid adding non-existing directory to Python 'sys.path'
#rb Jamie.Dale
#ROBOMERGE-AUTHOR: patrick.laflamme
#ROBOMERGE-SOURCE: CL 18324422 in //UE5/Release-5.0/... via CL 18324431
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18324435 by patrick laflamme in ue5-release-engine-test branch]
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971
[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
- Supported reading the enum entry display name set in C++ as well as the one injected from python with the [at]uenum annotation.
- Added unit tests.
#jira UE-132375 - Add a way for python to get the friendly name of an enum value
#rb Jamie.Dale
#ROBOMERGE-AUTHOR: patrick.laflamme
#ROBOMERGE-SOURCE: CL 18019999 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v885-17909292)
[CL 18020038 by patrick laflamme in ue5-release-engine-test branch]
PyObject ptr equality doesn't work for method objects as there's a new instance everytime.
Instead, compare the callables tp_call pointers and PyMethod_Self values for methods.
#rb Patrick.Laflamme, Jamie.Dale
#ROBOMERGE-AUTHOR: jeanmichel.dignard
#ROBOMERGE-SOURCE: CL 17981106 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v885-17909292)
[CL 17981189 by jeanmichel dignard in ue5-release-engine-test branch]
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035
[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
- Used static_cast<bool>() to work with both python 3.7 and 3.9. The macro expression type changed from bool to int between the versions.
#jira UE-126618 - //UE5/Main - UE4 Static Analysis Win64 (PVS-Studio) - pyengine.cpp compares a bool type value with a value of 0
#rb Brooke.Hubert
#ROBOMERGE-AUTHOR: patrick.laflamme
#ROBOMERGE-SOURCE: CL 17523778 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)
[CL 17523850 by patrick laflamme in ue5-release-engine-test branch]
- Tested those fixes with Python 3.7.x (current) and 3.9.7 (upcoming) on Windows and Mac
#jira UE-124978 - Upgrade to Python 3.9.x
#rb Jamie.Dale
#ROBOMERGE-AUTHOR: patrick.laflamme
#ROBOMERGE-SOURCE: CL 17491930 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)
[CL 17491945 by patrick laflamme in ue5-release-engine-test branch]