sgcl
lone
sgcl | lone | |
---|---|---|
14 | 7 | |
141 | 299 | |
- | 2.0% | |
8.2 | 9.7 | |
25 days ago | 26 days ago | |
C++ | C | |
zlib License | GNU Affero General Public License v3.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.
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++
lone
-
How to Write a (Lisp) Interpreter (In Python)
I made something somewhat close to that: a freestanding lisp. It targets the Linux kernel directly. No libc.
https://github.com/lone-lang/lone
-
Boehm Garbage Collector
> register scanning isn't portable
Certainly not but it wasn't particularly hard to implement either. I just wrote some inline assembly for every architecture. Here's my programming language's x86_64 and aarch64 implementations:
https://github.com/lone-lang/lone/blob/master/architecture/x...
https://github.com/lone-lang/lone/blob/master/architecture/a...
-
Show HN: Self-contained Linux apps in Lisp
Not too long ago, a project of mine was shared here on HN.
https://news.ycombinator.com/item?id=38126052
In that thread I wrote:
> I have this vision in my mind: embedding lone modules into sections of the lone ELF and shipping it out. Zero dependencies, self-contained.
I've been working on that since that day. Proud to say I've gotten it to work and thought I'd make it the subject of my first Show HN. Some free software projects gained features along the way too.
The link is to an article with a proper demonstration, technical details and what happened in the past few weeks.
The complete repository itself can be found here:
https://github.com/lone-lang/lone
I've completely reorganized it since the last thread. Would be very happy if you guys tried it out.
- A standalone zero-dependency Lisp for Linux
-
Decoded: GNU Coreutils
To test my programming language. It's a freestanding lisp interpreter that doesn't link to libc. I wrote the code that handles the environment variables and in order to test it I needed full control over the program's inputs including its environment. The env utility provides this control by emptying the environment and setting only the variables I specify, solving 90% of the problem. Only thing I still can't control is argv[0]. With this new feature upstreamed, my test suite will be complete.
Here's the code if you'd like to take a look:
https://github.com/lone-lang/lone#testing
https://github.com/lone-lang/lone/blob/master/scripts/test.b...
-
Writing Small CLI Programs in Common Lisp (2021)
> only to be confronted with the notorious 'incompatible glibc version error'. It's super annoying.
I started making my own freestanding Linux Lisp because of this exact issue. It's nowhere near as performant as something like SBCL but it's small and once compiled has no dependencies and will literally run on any Linux.
https://github.com/lone-lang/lone
I'm taking a break from this project but I plan to add a feature where I can put a Lisp script into the ELF itself so I can just copy it with the scripts included.
-
The 90s Developer Starter Pack
The kernel just puts the data contiguously on the stack. Obtaining pointers to them can seem somewhat magical if you're writing a nolibc program but I wouldn't call it horrible.
I implemented it for my programming language with some rather simple assembly code:
https://github.com/lone-lang/lone/blob/master/arch/x86_64.c#...
https://github.com/lone-lang/lone/blob/master/arch/aarch64.c...
What are some alternatives?
rune - Rune is a programming language developed to test ideas for improving security and efficiency.
mxe - MXE (M cross environment)
valuable - A C++ smart-pointer with value-semantics 💎
ohrrpgce - Official Hamster Republic RPG Construction Engine (mirror of SVN repository)
gcpp - Experimental deferred and unordered destruction library for C++
CIEL - CIEL Is an Extended Lisp. Scripting with batteries included.
nottinygc - Higher-performance allocator for TinyGo WASI apps
dotfiles - config info
kit - not-in-progress compiler for Windows/Linux/macOS
freebsd-src - The FreeBSD src tree publish-only repository. Experimenting with 'simple' pull requests....
bdwgc - The Boehm-Demers-Weiser conservative C/C++ Garbage Collector (bdwgc, also known as bdw-gc, boehm-gc, libgc)
janet-sh - Shorthand shell like functions for janet.