GitShow/facebook/fatal
facebook

fatal

Fatal is a library for fast prototyping software in modern C++. It provides facilities to enhance the expressive power of C++. The library is heavily based on template meta-programming, while keeping the complexity under-the-hood.

by facebook
Star on GitHubForkWebsite

C++

1.0k stars159 forks51 contributorsActive · 15h agoSince 2014v2026.08.24.00

Meet the team

See all 51 on GitHub →
juchem
juchem1.0k contributions
yfeldblum
yfeldblum109 contributions
r-barnes
r-barnes5 contributions
andrewjcg
andrewjcg4 contributions
yahayaohinoyi
yahayaohinoyi3 contributions
dependabot[bot]Bot
dependabot[bot]3 contributions
nataliejameson
nataliejameson2 contributions
arunsathiya
arunsathiya1 contribution

Languages

View on GitHub →
C++99.7%
Shell0.2%
C0.1%

Commit activity

Last 12 weeks · 3 commits

Full graph →

Community health

4 of 6 standards met

Community profile →
75
✓README✓License✓Contributing✓Code of Conduct○Issue Template○PR Template

Recent PRs & issues

Active · 1 in progress · Last activity 15h ago
See all on GitHub →
rootkiller6788
Fix circular_queue pop_front(count) debug assert and empty()OpenPR

Summary Two bugs in : 1. aborts in debug builds on valid input. The debug assumption is wrong: wraps to zero exactly when the first chunk reaches the end of the backing buffer, which is unrelated to . Reproduced: aborts at circular_queue.h:262 because is false while is true. Similarly a wrap-around pop with aborts because is true while is false. The only input that survived was exactly. The assertion now encodes the real safety precondition of the second loop: when more elements remain to be destroyed beyond the first chunk, the buffer must have wrapped around (so was reset to 0). 2. reports the wrong value. It returned (emptiness of the backing ) instead of . After all elements are popped, is 0 but stays false because the backing vector still holds storage. This breaks the canonical idiom (it never terminates) and lets / read already-destroyed elements. It now returns . Test plan Added regression tests: , , . aborts against the old header (wrong assumption); hangs forever against the old . Full suite passes with the fix (13/13), plus a randomized model test (5000 mixed push/pop ops, std::deque oracle) and a wrap-around test.

rootkiller6788 · 1d ago

Recent fixes

View closed PRs →
rootvector2
fix destructor call in circular_queue pop_front countMergedPR

see in circular_queue pop_front with count there is one small mistake queue offset destructor is called directly but it should call value destructor because queue element is union item_t and destructor must be called on value clang is giving compile error when using std string i changed it to queue offset dot value destructor and tested with std string in wrapping case now it compiles and works fine

rootvector2 · 5mo ago
salmanmkc
Upgrade GitHub Actions for Node 24 compatibilityMergedPR

Summary Upgrade GitHub Actions to their latest versions to ensure compatibility with Node 24, as Node 20 will reach end-of-life in April 2026. Changes Context Per GitHub's announcement, Node 20 is being deprecated and runners will begin using Node 24 by default starting March 4th, 2026. Why this matters Node 20 EOL: April 2026 Node 24 default: March 4th, 2026 Action**: Update to latest action versions that support Node 24 Security Note Actions that were previously pinned to commit SHAs remain pinned to SHAs (updated to the latest release SHA) to maintain the security benefits of immutable references. Testing These changes only affect CI/CD workflow configurations and should not impact application functionality. The workflows should be tested by running them on a branch before merging.

salmanmkc · 5mo ago
yfeldblum
c++ >= 17MergedPR

Differential Revision: D76822242

yfeldblum · 1y ago
Structured data for AI agents

Repository: facebook/fatal. Description: Fatal is a library for fast prototyping software in modern C++. It provides facilities to enhance the expressive power of C++. The library is heavily based on template meta-programming, while keeping the complexity under-the-hood. Stars: 1017, Forks: 159. Primary language: C++. Languages: C++ (99.7%), Shell (0.2%), C (0.1%). Homepage: https://www.facebook.com/groups/libfatal/ Latest release: v2026.08.24.00 (15h ago). Open PRs: 1, open issues: 0. Last activity: 15h ago. Community health: 75%. Top contributors: juchem, yfeldblum, r-barnes, andrewjcg, yahayaohinoyi, dependabot[bot], nataliejameson, arunsathiya, bdd, chadaustin and others.

·@ofershap

Replace github.com with gitshow.dev