* ! Reimplement SharedArrayPool because it is internal in .net runtime
* ! Expose PublicArrayPool that maps to our copy of SharedArrayPool
* ! CodeGenerator that remaps System.Buffers.ArrayPool.Shared calls to Sandbox.PublicArrayPool
* ! Don't run ArrayPoolUpgrader in full engine builds
* ! Add tests that verifies ArrayPool.Shared replacements
* ! Remove ArrayPool.Shared from whitelist
* ! Build AST from nodes instead of parsing text
* ! Use Reflection to grab Gen2GcCallback instead of event polling
Avoids unnecessary reparsing and allocations by reusing identical trees, and running generators only on what's been modified, significantly reducing incremental compile times for small changes in large codebases.
* Enable CA2000 in editorconfig
* Remove unused CaptureStdOut class
* Add missing dispose calls in Sandbox.Tools
* Add missing dispose calls in tests
* Add missing dispose calls in launchers
* Add missing dispose calls in Topten.RichtTextKit
* Add missing dispose calls in Engine
* Add missing dispose calls in SboxBuild
* Add nullchecks to a few dispose calls
* Fix more missing disposal calls and leaks
* Disable CA2000 for Textures
* Fix disposing too early in ImageFileTextureGenerator
* Fix disposing codec, ownership is transferred to animation
* Add missing using in ByteStream benchmark
* Extended whitelist tests to use the other method of creating a compiler without explicit compiler settings
* Initialize Compiler._config as it's a struct so everything was zeroed before