terminal/src
Leonard Hecker f2386de422
Improve performance and binary size of til::enumset (#11493)
This commit approximately doubles the performance of til::enumset
and reduces it's binary footprint by approximately 1kB.
Most of the binary size can be attributed to exception handling.

Unfortunately this commit removes assertions that the given values are less than
the number of bits in the `underlying_type`. However I believe this to be a good
trade-off as the tests previously only happened at runtime, while tests at
compile time would be highly preferable. Such tests are technically possible,
however MSVC fails to compile (valid) `static_assert`s containing
`static_cast`s over a parameter pack at the time of writing.
With future MSVC versions such checks can be added to this class.

This change was initially discussed in #10492, but was forgotten to
be considered before it was merged. Since the work was already done,
this commit re-introduces the optimization. It's free!

## PR Checklist
* [x] I work here.
* [x] Tests added/passed

## Validation Steps Performed
* Run `printf '\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'` in WSL
* A wild dotted line appears ✔️
2021-11-23 18:44:58 +00:00
..
api-ms-win-core-synch-l1-2-0 Introduce a api-ms-win-core-synch-l1-2-0 shim for Windows 7 (#10559) 2021-07-07 16:48:28 +00:00
buffer Consolidate the color palette APIs (#11784) 2021-11-23 18:28:55 +00:00
cascadia Fix AltGr not working in the settings UI (#11808) 2021-11-23 18:30:36 +00:00
dep Move all wildcards into targets or expand them (#6406) 2020-06-08 14:01:47 -07:00
host Consolidate the color palette APIs (#11784) 2021-11-23 18:28:55 +00:00
inc Improve performance and binary size of til::enumset (#11493) 2021-11-23 18:44:58 +00:00
interactivity Consolidate the color palette APIs (#11784) 2021-11-23 18:28:55 +00:00
internal Implement Default Terminal (#7489) 2021-03-26 17:09:49 -05:00
propsheet Wrap these commands with quotes (#11807) 2021-11-23 17:01:59 +00:00
propslib Consolidate the color palette APIs (#11784) 2021-11-23 18:28:55 +00:00
renderer Use nearby fonts for font fallback (#11764) 2021-11-16 23:22:02 +00:00
server Migrate OSS up to f9a844dbd 2021-09-21 16:22:57 -05:00
staging Merged PR 6147892: Make til::feature build in the OS 2021-06-11 17:57:36 +00:00
terminal Improve performance and binary size of til::enumset (#11493) 2021-11-23 18:44:58 +00:00
testlist Reflect testlist change from OS 2021-03-29 15:24:43 -05:00
til Improve performance and binary size of til::enumset (#11493) 2021-11-23 18:44:58 +00:00
tools Upgrade to Windows SDK 22000 (#11728) 2021-11-18 18:08:26 +00:00
tsf Fix Touch Keyboard invocation issue (#11389) 2021-10-04 14:29:56 +00:00
types Add a file for storing elevated-only state (#11222) 2021-11-13 01:58:43 +01:00
winconpty Implement and action for manually clearing the Terminal (and conpty) buffer (#10906) 2021-09-02 14:59:42 +00:00
ConsolePerf.regions.xml Tab to spaces (#578) 2019-05-13 18:06:36 -07:00
ConsolePerf.wprp Set keyword flags on all tracelog events (#10098) 2021-05-14 23:14:26 +00:00
StaticAnalysis.ruleset Fix SA for Visual Studio 16.8 (#8551) 2020-12-11 05:04:30 +00:00
Terminal.wprp Add even MORE logging for defterm (#11537) 2021-10-19 13:29:18 -07:00
common.build.post.props Add support for branch- and branding-based feature flagging (#10361) 2021-06-10 23:09:52 +00:00
common.build.pre.props Upgrade to Windows SDK 22000 (#11728) 2021-11-18 18:08:26 +00:00
common.build.tests.props Enable /Zc:preprocessor (#10593) 2021-07-13 23:00:11 +00:00
common.pgo.compile.props Implement PGO in pipelines for AMD64 architecture; supply training test scenarios (#10071) 2021-05-13 21:12:30 +00:00
common.pgo.runtime.props Implement PGO in pipelines for AMD64 architecture; supply training test scenarios (#10071) 2021-05-13 21:12:30 +00:00
cppwinrt.build.post.props Upgrade to C++/WinRT 2.0.210825.3 (#11188) 2021-09-10 21:33:13 +00:00
cppwinrt.build.pre.props Compile OpenConsoleProxy without CRT (#11610) 2021-10-26 19:08:49 +00:00
dirs Merged PR 6147892: Make til::feature build in the OS 2021-06-11 17:57:36 +00:00
features.xml Introduce AtlasEngine - A new text rendering prototype (#11623) 2021-11-13 00:10:06 +00:00
project.inc Merged PR 6654362: [Git2Git] OS build fixes for f9b97c488 2021-11-09 23:16:26 +00:00
project.unittest.inc Merged PR 4915530: Reflect OS Build fixes on top of 58f5d7c7 2020-07-13 23:00:53 +00:00
unit.tests.x64.runsettings Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
unit.tests.x86.runsettings Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
wap-common.build.post.props Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
wap-common.build.pre.props Upgrade to Windows SDK 22000 (#11728) 2021-11-18 18:08:26 +00:00