mark-sweep VS lisp2-gc

Compare mark-sweep vs lisp2-gc and see what are their differences.

mark-sweep

A simple mark-sweep garbage collector in C (by munificent)

lisp2-gc

A simple implementation of the LISP2 mark-compact GC algorithm (by munificent)
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
mark-sweep lisp2-gc
12 1
727 38
- -
10.0 10.0
over 4 years ago about 10 years ago
C C
GNU General Public License v3.0 or later GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

mark-sweep

Posts with mentions or reviews of mark-sweep. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-05-12.
  • Roll A Lisp In C – Reading (2020)
    2 projects | news.ycombinator.com | 12 May 2024
    Seconding the Make-A-Lisp and Crafting Interpreters recommendations. This post is also really great, it contains a hard written parser that you may learn from.

    You mentioned you want to write your lisp in javascript so you'll be getting quite a lot of functionality for free: memory allocation and garbage collection. Just in case anyone reading is going to write in C, here's an excellent introduction to the topic:

    https://journal.stuffwithstuff.com/2013/12/08/babys-first-ga...

    Don't forget to spill the registers.

  • Let's Write a Malloc
    4 projects | news.ycombinator.com | 26 Nov 2023
    Never forget:

    https://journal.stuffwithstuff.com/2013/12/08/babys-first-ga...

    > Let me stress here that while this collector is simple, it isn’t a toy.

    > There are a ton of optimizations you can build on top of this—in GCs and programming languages, optimization is 90% of the effort—but the core code here is a legitimate real GC.

    > It’s very similar to the collectors that were in Ruby and Lua until recently.

    > You can ship production code that uses something exactly like this.

    > Now go build something awesome!

  • loxcraft: a compiler, language server, and online playground for the Lox programming language
    14 projects | /r/ProgrammingLanguages | 29 Apr 2023
    Bob Nystrom also has a blog, and his articles are really well written (see his post on Pratt parsers / garbage collectors). I'd also recommend going through the source code for Wren, it shares a lot of code with Lox. Despite the deceptive simplicity of the implementation, it (like Lox) is incredibly fast - it's a great way to learn how to build production grade compilers in general.
  • The Garbage Collection Handbook, 2nd Edition
    6 projects | news.ycombinator.com | 8 Apr 2023
    Bob Nystrom (of Game Programming Patterns, Crafting Interpreters, and dartfmt fame) also wrote a tutorial[1], of a precise as opposed to a conservative garbage collector.

    Regarding register scanning, Andreas Kling has made (or at least quoted) an amusing observation[2] that your C runtime already has a primitive to dump all callee-save registers onto the stack: setjmp(). So all you have to do to scan registers is to put a jmp_buf onto the stack, setjmp() to it, then scan the stack normally starting from its address.

    [1] https://journal.stuffwithstuff.com/2013/12/08/babys-first-ga...

    [2] https://youtu.be/IzB6iTeo8kk

  • Ask HN: Do you recall any book or course that made a topic finally click?
    6 projects | news.ycombinator.com | 14 Nov 2022
    - http://journal.stuffwithstuff.com/2013/12/08/babys-first-gar...
  • Garbage Collection with LLVM
    3 projects | /r/ProgrammingLanguages | 24 Sep 2022
    Might not be that hard: https://journal.stuffwithstuff.com/2013/12/08/babys-first-garbage-collector/
  • Baby’s First Garbage Collector (2013)
    1 project | /r/patient_hackernews | 10 Aug 2022
    1 project | /r/hackernews | 10 Aug 2022
    1 project | /r/hypeurls | 9 Aug 2022
    2 projects | news.ycombinator.com | 9 Aug 2022

lisp2-gc

Posts with mentions or reviews of lisp2-gc. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-08-09.
  • Baby’s First Garbage Collector (2013)
    2 projects | news.ycombinator.com | 9 Aug 2022
    Something else from the author that I recently stumbled upon: his LISP2 Mark Compact garbage collector [0].

    I was in need of a simple garbage collector for a toy project of mine and settled on a copying collector based on Cheney's algorithm at first [1]. The author's mark compact code is so easy to read that I was able to grok it immediately and replace my original GC without trouble and save half my memory.

    [0] https://github.com/munificent/lisp2-gc

What are some alternatives?

When comparing mark-sweep and lisp2-gc you can also consider the following projects:

git-from-the-bottom-up - An introduction to the architecture and design of the Git content manager

mmtk-core - Memory Management ToolKit

c-examples - Example C code

rust-gc - Simple tracing (mark and sweep) garbage collector for Rust

zig.vim - Vim configuration for Zig

Mesh - A memory allocator that automatically reduces the memory footprint of C/C++ applications.

tlsf - Two-Level Segregated Fit memory allocator implementation.

AGC - Garbage collection for Ada

ixy-languages - A high-speed network driver written in C, Rust, C++, Go, C#, Java, OCaml, Haskell, Swift, Javascript, and Python

mps - The Memory Pool System

zig-mark-sweep-gc - :broom: Zig port of Bob Nystrom's simple mark-sweep GC

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured