Commit Graph

9 Commits

Author SHA1 Message Date
Ben Marsh
92394f86b4 BuildGraph: Ignore empty values for file arguments in BuildGraph tasks.
#preflight 6435bad600398d6f88ecbb12

[CL 24997317 by Ben Marsh in ue5-main branch]
2023-04-11 16:22:19 -04:00
Ben Marsh
e58c6282b6 BuildGraph: Add a better error when an exception is thrown parsing a task argument.
#preflight none

[CL 23464279 by Ben Marsh in ue5-main branch]
2022-12-09 11:22:43 -05:00
Ben Marsh
38f3bc55ef BuildGraph: Various VM improvements.
* Added support for deserializing BgObject types directly into native classes.
* Removed opcodes for creating graph structures. These are now created in user code from BgObject types.
* Removed BgNodeSpecBuilder. BgNode objects can now be modified directly (returning a modified copy).
* Added concrete types for option parameters. The VM now keeps track of any parameters for evaluated options, allowing them to be added into the graph definition.
* Order dependencies now take nodes rather than outputs.
* Added explicit support for native thunks, whose bindings are saved to a sideband channel during compilation and referenced in bytecode as an index. This generalizes code that was previously specific to node definitions.
* Added a name table to bytecode, to optimize situations where we reference the same string mulitple times.

#preflight 62bf3c583f0d6beee2e8f4a6

[CL 20918762 by Ben Marsh in ue5-main branch]
2022-07-01 14:47:54 -04:00
Ben Marsh
c32dfb7acb BuildGraph: Move option classes alongside their underlying types, and fix up a lot of namespaces.
#preflight none

[CL 20819013 by Ben Marsh in ue5-main branch]
2022-06-24 19:08:20 -04:00
Ben Marsh
bb0e506aac BuildGraph: Rename classes to reduce boilerplate when writing scripts.
* Expression classes (nodes, aggregates, graphs, etc...) are now called BgNode, BgAggregate, etc...
* Evaluated and instantiated objects used by BuildGraph internals are now called BgNodeDef, BgAggregateDef, etc...

#preflight 62b6374161016695a6545b08

[CL 20818158 by Ben Marsh in ue5-main branch]
2022-06-24 18:30:51 -04:00
Ben Marsh
50a74d20ce BuildGraph: Add bytecode compiler and interpreter to allow graph evaluation outside UAT.
#preflight 62b606546067f280916744c8

[CL 20814909 by Ben Marsh in ue5-main branch]
2022-06-24 15:18:50 -04:00
Ben Marsh
601781e498 BuildGraph: Fix exception passing Bg* value types to methods. Need to construct a constant Bg* type rather than passing the wrapped value.
#preflight 62b367ccd76167320e368af6

[CL 20793974 by Ben Marsh in ue5-main branch]
2022-06-23 09:57:56 -04:00
Ben Marsh
1d8d46de10 BuildGraph: Remove unused abstractions added to support reading BuildGraph scripts directly from P4.
#preflight 62b367ccd76167320e368af6

[CL 20781865 by Ben Marsh in ue5-main branch]
2022-06-22 17:14:28 -04:00
Ben Marsh
ff46dfcfce BuildGraph: Various refactorings prior to adding bytecode executor.
* Moved XML script parsing into UAT. We don't need to evaluate this in Horde.
* Added custom node types for script and expression nodes, rather than wrapping native nodes with a custom script task.
#preflight 62b31b76650c9d58579b2ea6

[CL 20773724 by Ben Marsh in ue5-main branch]
2022-06-22 09:56:45 -04:00