Hello Guix,

Currently guix-daemon is built using GCC 11 with -std=c++11. We are waiting for 
guile-daemon [1], but we can have improvements on guix-daemon right now.

In nix/libutil/util.cc there are lots of functions related to copy/delete files 
and manipulate file paths. In C++ 17 the standard library’s <filesystem> 
provides the same functionality which is more reliable.

guix-daemon uses Boost.Format to generate formatted string. These code are 
copied into nix/libformat directly and I think it is not a good practice. With 
C++ 20 we can use <format> from C++’s standard library. I have done some 
experiments on it [2]. In my code repo I replace all boost::format with 
std::format in nix/libutil.

We can use <filesystem> if we upgrade from —std=c++11 to -std=c++17. For 
<format> we need GCC 13 with -std=c++20.

WDYT?

Regards,
Kuo

[1]: https://guix.gnu.org/en/blog/2023/a-build-daemon-in-guile/
[2]: 
https://codeberg.org/congcongkuo/guix-daemon-zig/commit/38b8722f53d17ae4c5826dab051f4fdb00da31db

Reply via email to