- invoke native_callable functions inside AutoRTFM::Open
- a number of other small fixes
#rb russell.johnston
#rnx
#okforversepublic
[CL 36025538 by markus breyer in ue5-main branch]
- Added ProjectDescriptor.FromDirectory(), which will attempt to find and load a .uproject file from a project direectory (with .uproject in the root of that dir)
#rb David.Harvey, Joe.Kirchoff
[CL 36005543 by josh adams in ue5-main branch]
- allow game-specific plugins to reference certain platform extensions without using a plugin extension (currently just WinGDK)
#jira UE-219533
#rnx
#rb josh.adams
[CL 35968191 by david harvey in ue5-main branch]
- Use this in CopyBuildToStagingDIrectory when reading the Packaging settings when staging. This allows plugins to add files/directories to stage without needing to modify every project.
- Added a ConfigTester Turnkey command that can help test C# inis programmatically. Currently need to pass in these 3 params on commandline, it doesn't ask for them: -Branch=Engine -Section=SomeSection -Key=SomeKey
#rb David.Harvey
[CL 35927236 by josh adams in ue5-main branch]
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Don't replace single quotes with double quotes on Mac/Linux with RunLocalProcessAndReturnStdOut
#rb David.Harvey
[CL 35644818 by josh adams in ue5-main branch]
- removes un-needed 'dummy tuple' from extension methods which was originally added to differentiate them from normal methods of the same name. Extension methods are explicitly looked up different from normal methods in `ResolveOverloadedCallee`
- re-works how we compile and unpack parameters/arguments in the VerseVMCodeGen + Interpreter. In short:
- All unnamed parameters are handled by the functions bytecode (See CompileParameters)... ie nested params have call()'s emitted to grab them there.
- All named parameters are handed in separately from unnamed ones.
- the 'unboxing' logic in the VM has been updated to respect this.
- Positional params are directly stored
- Named params are looked up by register name and stored
- adds new tests `NestedNamedTupleParameters.versetest`
#rb russell.johnston
[FYI] saam.barati
[FYI] yiliang.siew
#tests SceneGraph.Entity
[CL 35605644 by jared cotton in ue5-main branch]
The compiler can inline function calls before the AutoRTFMCompilerPass splits functions into open and closed variants, which can lead to incorrect RTFM behaviour.
When AutoRTFM is enabled (clang-verse with -fautortfm) remove the implementation of autortfm_is_closed(). This prevents the compiler from inlining the function (as there is nothing to inline).
Replace the use of UE_AUTORTFM_AUTORTFM() with function bodies that explicitly branches on autortfm_is_closed(), calling either a UE_AUTORTFM_ALWAYS_OPEN annotated closed function, or instead performing the open logic. Because the function body calls autortfm_is_closed() (which cannot be inlined), these functions should avoid the premature inlining problem.
When AutoRTFM is not enabled (clang-verse with -fautortfm, or a different compiler) the AutoRTFM core functions are stubbed with `static inline` implementations. The static qualifier should be sufficient to prevent this implementation leaking into other modules with AutoRTFM enabled.
Change BENIGN_LANGOPT(AutoRTFM, ...) to LANGOPT(AutoRTFM, ...). This makes Clang consider the flag as incompatible when mixing -fautortfm / no -fautortfm between precompiled headers and users. This is important as the new __AUTORTFM_ENABLED macro will be baked into the PCH.
Error if both -fautortfm and exceptions are enabled on the compiler.
Update the UnrealBuildTool to separate PCHs with -fautortfm enabled and without.
#rb neil.henning
[CL 35333537 by ben clayton in ue5-main branch]
Also updates some of the tracing logic to print out input operands as well.
#rnx
#rb russell.johnston, saam.barati
#rb Saam.Barati
[CL 35251986 by yiliang siew in ue5-main branch]
#rb Per.Larsson
#rnx
- The code documentation for these two members were switched, probably a copy paste error at somepoint.
[CL 35239699 by paul chipchase in ue5-main branch]
LimitedAccess will allow Plugins and Programs to be shared externally with a limited subset of users under alternate agreements or for varying purposes without requiring bespoke, problematic, custom permissions that reach in to the NotForLicencees folders or bespoke, problematic, custom distribution processes for providing the code.
[CL 35094184 by marc audy in ue5-main branch]
[FYI] ben.clayton
Original CL Desc
-----------------------------------------------------------------
[AutoRTFM] Prevent premature inlining of RTFM core functions and prevent mixed -fautortfm PCHs
The compiler can inline function calls before the AutoRTFMCompilerPass splits functions into open and closed variants, which can lead to incorrect RTFM behaviour.
When AutoRTFM is enabled (clang-verse with -fautortfm) remove the implementation of autortfm_is_closed(). This prevents the compiler from inlining the function (as there is nothing to inline).
Replace the use of UE_AUTORTFM_AUTORTFM() with function bodies that explicitly branches on autortfm_is_closed(), calling either a UE_AUTORTFM_ALWAYS_OPEN annotated closed function, or instead performing the open logic. Because the function body calls autortfm_is_closed() (which cannot be inlined), these functions should avoid the premature inlining problem.
When AutoRTFM is not enabled (clang-verse with -fautortfm, or a different compiler) the AutoRTFM core functions are stubbed with `static inline` implementations. The static qualifier should be sufficient to prevent this implementation leaking into other modules with AutoRTFM enabled.
Change BENIGN_LANGOPT(AutoRTFM, ...) to LANGOPT(AutoRTFM, ...). This makes Clang consider the flag as incompatible when mixing -fautortfm / no -fautortfm between precompiled headers and users. This is important as the new __AUTORTFM_ENABLED macro will be baked into the PCH.
Update the UnrealBuildTool to separate PCHs with -fautortfm enabled and without.
#rb michael.nicolella
[CL 35070269 by justin peterson in ue5-main branch]
The compiler can inline function calls before the AutoRTFMCompilerPass splits functions into open and closed variants, which can lead to incorrect RTFM behaviour.
When AutoRTFM is enabled (clang-verse with -fautortfm) remove the implementation of autortfm_is_closed(). This prevents the compiler from inlining the function (as there is nothing to inline).
Replace the use of UE_AUTORTFM_AUTORTFM() with function bodies that explicitly branches on autortfm_is_closed(), calling either a UE_AUTORTFM_ALWAYS_OPEN annotated closed function, or instead performing the open logic. Because the function body calls autortfm_is_closed() (which cannot be inlined), these functions should avoid the premature inlining problem.
When AutoRTFM is not enabled (clang-verse with -fautortfm, or a different compiler) the AutoRTFM core functions are stubbed with `static inline` implementations. The static qualifier should be sufficient to prevent this implementation leaking into other modules with AutoRTFM enabled.
Change BENIGN_LANGOPT(AutoRTFM, ...) to LANGOPT(AutoRTFM, ...). This makes Clang consider the flag as incompatible when mixing -fautortfm / no -fautortfm between precompiled headers and users. This is important as the new __AUTORTFM_ENABLED macro will be baked into the PCH.
Update the UnrealBuildTool to separate PCHs with -fautortfm enabled and without.
#rb michael.nicolella
[CL 35058925 by ben clayton in ue5-main branch]