Commit Graph

1846 Commits

Author SHA1 Message Date
jared cotton
507c2ae365 SOL-4828 - "Split container types between being mutable and immutable"
- Removes VUTF8String and replaces its usage with VArray's of Char8's.
- Reworks VUniqueString to derive from VArray
- Re-enables majority of string related verse-tests for VM

Minor:
- Updated some ToStringImpl for VFalse and VFunction

#okforversepublic
#rb saam.barati, Tim.Smith
#rb tim.smith

[CL 32803034 by jared cotton in ue5-main branch]
2024-04-08 15:39:20 -04:00
joe kirchoff
c7db607a54 UnrealBuildTool: Fix bStaticAnalyzerExtensions not being set in copy constructor
#rnx

[CL 32779843 by joe kirchoff in ue5-main branch]
2024-04-05 20:33:03 -04:00
joe kirchoff
e03cbf755d UnrealBuildTool: Fix unknown telemetry
#rnx

[CL 32738568 by joe kirchoff in ue5-main branch]
2024-04-04 15:18:23 -04:00
george rolfe
e05aebc20a Adding GameTarget Allow/Deny Lists to UBT
#rnx
#rb Joe.Kirchoff

[CL 32721753 by george rolfe in ue5-main branch]
2024-04-04 04:41:05 -04:00
joe kirchoff
f64c22a4f3 UnrealBuildTool: Resolve CA1001, CA1012, CA1018, CA2213
#rnx

[CL 32716079 by joe kirchoff in ue5-main branch]
2024-04-03 19:55:53 -04:00
chris constantinescu
7c5095a408 LLT Android support
#rb Chris.Babcock, sebastian.lewicki
#jira UE-210332

[CL 32714226 by chris constantinescu in ue5-main branch]
2024-04-03 18:39:56 -04:00
joe kirchoff
65f7eab2cd UnrealBuildTool: Resolve CA2254, IDE0011, IDE0017, IDE0030, IDE0031, IDE0037, IDE0056, IDE0075, IDE2000, IDE2001
#rnx

[CL 32711093 by joe kirchoff in ue5-main branch]
2024-04-03 17:18:04 -04:00
joe kirchoff
0531eb4a9f UnrealBuildTool: Resolve CA1019
#rnx

[CL 32702872 by joe kirchoff in ue5-main branch]
2024-04-03 13:25:26 -04:00
joe kirchoff
a20c9fbb9e UnrealBuildTool: Format documents, remove and sort usings
#rnx

[CL 32700883 by joe kirchoff in ue5-main branch]
2024-04-03 12:22:43 -04:00
joe kirchoff
f31852226b UnrealBuildTool: Resolve CA1813
#rnx

[CL 32687223 by joe kirchoff in ue5-main branch]
2024-04-02 20:44:04 -04:00
joe kirchoff
89805bc149 UnrealBuildTool: Resolve IDE0008, IDE0049
#rnx

[CL 32687030 by joe kirchoff in ue5-main branch]
2024-04-02 20:29:22 -04:00
joe kirchoff
e895acc0bb UnrealBuildTool: Resolve IDE0018, IDE0019, IDE0034, IDE0038, IDE0041, IDE0054, IDE0057, IDE0074, IDE0090
#rnx

[CL 32686487 by joe kirchoff in ue5-main branch]
2024-04-02 19:54:03 -04:00
russell johnston
43ee153dd8 Implement defer in VerseVM
Defer blocks run for one of several reasons: normal block exit, exit via break or return, or (not yet implemented) task cancellation. To accommodate this, defer bytecode accepts a jump target index and switches on it after running. This index is stored in a register allocated for the defer block, which is sufficient because defers are not re-entrant. The register and switch are elided when the block runs only on the normal exit path.

The switch instruction has a variadic label operand. To simplify label fixup, all variadic operands are moved from `TArray` fields in the instructions to a shared trailing array in `VProcedure`. (Variadic operands to suspension captures remain `TArray`s.)

Early exit may cross several defer blocks on the way to its eventual jump target. Each defer block wraps these jump targets in a thunk, which passes the index for the wrapped target to the defer block. Exit control flow thus executes a chain of these thunks, ending with the actual exit jump when it reaches the appropriate scope.

#rb Markus.Breyer, Tim.Smith

[CL 32670628 by russell johnston in ue5-main branch]
2024-04-02 12:33:04 -04:00
joe kirchoff
567d14c994 UnrealBuildTool: If running via Horde, always add the current Horde server as a telemetry endpoint
#rnx

[CL 32594252 by joe kirchoff in ue5-main branch]
2024-03-28 17:05:41 -04:00
joe kirchoff
4713825ec2 UnrealBuildTool: Don't send telemetry or show dryrun output in debug
#rnx

[CL 32593571 by joe kirchoff in ue5-main branch]
2024-03-28 16:54:32 -04:00
joe kirchoff
1975bacb57 UnrealBuildTool: Add support for studio telemetry. Requires connection info to be defined in a BaseEngine.ini config, as well as opting into those providers via a BuildConfiguration.xml setting
#jira UE-210668

#ushell-cherrypick of 32521294 by Joe.Kirchoff

[CL 32550524 by joe kirchoff in ue5-main branch]
2024-03-27 14:05:42 -04:00
zach harris
aa6cca6f27 Fixing the LinkEnvironment copy constructor to resolve an issue with the merged pgd filename not being passed to the VC toolchain.
#tests Ran a PF with the change, issue of the missing value no longer occurs.

[CL 32510651 by zach harris in ue5-main branch]
2024-03-26 11:36:46 -04:00
zach harris
05624440e6 Modifying how we grab pgd and pgc files on Windows to account for the new merged pgd pipeline.
#rb adolf.stary

[CL 32490681 by zach harris in ue5-main branch]
2024-03-25 18:58:08 -04:00
joe kirchoff
517c200725 Remove some obsolete command line args
#rnx

[CL 32410750 by joe kirchoff in ue5-main branch]
2024-03-21 15:33:55 -04:00
christopher waters
7b31a51fb0 Headers that use UE_DEPRECATED_HEADER shouldn't be included in header units.
#rb Joe.Kirchoff

[CL 32365709 by christopher waters in ue5-main branch]
2024-03-20 10:38:05 -04:00
joe kirchoff
aa3ad552aa UHT: plugin/Source is also a valid base directory for include paths
#rnx

[CL 32332491 by joe kirchoff in ue5-main branch]
2024-03-19 14:04:57 -04:00
russell johnston
09f35473e4 VerseVM Await and sync expressions
Bind the `task` class to `VTask` with a native `Await` method. For tasks created before this binding, `VTask` uses a trivial emergent type and shape, so code that runs in this context (i.e. module top-levels) does not support structured concurrency.

Each `sync` arm spawns a new task, and the overall expression `Await`s each of them in turn to collect their results. These tasks may need to remain active when the outer `sync` expression suspends, which conflicts with the way lenient suspension forcibly suspends child tasks - to resolve this, suspenion no longer affects child tasks (in fact child tasks are no longer tracked at all) and instead `EndTask` (really any time the current task changes) must check for an already-suspended `YieldTask`.

Also adjust the bytecode of `for` loops so that the body runs outside of any failure context, rather than forwarding failures. This enables `<suspends>` calls in `for` loop bodies.

#rb Markus.Breyer

[CL 32277546 by russell johnston in ue5-main branch]
2024-03-15 12:58:08 -04:00
tim smith
794352ece3 Add support for "import_as_attribute" to the new VM code generator.
#rb russell.johnston

[CL 32216098 by tim smith in ue5-main branch]
2024-03-13 11:52:26 -04:00
tim smith
8dd06e0022 Migrated the existing verse package and class UE names to new VM
#rb Markus.Breyer

[CL 32207762 by tim smith in ue5-main branch]
2024-03-13 06:00:33 -04:00
russell johnston
7344f83d62 Native methods and FVerseValue fields in VerseVM
Replace `TVerseFunction` and its `FProperty` with a `VRestValue`.
Unify `TVerseFunction` and `FInteropUtils::TryInvoke...` for calling methods vs module/interface functions. (This includes fixing named non-defaulted parameters in the `TVerseFunction` path, apparently previous unused.)
Wrap the `verse::task*` result of `<native_callable>` APIs in `FVerseTask`; remove `Cancel` from `TVerseCall` (see SOL-6056).

Switch to decorated but unmangled names in VNI-generated binding glue.
Switch to decorated method names in VerseVM to match the binding glue.
Run `UVerseVMClass` CDO initialization after binding glue computes class layout.

Always create a `UObject` for `<native>` classes, now that their methods are bound.

#rb markus.breyer, tim.smith
#okforversepublic

[CL 32004566 by russell johnston in ue5-main branch]
2024-03-04 18:32:21 -05:00