sgcl
gcpp
sgcl | gcpp | |
---|---|---|
14 | 12 | |
141 | 912 | |
- | - | |
8.2 | 10.0 | |
24 days ago | almost 5 years ago | |
C++ | C++ | |
zlib License | MIT License |
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.
sgcl
-
Garbage Collection for Systems Programmers
The SGCL repository contains the source code for this benchmark that uses the tracked pointers: https://github.com/pebal/sgcl/blob/main/examples/treap/treap...
- SGCL: A real-time Garbage Collector for C++
-
Boehm Garbage Collector
You can look at the SGCL garbage collector for C++: https://github.com/pebal/sgcl. It works in a separate thread, is locks-free and never stops the world.
-
The missing C++ smart pointer
It will never be called gc_ptr because C++ programmers have an allergy to the term GC. However, an attempt was made to implement a similar solution. Take a look at tracked_ptr: https://github.com/pebal/sgcl
-
Boehm-Demers-Weiser Garbage Collector
SGCL is a real-time garbage collector for C++ without any pauses.
https://github.com/pebal/sgcl
-
Now the C++ removed garbage collector support, is it still possible the have a global garbage collector in a C++ application?
Removed GC support was useless. You can have GC pointers in C++.
-
The Year of C++ Successor Languages
Mutators are threads that allocate memory and manipulate pointers, they can work completely independently of the GC. A mutator needs only to tag an object when copies or moves a pointer to this object. The GC detects this tag and marks the object as alive. Here is a working implementation for C++: https://github.com/pebal/sgcl
-
Optimizing Concurrent Mark&Sweep latency? What are the ways?
I don't know Rust but you can have a pauseless GC in C++. You just need to provide asynchronous access to root pointers.
- SGCL: Real-time garbage collector for C++
gcpp
- C++: Deferred_ptr, Deferred_heap, Deferred_allocator
-
What feature would you like to see in C++26?
static reflection and pattern-matching, as everyone is saying, but I'd also like to see a garbage-collecting smart-pointer in the standard library similar in design to Herb Sutter's deferred_ptr
-
Rust went from side project to world’s fastest growing language
There are definitely fringe edge cases where C++ can do things that Rust simply cannot, currently.
I'm thinking of things like Herb Sutter's deferred_heap (https://github.com/hsutter/gcpp) that give you GC-like abstraction. It's pretty cool that this is possible to write in vanilla C++ with decent ergonomics. I tried to make something similar awhile back and hit a wall in terms of making something that would be pleasant to use.
Rust has several on-going experiments with making a nice GC, along with good support for arenas. (If you can use arenas, they're great.)
-
Now the C++ removed garbage collector support, is it still possible the have a global garbage collector in a C++ application?
Check out this library: https://github.com/hsutter/gcpp
-
tracked_ptr - when shared_ptr is not enough
Hm, yeah, that's pretty unclear. My understanding is based off the link to Herb's proposal in the OP, which I understand this to be an evolution of.
-
What do you think will be the future direction for C++ evolution?
Re garbage collection: My understanding was that the standard API was intended for interop with managed languages, not for pure C++ code to use, although I could be mistaken. I don't think garbage collection is entirely a lost cause, for instance Herb Sutter's work, which I think he wants to integrate in Cppfront, would be a great way to do it. Imo, his garbage collection ([1] [2]) could be much better than D or Nim, because it has easily controllable performance characteristics. You don't pay for it if you won't use it, and it's unlikely that libraries you pull in would need it, which is imo what makes programming without the "optional" GC in D and Nim difficult.
- Any guesses as to how C++ will turn out w.r.t. garbage collection?
-
Why do people want a garbage collector in C++?
Herb Sutter
-
New "Java to C++" code converter tool for beginners
Something like gcpp would be quite nice. That and a intelligent scope detector could make use of isolated and local GC when it detects that some objects stays together and have similar lifetime.
What are some alternatives?
rune - Rune is a programming language developed to test ideas for improving security and efficiency.
graph_ptr - A smart ptr implementation that can handle cycles, similar to herb sutter's deferred_ptr.
valuable - A C++ smart-pointer with value-semantics 💎
convey - Layer 4 load balancer with dynamic configuration loading
nottinygc - Higher-performance allocator for TinyGo WASI apps
pkg-fmt - Metadata to support C++ packaging
kit - not-in-progress compiler for Windows/Linux/macOS
ergo - std-alternative prototyping / education library
bdwgc - The Boehm-Demers-Weiser conservative C/C++ Garbage Collector (bdwgc, also known as bdw-gc, boehm-gc, libgc)
cargo-script-mvs - Pre-RFC for merging cargo-script into cargo
aplette - This is a new take on an old language: APL. The goal is to pare APL down to its elegant essence. This version of APL is oriented toward scripting within a Unix-style computing environment.
NeatReflection - KISS C++20 Type Reflection using IFC files