Hello Guix,

Today I successfully built guix-daemon using Zig build system [1]. This show 
the possibility of rewriting part of (or entire) gux-daemon in Zig. Zig can 
work as a C compiler. Although currently this function depends on clang and 
LLVM, Zig has planed to remove these dependencies [2].

But why Zig? As for me, Zig shows a possibitily to get rid of current 
toolchain. Even though C is not a bad language (I think C is good enough!), 
nowadays GCC is written in C++ which is a monster. Zig has lots of improvements 
comparing with C but it is still a elegant language. Zig can easily call and be 
call by C/C++, which means I can gradually apply Zig in a C/C++ project.

The Zig build system is another thing that attracts me [3]. The script of this 
build system is written in Zig itself! I don’t need to spend time to learn a 
language only for a build system. I can use the standard library, define and 
call functions easily because the script just a normal programming langauge.

Why not Guile? I don’t want to rewrite guix-daemon totally. I plan to reduce 
the code size of libstore. I think it will also benefits guile-daemon [4]. Zig, 
its build system and standard library is suitable for this task.

How long do you expect it to take to complete your project? Unfortunately I've 
had some health issues lately and it could be months before I get started. 
Nonetheless I've made a great start [1].

[1] https://codeberg.org/congcongkuo/guix-daemon-zig/src/branch/main
[2] https://github.com/ziglang/zig/issues/16270
[3] https://ziglang.org/learn/build-system/
[4] https://guix.gnu.org/en/blog/2023/a-build-daemon-in-guile/

Regards,
Kuo

Reply via email to