zig.vim VS mark-sweep

Compare zig.vim vs mark-sweep and see what are their differences.

zig.vim

Vim configuration for Zig (by ziglang)

mark-sweep

A simple mark-sweep garbage collector in C (by munificent)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
zig.vim mark-sweep
6 11
398 702
2.5% -
5.0 10.0
4 months ago almost 4 years ago
Vim Script C
MIT License 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.

zig.vim

Posts with mentions or reviews of zig.vim. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-27.
  • How to configure vim like an IDE
    44 projects | /r/vim | 27 Jun 2023
    I'm not a fan of debuggers and whatnot, so I don't have anything for that, but I use zig.vim for Zig/C/C++/Obj. C/anything else integration like highlighting. Additionally, vim-scripts/a.vim can be used for alternating between implementation/header files. I don't use it myself but vim-snippets can be used for common snippets.
  • Porting a simple Mark-Sweep Garbage Collector to Zig
    5 projects | dev.to | 20 May 2022
    Out of the box Vim works well enough as an editor for Zig but the experience is a bit underwhelming. So I installed the Vim configuration for Zig plugin get syntax highlighting.
  • Failing to Learn Zig via Advent of Code
    8 projects | /r/Zig | 17 Jan 2022
    About the fast zig check, looking around the the zig.vim plugin code, I think it would be zig fmt --ast-check.
  • Is there a zig plugin for neovim?
    3 projects | /r/Zig | 22 Oct 2021
    There is zig-vim, language server and support in nvim-treesitter
  • Set compiler from lua
    1 project | /r/neovim | 20 Aug 2021
    Currently there is no lua api for this command, so if you want a lua solution you would need to reimplement the functionality or reimplement the stuff inside this folder https://github.com/ziglang/zig.vim/tree/master/compiler
  • Ziglang : first contact with memory safety and simplicity
    4 projects | dev.to | 7 Feb 2021
    install zig for vim : https://github.com/ziglang/zig.vim

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 2023-11-26.
  • 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
  • Reference Count, Don't Garbage Collect
    9 projects | news.ycombinator.com | 29 Jul 2022
    To better understand garbage collection, nothing better than implementation. This article is such a joy to read:

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

What are some alternatives?

When comparing zig.vim and mark-sweep you can also consider the following projects:

zls - A Zig language server supporting Zig developers with features like autocomplete and goto definition

c-examples - Example C code

vim-plug - :hibiscus: Minimalist Vim Plugin Manager

mmtk-core - Memory Management ToolKit

neovim - Vim-fork focused on extensibility and usability

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

nvim-lsp-installer - Further development has moved to https://github.com/williamboman/mason.nvim!

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

SpaceVim - A community-driven modular vim/neovim distribution - The ultimate vimrc

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

helloZig - A zig sandbox

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