marl | context | |
---|---|---|
1 | 3 | |
1,781 | 280 | |
1.1% | 1.1% | |
5.7 | 5.7 | |
5 months ago | 11 days ago | |
C++ | Assembly | |
Apache License 2.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
marl
context
-
Fiber in C++: Understanding the Basics
https://github.com/boostorg/context/blob/6fa6d5c50d120e69b2d...
...and this causes problems, because it can't guarantee that all fields are initialized or switched successfully: https://lists.boost.org/boost-bugs/2014/10/38476.php
Microsoft continually adds and changes fields in the TIB with each new release of Windows. Attempting to implement fibers manually is a ticking time bomb that should never be used in production.
-
History of non-standard-layout class layouts
Marginally disagree. Lots of optimization work takes advantage of knowing how the ABI works. Knowing you can pass two register returns on SysV is a particularly common optimization point. Writing context switching routines that can be reliably ported (ex, boost-context) requires this consistency of ABI. As a final example, cache locality optimizations require the ability to reason about ABI layout.
- How do you implement green threads?
What are some alternatives?
stack-switching - A repository for the stack switching proposal.
gruvi - Async IO for Python, Simplified
ghost-userspace
cgreenlet - Coroutines for C/C++
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
assembly - assembly projects
concurrencpp - Modern concurrency for C++. Tasks, executors, timers and C++20 coroutines to rule them all