#jira UE-199766
#rb zack.neyland
#tests tested on WSL, Ubuntu 22.04 Threadripper and Ubuntu 22.04 Megastation
[CL 30047912 by james singer in ue5-main branch]
Split VMap into mutable and immutable versions
(preflight failure looked spurious... ie timeout on cook worker. Ready to backout if this is a real issue somehow caused by my CL but thought this unlikely)
[CL 29994701 by jared cotton in ue5-main branch]
SOL-4828 - "Split container types between being mutable and immutable"
- Changed VArray to be an immutable array and created VMutableArray
- Removed VTuple and replaced its usages with VArray. VArray will be updated to take an emergent type in its construction later to allow for defining whether it is an array or a tuple for casting purposes.
- Added `Aux Allocation` logic to GC/Barriers which marks but does not add to the MarkStack. This is used for allocating the VMutableArray's buffer of TWriteBarrier<VValue>'s.
#rb Kirill.Zorin
#rb Saam.Barati
[CL 29866547 by jared cotton in ue5-main branch]
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: Move common action properties for CreateRecursiveAction to be shared
#rnx
[CL 29600550 by grant medine in ue5-main branch]
Represent class initialization logic with a new `VConstructor` type, holding a sequence of interleaved fields and blocks. At class construction time, flatten these sequences such that class bodies run in order, and subclasses run before superclasses. At object construction time, extract a sequence of `VProcedure`s representing the non-overridden field initializers and blocks to invoke.
Give these initializers and blocks (as well as member functions) access to their `Self` object via a `ParentScope` capture in `VFunction`, copied to register 0 at call time. Rather than close over `Self` at object construction time, do it at field load time, so these members can be shared between all instances of a class as `VProcedures`, either in the `VConstructor` or `VShape`. In the future, the `ParentScope` field for non-member functions may instead point to an environment.
#rb saam.barati, yiliang.siew
[CL 29530839 by russell johnston in ue5-main branch]
Original CL Desc
-----------------------------------------------------------------
New VerseScope "InternalUser" and renamed "User" to "PublicUser"
- new enumerator for VerseScope named "InternalUser"
- renamed existing VerseScope "User" to "PublicUser" - this is possible without breaking existing projects since the VerseScope is not written out to the uplugin file when it is set to "User"
#rb andrew.scheidecker
#rnx
[CL 29419291 by bob tellez in ue5-main branch]
[FYI] Markus.Breyer
Original CL Desc
-----------------------------------------------------------------
New VerseScope "InternalUser" and renamed "User" to "PublicUser"
- new enumerator for VerseScope named "InternalUser"
- renamed existing VerseScope "User" to "PublicUser" - this is possible without breaking existing projects since the VerseScope is not written out to the uplugin file when it is set to "User"
#rb andrew.scheidecker
#rnx
[CL 29418991 by bob tellez in ue5-main branch]
- new enumerator for VerseScope named "InternalUser"
- renamed existing VerseScope "User" to "PublicUser" - this is possible without breaking existing projects since the VerseScope is not written out to the uplugin file when it is set to "User"
#rb andrew.scheidecker
#rnx
[CL 29416324 by markus breyer in ue5-main branch]
Expected usage:
```
[ModuleGroups("MyGroup"]
public class MyModule : ModuleRules {... }
public class MyOtherModule : ModuleRules
{
...
PrivateDependencyModuleNames.AddRange( GetModulesInGroup("MyGroup") );
}
```
#rnx
#rb Josh.Adams
[CL 29270167 by david harvey in ue5-main branch]
#rb yiliang.siew
We're soon gonna be storing to VValue/pointer fields in the bytecode stream that the GC will scan and the mutator will write to. Let's 8-byte align so we don't see tearing.
[CL 28779525 by saam barati in ue5-main branch]