userJames Kingcancel
reposboxcancel

1,002 Commits over 1,369 Days - 0.03cph!

1 Year Ago
Handle encountering MethodBase operands in GetStackDelta
1 Year Ago
0ms hotload fast path poc when only method bodies change using MonoMod Biggest flaw of this is detecting the changes, Ziks has some good ideas with comparing the AST https://files.facepunch.com/matt/1b2611b1/sbox-dev_My23jH4uYG.mp4 Print individual changes during compile, show node paths WIP check if all changes are in method bodies Add attributes to package assemblies describing changed methods * SupportsILHotloadAttribute is added if only method bodies change * MethodBodyChangeAttribute is added for each changed method Yet to properly support nested declaring types and methods with overloads. ILHotload looks for SupportsILHotload and MethodBodyChange attributes Fixed methods with identical IL not being replaced by ILHotload ILHotload should never run with a debugger attached Clean up dead code Detour using a generated dynamic method copy from the replacing method Documentation for Compiler.SyntaxTree.cs Added CompilerSettings.SourcePathFilter predicate Boilerplate for writing ILHotload tests Fixed how file changes are emulated in FastPathTest A bit more flexibility in fast path test case code preprocessing Added failing fast path hotload test for changing method signatures ILHotload: changes must be specifically within a BlockSyntax of a method Added Compiler.UpdateParseOptions() for tests to use Don't use ILHotload if a preprocessor define changed Incremental syntax tree parsing Throw when trying to debug an ILHotload swap during a test Basic incremental compilation Make generated code more deterministic, nicer for incremental compile Keep track of which assembly types are actually loaded from Re-use compiler options where possible Changed fast hotload log to a trace Make OnlyMethodBodiesChanged multithreaded, fixed multiple changes in one file Failing test for property body changes Cleanup ILHotload tests, failing test for overloaded method Refactor AST processing for ILHotload Moved to Sandbox.Generator, and now tags changed methods with an attribute rather than referencing them from assembly-level attributes Fixes after refactor, a bit ugly at the moment Support fast hotload for property accessors NoticeWidget shows ms if duration < 1s Call UISystem.OnHotload after an ILHotload ILHotload test for nested blocks Fixed ILHotload change detection for nested blocks Added hotload_fast engine convar to enable / disable IL hotload
1 Year Ago
0ms hotload fast path poc when only method bodies change using MonoMod Biggest flaw of this is detecting the changes, Ziks has some good ideas with comparing the AST https://files.facepunch.com/matt/1b2611b1/sbox-dev_My23jH4uYG.mp4 Print individual changes during compile, show node paths WIP check if all changes are in method bodies Add attributes to package assemblies describing changed methods * SupportsILHotloadAttribute is added if only method bodies change * MethodBodyChangeAttribute is added for each changed method Yet to properly support nested declaring types and methods with overloads. ILHotload looks for SupportsILHotload and MethodBodyChange attributes Fixed methods with identical IL not being replaced by ILHotload ILHotload should never run with a debugger attached Clean up dead code Detour using a generated dynamic method copy from the replacing method Documentation for Compiler.SyntaxTree.cs Added CompilerSettings.SourcePathFilter predicate Boilerplate for writing ILHotload tests Fixed how file changes are emulated in FastPathTest A bit more flexibility in fast path test case code preprocessing Added failing fast path hotload test for changing method signatures ILHotload: changes must be specifically within a BlockSyntax of a method Added Compiler.UpdateParseOptions() for tests to use Don't use ILHotload if a preprocessor define changed Incremental syntax tree parsing Throw when trying to debug an ILHotload swap during a test Basic incremental compilation Make generated code more deterministic, nicer for incremental compile Keep track of which assembly types are actually loaded from Re-use compiler options where possible Changed fast hotload log to a trace Make OnlyMethodBodiesChanged multithreaded, fixed multiple changes in one file Failing test for property body changes Cleanup ILHotload tests, failing test for overloaded method Refactor AST processing for ILHotload Moved to Sandbox.Generator, and now tags changed methods with an attribute rather than referencing them from assembly-level attributes Fixes after refactor, a bit ugly at the moment Support fast hotload for property accessors NoticeWidget shows ms if duration < 1s Call UISystem.OnHotload after an ILHotload ILHotload test for nested blocks Fixed ILHotload change detection for nested blocks
1 Year Ago
More helpful error message when trying to get default value of new field
1 Year Ago
Warn rather than throw if a dictionary key becomes null Failing test reproducing #933 Warn when unable to find a scope method, instead of error Fixed error delegates causing an error themselves on upgrade Fixes #933
1 Year Ago
NoticeWidget shows ms if duration < 1s Call UISystem.OnHotload after an ILHotload ILHotload test for nested blocks Fixed ILHotload change detection for nested blocks
1 Year Ago
0ms hotload fast path poc when only method bodies change using MonoMod Biggest flaw of this is detecting the changes, Ziks has some good ideas with comparing the AST https://files.facepunch.com/matt/1b2611b1/sbox-dev_My23jH4uYG.mp4 Print individual changes during compile, show node paths WIP check if all changes are in method bodies Add attributes to package assemblies describing changed methods * SupportsILHotloadAttribute is added if only method bodies change * MethodBodyChangeAttribute is added for each changed method Yet to properly support nested declaring types and methods with overloads. ILHotload looks for SupportsILHotload and MethodBodyChange attributes Fixed methods with identical IL not being replaced by ILHotload ILHotload should never run with a debugger attached Clean up dead code Detour using a generated dynamic method copy from the replacing method Documentation for Compiler.SyntaxTree.cs Added CompilerSettings.SourcePathFilter predicate Boilerplate for writing ILHotload tests Fixed how file changes are emulated in FastPathTest A bit more flexibility in fast path test case code preprocessing Added failing fast path hotload test for changing method signatures ILHotload: changes must be specifically within a BlockSyntax of a method Added Compiler.UpdateParseOptions() for tests to use Don't use ILHotload if a preprocessor define changed Incremental syntax tree parsing Throw when trying to debug an ILHotload swap during a test Basic incremental compilation Make generated code more deterministic, nicer for incremental compile Keep track of which assembly types are actually loaded from Re-use compiler options where possible Changed fast hotload log to a trace Make OnlyMethodBodiesChanged multithreaded, fixed multiple changes in one file Failing test for property body changes Cleanup ILHotload tests, failing test for overloaded method Refactor AST processing for ILHotload Moved to Sandbox.Generator, and now tags changed methods with an attribute rather than referencing them from assembly-level attributes Fixes after refactor, a bit ugly at the moment Support fast hotload for property accessors
1 Year Ago
Hotload timing info tweaks Added hotload_paths convar Added EnumUpgrader Made DefaultUpgrader more strict WIP code gen in DefaultUpgrader Skip IntPtr / UIntPtr Failing test for upgrading nested structs with codegen Fixed directly upgrading struct fields using codegen
1 Year Ago
Added failing test reproducing #929 Stricter test for #929 Fixed #929 Fixed IServerDll hotload not being able to resolve package assemblies Fixed ReflectionExtensions.ResolveType Used to not respect the assembly load context of the target module
1 Year Ago
Support fast hotload for property accessors
1 Year Ago
0ms hotload fast path poc when only method bodies change using MonoMod Biggest flaw of this is detecting the changes, Ziks has some good ideas with comparing the AST https://files.facepunch.com/matt/1b2611b1/sbox-dev_My23jH4uYG.mp4 Print individual changes during compile, show node paths WIP check if all changes are in method bodies Add attributes to package assemblies describing changed methods * SupportsILHotloadAttribute is added if only method bodies change * MethodBodyChangeAttribute is added for each changed method Yet to properly support nested declaring types and methods with overloads. ILHotload looks for SupportsILHotload and MethodBodyChange attributes Fixed methods with identical IL not being replaced by ILHotload ILHotload should never run with a debugger attached Clean up dead code Detour using a generated dynamic method copy from the replacing method Documentation for Compiler.SyntaxTree.cs Added CompilerSettings.SourcePathFilter predicate Boilerplate for writing ILHotload tests Fixed how file changes are emulated in FastPathTest A bit more flexibility in fast path test case code preprocessing Added failing fast path hotload test for changing method signatures ILHotload: changes must be specifically within a BlockSyntax of a method Added Compiler.UpdateParseOptions() for tests to use Don't use ILHotload if a preprocessor define changed Incremental syntax tree parsing Throw when trying to debug an ILHotload swap during a test Basic incremental compilation Make generated code more deterministic, nicer for incremental compile Keep track of which assembly types are actually loaded from Re-use compiler options where possible Changed fast hotload log to a trace Make OnlyMethodBodiesChanged multithreaded, fixed multiple changes in one file Failing test for property body changes Cleanup ILHotload tests, failing test for overloaded method Refactor AST processing for ILHotload Moved to Sandbox.Generator, and now tags changed methods with an attribute rather than referencing them from assembly-level attributes Fixes after refactor, a bit ugly at the moment
1 Year Ago
Fixes after refactor, a bit ugly at the moment
1 Year Ago
Refactor AST processing for ILHotload Moved to Sandbox.Generator, and now tags changed methods with an attribute rather than referencing them from assembly-level attributes
1 Year Ago
Re-use compiler options where possible Changed fast hotload log to a trace Make OnlyMethodBodiesChanged multithreaded, fixed multiple changes in one file Failing test for property body changes Cleanup ILHotload tests, failing test for overloaded method
1 Year Ago
A bit more flexibility in fast path test case code preprocessing Added failing fast path hotload test for changing method signatures ILHotload: changes must be specifically within a BlockSyntax of a method Added Compiler.UpdateParseOptions() for tests to use Don't use ILHotload if a preprocessor define changed Incremental syntax tree parsing Throw when trying to debug an ILHotload swap during a test Basic incremental compilation Make generated code more deterministic, nicer for incremental compile Keep track of which assembly types are actually loaded from
1 Year Ago
0ms hotload fast path poc when only method bodies change using MonoMod Biggest flaw of this is detecting the changes, Ziks has some good ideas with comparing the AST https://files.facepunch.com/matt/1b2611b1/sbox-dev_My23jH4uYG.mp4 Print individual changes during compile, show node paths WIP check if all changes are in method bodies Add attributes to package assemblies describing changed methods * SupportsILHotloadAttribute is added if only method bodies change * MethodBodyChangeAttribute is added for each changed method Yet to properly support nested declaring types and methods with overloads. ILHotload looks for SupportsILHotload and MethodBodyChange attributes Fixed methods with identical IL not being replaced by ILHotload ILHotload should never run with a debugger attached Clean up dead code Detour using a generated dynamic method copy from the replacing method Documentation for Compiler.SyntaxTree.cs Added CompilerSettings.SourcePathFilter predicate Boilerplate for writing ILHotload tests Fixed how file changes are emulated in FastPathTest
1 Year Ago
Fixed how file changes are emulated in FastPathTest
1 Year Ago
Documentation for Compiler.SyntaxTree.cs Added CompilerSettings.SourcePathFilter predicate Boilerplate for writing ILHotload tests
1 Year Ago
Fixed methods with identical IL not being replaced by ILHotload
1 Year Ago
Print individual changes during compile, show node paths WIP check if all changes are in method bodies Add attributes to package assemblies describing changed methods * SupportsILHotloadAttribute is added if only method bodies change * MethodBodyChangeAttribute is added for each changed method Yet to properly support nested declaring types and methods with overloads. ILHotload looks for SupportsILHotload and MethodBodyChange attributes
1 Year Ago
Hotload timing info tweaks Added hotload_paths convar Added EnumUpgrader Made DefaultUpgrader more strict WIP code gen in DefaultUpgrader Skip IntPtr / UIntPtr Failing test for upgrading nested structs with codegen Fixed directly upgrading struct fields using codegen Print individual changes during compile, show node paths WIP check if all changes are in method bodies Incremental compile proof of concept
1 Year Ago
Failing test for upgrading nested structs with codegen Fixed directly upgrading struct fields using codegen
1 Year Ago
Hotload timing info tweaks Added hotload_paths convar Added EnumUpgrader Made DefaultUpgrader more strict WIP code gen in DefaultUpgrader Skip IntPtr / UIntPtr
1 Year Ago
Disable detailed hotload diagnostics unless hotload_log >= 2
1 Year Ago
Add some logging to AsyncTasks.TaskCancel2 To help investigate #210 Allow TaskSource async methods to persist, so they can cancel nicely Use framework methods to find async state machines / tasks A bit more protected against changes Bump up max async task cancellation count
1 Year Ago
Get rid of debug hotload log
1 Year Ago
Added failing test reproducing #869 Fixed #869, emit a warning when fields change type instead of an error Fixed sboxgame/issues#3043
1 Year Ago
Failing test case to reproduce #876 Fixed #876 HOTLOAD_NOCATCH will stop hotload from catching exceptions
1 Year Ago
Failing test for lambdas implemented as static methods Split nested scope method delegate tests Support for lambdas with nested scope methods
1 Year Ago
Middle-mouse drag to pan camera in FirstPersonCamera (#854)
1 Year Ago
Middle-mouse drag to pan camera in FirstPersonCamera
1 Year Ago
Test for block copying List<T> or T[] Lists of structs can use array block copying again More direct copy for StructArrayConverter Fix possible NRE when logging about methods without declaring types Fixed setting size of block-copied list
1 Year Ago
Fixed setting size of block-copied list
1 Year Ago
Fix possible NRE when logging about methods without declaring types
1 Year Ago
Test for block copying List<T> or T[] Lists of structs can use array block copying again More direct copy for StructArrayConverter
1 Year Ago
Fixed case where TryLoadGameResource<T> throws instead of returns false
1 Year Ago
Fixed .csproj for tool packages not referencing EditorBase
1 Year Ago
Support reading / writing Rays as client input
1 Year Ago
Escape HTML in console messages, only show first line (#819) * Escape HTML in console messages Inspecting stuff still works fine * Only show the first line of console messages Inspecting them will show the rest
1 Year Ago
Escape HTML in console messages Inspecting stuff still works fine Only show the first line of console messages Inspecting them will show the rest
1 Year Ago
Demote SwappedOutAssemblyReference error to warning Group hotload result entries with the same message to avoid console spam Fixed NRE in HotloadResult.ToString() Log an exception if one type takes over 80% of total hotload, and >500ms
1 Year Ago
Demote SwappedOutAssemblyReference error to warning Group hotload result entries with the same message to avoid console spam Fixed NRE in HotloadResult.ToString() Log an exception if one type takes over 80% of total hotload, and >500ms
1 Year Ago
Fixed NRE in HotloadResult.ToString()
1 Year Ago
Demote SwappedOutAssemblyReference error to warning Group hotload result entries with the same message to avoid console spam Escape HTML in console messages Inspecting stuff still works fine Only show the first line of console messages Inspecting them will show the rest
1 Year Ago
Added failing hotload test for processing a cleared list Hotload processes all the elements of the inner array, when they could all be skipped Added ListUpgrader Helps with cases like #818
1 Year Ago
Don't use [CanEdit(SomeType, typeName)] for all SomeType properties Unless typeName is just "sometype" https://files.facepunch.com/ziks/1b1711b1/5BoYCf6102.png
1 Year Ago
Use in-place upgrades where possible in static fields Fixes #790 Some extra safety in DictionaryUpgrader For handling in-place upgrades if key hashes change
1 Year Ago
Support for SceneCamera.Ortho
1 Year Ago
Added way to ignore assemblies by name in hotloads Ignore Sandbox.Tools during client / server / menu hotloads Fixes #765
1 Year Ago
Added failing test for hotloading constructed generic MethodInfos Fixed hotloading generic MethodInfos Added extra test for MethodInfos with generic declaring types Added more delegate hotloading tests, one failing Fixed hotload case with lambdas in generic declaring type Fixes #759