userJames Kingcancel

7,945 Commits over 3,745 Days - 0.09cph!

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
WIP prism tool
1 Year Ago
Prism brush type
1 Year Ago
Box tool interaction fixes
1 Year Ago
Can draw new geometry with the box tool
1 Year Ago
MoveTool tweaks to stay aligned to the grid ToolBar options are now checkable Nicer behaviour when dragging nested CSGs into viewport
1 Year Ago
Fixed rotation oddities
1 Year Ago
Fixed gizmos being invisible
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
Gizmo API change
1 Year Ago
Nicer drag / drop to import nested assets
1 Year Ago
Ctrl+C / Ctrl+V, Delete keyboard shortcuts
1 Year Ago
Removed logging Can now drag / drop multiple brushes at once in the brush list
1 Year Ago
Basic rotate tool Rotate all selected objects Rotation snapping
1 Year Ago
Can now select / deselect brushes by clicking in the viewport Tweaked tool icons Box tool visual tweaks Fixed serializing bounds of compiled solids
1 Year Ago
Store mins and maxes instead of BBox in compiled solids
1 Year Ago
Added a BBox.Contains(pos) overload that takes an epsilon Added CsgPlane.TryTrace(ray)
1 Year Ago
BoxTool only operates on one brush at a time for now WIP raycasting
1 Year Ago
Added ConvexSolid.Bounds in compiled assets
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
Fix position widget being relative to object rotation Split up tools into classes, add tool bar
1 Year Ago
Drag and drop in tree view to reorder brushes
1 Year Ago
Fixed editor brushes breaking after saving
1 Year Ago
Refresh geometry if a referenced CsgAsset changes
1 Year Ago
Edit counter