Foundation for hana
Module | Description | Reference |
---|---|---|
fmt |
Modern formatter with char8_t | fmt (MIT), STL (Apache-2.0) |
crash |
Default crash handler with stacktrace | SakuraEngine (MIT) |
graphviz |
.dot generator for C++ | UGraphviz (MIT) |
HString |
A string compatible with all base character types | OpenString (MIT) |
LogSystem |
High-performance log system | fmtlog (MIT) |
ModuleManager |
Load dependency libraries into dependency graphs using JSON format | SakuraEngine (MIT) |
- cr (MIT)
- xxhash (BSD 2-Clause License)
- yyjson (MIT)
- parallel-hashmap (Apache-2.0)
hana::LogSystem is modified from fmtlog::logOnce. It just pushes static info along with formatted msg body onto the queue, which causes smaller program size but higher front-end latency. In my test, it has a front-end latency of approximately 75ns, while static fmtlog::log has a front-end latency of approximately 10ns.
An implementation of intrusive smart pointers, which stuffing an 8-byte counter block into the class header. Unlike std, only RCWeak will add weak reference, and resources of RC will be destroyed when both strong and weak reference counter reach 0.
- Fix the bug that log pattern can't support "{{}}"
- Set up callback interfaces of crash handler for users
- Cross-platform completion