Commit Graph

46 Commits

Author SHA1 Message Date
Marc Audy
01b7c9f4f5 Merge UE5/RES @ 15958325 to UE5/Main
This represents UE4/Main @ 15913390 and Dev-PerfTest @ 15913304

[CL 15958515 by Marc Audy in ue5-main branch]
2021-04-08 14:32:07 -04:00
Tim Smith
737ad605ed Fixing Clang warnings in LiveCoding
#rb devin.doucette
#jira UE-112494

[CL 15877566 by Tim Smith in ue5-main branch]
2021-03-31 13:00:20 -04:00
tim smith
1f6c785bcf Removed references to UE4 in Epic modifications
#rb none
#jira UE-111726

#ROBOMERGE-SOURCE: CL 15852110 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)

[CL 15852982 by tim smith in ue5-main branch]
2021-03-29 13:42:59 -04:00
Tim Smith
a2237e050d LiveCoding Re-instancing
LIMITATIONS:

1) Re-instancing will only update UClass instance data.
2) Adding and removing properties should only be done towards the end of a class or structure and can not be followed by complex data types.
3) Adding and removing properties from a base class should not be done if a derived class contains complex data types.

KNOWN ISSUES:

1) Changes to enumerations and structures will not be reflected in existing blueprints.  However, adding new nodes to the blueprint will show the updated enumeration or structure.
2) If a class contains an enumeration or structure as a member, the class will not be re-instanced if enumeration or structure is changed.

CHANGES:

1) LiveCodingServer
1a) Modified to always execute certain static instances during load.
1b) Modified to exclude the _Statics static structures to avoid patching to old copies.

2) Added support for LiveCoding reinstancing
2a) Refactored deferred registration system for UClass, UEnum, and UScriptStruct to use a common system that works for normal game, hot reload and live coding.
2b) Type specific version check data is possible (i.e. enum doesn't have a size)
2c) Single registration static for UClass
2d) Single registration class for all types that is just a blind forward to API.
2e) Static and dynamic registrations use different API entry points to avoid having overloaded argument lists that just apply to one or the other.
2f) Shims for older API

3) New common "Reload" system to avoid using HotReload code.
3a) Support common delegates regardless of who is reloading/reinstancing.
3b) Re-instancing code moved from HotReload to Kismet2 (where the bulk of the re-instance code already existed).
3c) Modified PyWrapper to use new helper class instead of depending on HotRelaod
3d) Added WITH_RELOAD which is defined if HotReload or LiveCoding is enabled.
3e) Modifed existing code to use new #define and delegates.

Robert did the review on the changes covered by Part 2.  Remaining changes are all straightforward.

#rb robert.manuszewski
#jira UE-74493

[CL 15736777 by Tim Smith in ue5-main branch]
2021-03-18 08:13:59 -04:00
Tim Smith
aa8091eb54 LiveCoding fails to load a patch after "Quick Restart" is used.
#rb trivial
#jira UE-110742

[CL 15710313 by Tim Smith in ue5-main branch]
2021-03-16 07:51:47 -04:00
Josh Adams
b0e4357576 - UBT Code changes to remove 32-bit Windows support (C++ code for 32-bit still exists)
#rb marc.audy (concept, not each file)

[CL 15265424 by Josh Adams in ue5-main branch]
2021-01-31 15:09:58 -04:00
Tim Smith
dcfdb67af4 Fixing compile issues with LiveCodingServer.
#rb trivial
#rnx
#jira UE-106463

[CL 15137005 by Tim Smith in ue5-main branch]
2021-01-19 12:58:35 -04:00
Tim Smith
e599eed6a4 Integration of Live++ 1.6.4 (2021/18/01)
This fixes and re-enables a feature of 1.6 that didn't work in an Unreal environment.

#jira none
#rb trivial
#rnx

[CL 15131026 by Tim Smith in ue5-main branch]
2021-01-18 13:02:32 -04:00
Tim Smith
0789d2c5bb Fixing a patching issue with Live coding. If multiple modules are loaded, then depending on which module is being updated, it might fail locating an address region. Disabling a new Live++ 1.6.3 feature for now to prevent this from happening.
#rb trivial
#rnx

[CL 14940186 by Tim Smith in ue5-main branch]
2020-12-16 13:03:26 -04:00
Tim Smith
b48b94b010 Integration of Live++ 1.6.3
#rb none
#rnx

[CL 14926202 by Tim Smith in ue5-main branch]
2020-12-15 09:27:44 -04:00
Marc Audy
ada7c144fa Merge //UE5/Release-Engine-Staging @14903491 to //UE5/Main
[CL 14906022 by Marc Audy in ue5-main branch]
2020-12-11 14:21:20 -04:00
Tim Smith
f678576713 Added a limit to the number of actions live coding will handle by default. The user can change these limits and even request that the compilation try again withot enforcing the limit.
#rb ben.marsh
#jira UE-81480

[CL 14878398 by Tim Smith in ue5-main branch]
2020-12-08 09:47:08 -04:00
Marcus Wassmer
3b81cf8201 Merging using //UE5/Main_to_//UE5/Release-Engine-Staging @14384769
autoresolved files
#rb none

[CL 14384911 by Marcus Wassmer in ue5-main branch]
2020-09-24 00:43:27 -04:00
Ben Marsh
ad49792031 Fix some non-unity issues building LiveCodingConsole.
#rb none
#rnx
#jira

[CL 12394810 by Ben Marsh in 4.25 branch]
2020-03-24 18:51:49 -04:00
Ben Marsh
0e6aa011b3 Copying //UE4/Dev-Build @ CL 11166028 to Dev-Main (//UE4/Dev-Main)
#rb none
#rnx

[CL 11166227 by Ben Marsh in Main branch]
2020-01-29 14:48:18 -05:00
ryan durand
471d972e62 Updating copyright for Engine Developer.
#rnx
#rb none


#ROBOMERGE-SOURCE: CL 10869240 via CL 10869516 via CL 10869902
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870584 by ryan durand in Main branch]
2019-12-26 15:32:37 -05:00
steve robb
14cab21e0c Deprecating ARRAY_COUNT and changing it to UE_ARRAY_COUNT.
Replicated from CL# 7924370.

#rb none


#ROBOMERGE-OWNER: steve.robb
#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 9279060 via CL 9279063
#ROBOMERGE-BOT: (v443-9013191)

[CL 9279836 by steve robb in Main branch]
2019-09-28 08:19:35 -04:00
ben marsh
db589e216b Live Coding: Remove warning about LiveCodingInfo.json files not being found. These files do not exist in the binary release.
#rb none
#jira UE-79622

#ROBOMERGE-SOURCE: CL 8573224 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v407-8568993)

[CL 8573226 by ben marsh in Main branch]
2019-09-09 12:08:50 -04:00
ben marsh
8360edbfd1 LiveCoding: More fixes for object reconstruction when reapplying Live Coding patches. Compiland IDs are now assigned from a central location, which can be queried at any time. The unity file mapping output from UBT is read on demand and used to populate the cache.
Also fix an issue where symbols in anonymous namespace would not use the correct name if an external build system is enabled.

#rb none
#jira UE-79095
#rnx

#ROBOMERGE-SOURCE: CL 8358810 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v401-8057353)

[CL 8358816 by ben marsh in Main branch]
2019-08-27 21:09:33 -04:00
ben marsh
e5079633cf Fix issues related to unnecessary symbol reconstruction in Live Coding modules. Generating separate object files for updated compilands was resulting in symbols being assigned a unique compiland id.
Object files generated for Live Coding compiles are now temporarily renamed to their original versions until the Live Coding patch is generated, after which point they are restored. Would be preferable to incorporate this logic in Live++ directly and just read from the correct files, but the number of changes necessary to support it would make it difficult to integrate new versions.

#rb none
#jira UE-79365, UE-79095, FORT-198753


#ROBOMERGE-OWNER: ben.marsh
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 8310434 via CL 8357056
#ROBOMERGE-BOT: (v401-8057353)

[CL 8358588 by ben marsh in Main branch]
2019-08-27 20:59:19 -04:00
ben marsh
3f58193833 Fix whitespace in LC_LiveModule.cpp.
#jira


#ROBOMERGE-SOURCE: CL 8298254 via CL 8355229
#ROBOMERGE-BOT: (v401-8057353)

[CL 8355370 by ben marsh in Main branch]
2019-08-27 17:34:41 -04:00
Ben Marsh
f2af127fe7 Fix some compile errors running with /permissive- on Windows.
#rb none
#rnx

[CL 8211779 by Ben Marsh in Main branch]
2019-08-22 10:52:35 -04:00
ben marsh
db48c5fa8e Live Coding: Restore patched module state if a packaged game is quick restarted.
#rb none
#jira UE-77396
#rnx

#ROBOMERGE-SOURCE: CL 7713241 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v385-7708028)

[CL 7713242 by ben marsh in Main branch]
2019-08-04 15:02:43 -04:00
ben marsh
beaddc8ced Live Coding: Prevent orphaned console instances if a process never reattaches (due to manual startup, etc...). Job object handle is now duplicated into the child process at startup, and closed immediately.
#rb none
#rnx
#jira UE-77398

#ROBOMERGE-SOURCE: CL 7713232 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v385-7708028)

[CL 7713233 by ben marsh in Main branch]
2019-08-04 14:34:45 -04:00
ben marsh
d6df78234b Live Coding: Fix patches not being reapplied during a quick restart for lazy loaded modules. Now forces such modules to be enabled immediately if they have pending patches.
#rb none
#jira UE-77610
#rnx

#ROBOMERGE-SOURCE: CL 7713016 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v385-7708028)

[CL 7713017 by ben marsh in Main branch]
2019-08-03 19:08:42 -04:00