- Added OpCodes melt/freeze which are how deep-copying of vars will be done. ie `VarSet(Melt(Value))` and `Freeze(VarGet(Var))`
- melt suspends upon encountering a placeholder
- freeze errors on encountering a placeholder. This may change depending on whether the Verse-Verifier decides to allow this or not.
- note: We use a VCell header bit to identify types which are deeply mutable and thus require melt/freeze operations (this may be moved into these types emergent types)
- Re-worked VMap classes so now majority of code lives inside VMapBase via templating
#rb saam.barati
[CL 30688090 by jared cotton in ue5-main branch]
* Change (most) fields to properties
* Naming rule fixes for local variables
* Remove unnecessary default values
* Move ReadOnlyTargetRules to new file
* Remove RequiresUniqueBuildEnvironment from obsolete properties
* Document formatting
#rnx
[CL 30415265 by joe kirchoff in ue5-main branch]
#rb yiliang.siew
This patch:
- Makes map construction pick the right values in the right order when constructing a map with duplicate keys
- Makes map comparison ordered
- Implements ConcatenateMaps as an intrinsic function
- Makes enum hashable
[CL 30365816 by saam barati in ue5-main branch]
Introduced opt in localization for plugins. Plugins can be set to never have localization config files generated, auto-generated or have the localization pipeline use the user generated localization config files.
- All existing plugins with localization targets will be retrofitted to have a LocalizationConfigGenerationPolicy of Never to match current behavior.
- Introduced the LocalizationConfigGenerationPolicy enum to plugin descriptors and LocalizationTargetDescriptors. This controls whether plugin localization targets use user generated localization config files, auto-generated localization config files or if the plugin is never to have localization config files and thus not localized.
- Introduced a step in the Localize UAT command to auto-generate localization config files with default settings for plugins that opt into the auto-generation feature.
- Added a clean up step in the Localize uAT command to delete all auto-generated files and folders from a run of the command.
- Added a -PreserveAutoGeneratedResources flag for the Localize UAT command to preserve the auto-generated files and directories for debugging.
-Updated both the C# and C++ version of the LocalizationTargetDescriptor to contain the new LocalizationConfigGenerationPolicy and have them read and written from the plugin descriptor files.
- Updated the NewPluginLocalizationTarget command under the LocalizationTargetEditor UAT command to accept a LocalizationConfigGenerationPolicy as a command line argument for all plugin localization targets to be created.
If the parameter is not specified, the parameter defaults to the Auto LocalizationConfigGenerationPolicy for all the plugins specified.
#rb: Jamie.Dale
#jira: UE-194880, UE-194879
#test Used the NewPluginLocalizationTarget sub-command to create plugins with an auto localization target. Used the Localize UAT command to perform a gather for such a plugin. Config files were indeed generated, the plugin was gathered and the loc data stored in PluginName/Content/Localization and then the config files were deleted. No fuss, no muss
[CL 30172150 by leon huang in ue5-main branch]
[FYI] alex.kahn
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL30097541 - CIS Warning
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Added a new TargetBuildEnvronment - UniqueIfNeeded. This will use Shared if possible, but if a property that requires unique environment, of a project has overridden an SDK version, Unique will beused instead
#rb joe.kirchoff
[CL 30118373 by josh adams in ue5-main branch]
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Added a new TargetBuildEnvronment - UniqueIfNeeded. This will use Shared if possible, but if a property that requires unique environment, of a project has overridden an SDK version, Unique will beused instead
#rb joe.kirchoff
[CL 30103827 by alex kahn in ue5-main branch]
#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]