!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

413 Members
(Technical) development of Lix, the package manager, a Nix implementation. Please be mindful of ongoing technical conversations in this channel.139 Servers

Load older messages


SenderMessageTime
27 Nov 2025
@sntx:matrix.org@sntx:matrix.org left the room.13:35:45
@piegames:flausch.socialpiegamesLol, the first Flaker run immediately found a Lix crash14:05:28
@piegames:flausch.socialpiegamesin the test suite of the CppNix code base, of all things14:05:35
@piegames:flausch.socialpiegames
[src/diffing.rs:79:21] &file = "./tests/functional/lang/eval-fail-toJSON-non-utf-8.nix"
[src/diffing.rs:79:21] &line = "Lix crashed. This is a bug. We would appreciate if you report it along with what caused it at https://git.lix.systems/lix-project/lix/issues with the following information included:"
[src/diffing.rs:79:21] &stderr = "Lix crashed. This is a bug. We would appreciate if you report it along with what caused it at https://git.lix.systems/lix-project/lix/issues with the following information included:\n\nException: nlohmann::json_abi_v3_11_3::detail::type_error: [json.exception.type_error.316] invalid UTF-8 byte at index 16: 0xFF\nStack trace:\n 0# nix::getStackTrace[abi:cxx11]() in /nix/store/p89s0as08llbz0v12ph7cyc7v373x97p-lix-2.95.0pre19700101-dev_dirty/lib/liblixutil.so\n 1# nix::logException(std::basic_string_view<char, std::char_traits<char> >, std::exception const&) in /nix/store/p89s0as08llbz0v12ph7cyc7v373x97p-lix-2.95.0pre19700101-dev_dirty/lib/liblixutil.so\n 2# 0x00007FFFF7F8EAB4 in /nix/store/p89s0as08llbz0v12ph7cyc7v373x97p-lix-2.95.0pre19700101-dev_dirty/lib/liblixmain.so\n 3# 0x00007FFFF60BF1AA in /nix/store/dj06r96j515npcqi9d8af1d1c60bx2vn-gcc-14.3.0-lib/lib/libstdc++.so.6\n 4# std::unexpected() in /nix/store/dj06r96j515npcqi9d8af1d1c60bx2vn-gcc-14.3.0-lib/lib/libstdc++.so.6\n 5# 0x00007FFFF60BF427 in /nix/store/dj06r96j515npcqi9d8af1d1c60bx2vn-gcc-14.3.0-lib/lib/libstdc++.so.6\n 6# nlohmann::json_abi_v3_11_3::detail::serializer<nlohmann::json_abi_v3_11_3::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nix::json::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> >::dump_escaped(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) in nix-instantiate\n 7# nlohmann::json_abi_v3_11_3::detail::serializer<nlohmann::json_abi_v3_11_3::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nix::json::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> >::dump(nlohmann::json_abi_v3_11_3::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nix::json::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> const&, bool, bool, unsigned int, unsigned int) in nix-instantiate\n 8# nlohmann::json_abi_v3_11_3::detail::serializer<nlohmann::json_abi_v3_11_3::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nix::json::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> >::dump(nlohmann::json_abi_v3_11_3::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nix::json::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> const&, bool, bool, unsigned int, unsigned int) in nix-instantiate\n 9# nlohmann::json_abi_v3_11_3::detail::serializer<nlohmann::json_abi_v3_11_3::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nix::json::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> >::dump(nlohmann::json_abi_v3_11_3::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nix::json::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> const&, bool, bool, unsigned int, unsigned int) in nix-instantiate\n10# nlohmann::json_abi_v3_11_3::detail::serializer<nlohmann::json_abi_v3_11_3::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nix::json::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> >::dump(nlohmann::json_abi_v3_11_3::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nix::json::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void> const&, bool, bool, unsigned int, unsigned int) in nix-instantiate\n11# nlohmann::json_abi_v3_11_3::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nix::json::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> >, void>::dump(int, char, bool, nlohmann::json_abi_v3_11_3::detail::error_handler_t) const in nix-instantiate\n12# 0x000055555580F2A9 in nix-instantiate\n13# 0x000055555581122D in nix-instantiate\n14# 0x0000555555673DDB in nix-instantiate\n15# 0x000055555571C57C in nix-instantiate\n16# 0x000055555572093B in nix-instantiate\n17# nix::handleExceptions(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<int ()>) in /nix/store/p89s0as08llbz0v12ph7cyc7v373x97p-lix-2.95.0pre19700101-dev_dirty/lib/liblixmain.so\n18# 0x00005555557201EB in nix-instantiate\n19# 0x00007FFFF5C2A47E in /nix/store/g8zyryr9cr6540xsyg4avqkwgxpnwj2a-glibc-2.40-66/lib/libc.so.6\n20# __libc_start_main in /nix/store/g8zyryr9cr6540xsyg4avqkwgxpnwj2a-glibc-2.40-66/lib/libc.so.6\n21# 0x00005555556377F5 in nix-instantiate\n\n"
14:05:39
@commentator2.0:elia.gardenRutile (Commentator2.0) feel free to pingmight open proper bug reports/issues for that later, unless someone else is faster14:06:31
16 May 2024
@aciceri:nixos.devzrsk joined the room.13:54:49
@samrose:matrix.orgsamrose
In reply to @lunaphied:lunaphied.me
I think there were a few CLs on the Gerrit but nothing being actively worked
The other thing that I could do if it helps is test things and try to find bugs. I did do some C++ work in the past, but may lack the time to do it justice here at least for about 30 days or so
15:55:29
@qyriad:katesiria.orgQyriadwe are not in any rush 🙂17:20:53
@samrose:matrix.orgsamroseWould it help to also test out the existing Lix code and try to find issues/bugs etc?17:23:21
@qyriad:katesiria.orgQyriadabsolutely17:23:41
@samrose:matrix.orgsamrose
  • how do people feel about the existing test suite that comes along with nix source code or Lix?
17:23:48
@qyriad:katesiria.orgQyriadit's pitiful17:24:10
@samrose:matrix.orgsamroseheh 17:24:16
@raitobezarius:matrix.orgraitobezarius (DECT: 7248)expanding it is cool17:24:23
@raitobezarius:matrix.orgraitobezarius (DECT: 7248)writing new tests for builtins which are not tested17:24:30
@raitobezarius:matrix.orgraitobezarius (DECT: 7248)new test behaviors, etc.17:24:32
@qyriad:katesiria.orgQyriad we have three flavors of test:
  1. gtest (offer only available in libexpr and libutil)

  2. bash script

  3. virtual machine


the vast, vast majority of testing is in the "bash script" flavor and it is a mess
17:25:01
@samrose:matrix.orgsamroseI was just going to ask on the "functional" tests: do we still like using bash there?17:25:56
@samrose:matrix.orgsamrosethe last time that I worked on a major nix related cli project that used bash, or bats for testing, over time it became rather kind of hard to maintain17:26:42
@samrose:matrix.orgsamroseI am not usually a big python fan, but in that project we heard from some in the Rust community that they actually use Python to test CLI and seem to have success there. 17:27:59
@qyriad:katesiria.orgQyriadno gods please kill bash testing. the problem is that it's kind of really difficult to migrate an entire test suite and be sure that you actually migrated the test suite correctly and won't lose coverage accidentally in the process, which makes any kind of migration a bit nerve wracking17:28:36
@samrose:matrix.orgsamroseyes it's a rather large undertaking17:28:52
@samrose:matrix.orgsamrosecould be done in chunks17:28:59
@qyriad:katesiria.orgQyriad at the very least though, it would be wonderful to have an option for new tests to not just be a mess of bash 17:29:17
@samrose:matrix.orgsamroseyes it could be to choose a new approach that this community is truly happy with, rewrite some of the old tests, use it for all new, and then over time rewrite all old17:30:00
@qyriad:katesiria.orgQyriadyeah17:30:31
@samrose:matrix.orgsamroseand also probably you all would want to speak into the testing paradigm to make sure the tests are relevant17:30:52
@qyriad:katesiria.orgQyriadmhmm17:33:22
@qyriad:katesiria.orgQyriad
In reply to@samrose:matrix.org
I am not usually a big python fan, but in that project we heard from some in the Rust community that they actually use Python to test CLI and seem to have success there.
Python's fine, and it's already part of the buildsystem in other ways. If there's something that's a better idea or more preferred for another reason we can talk about that too
17:35:04
@samrose:matrix.orgsamrose
In reply to @qyriad:katesiria.org
Python's fine, and it's already part of the buildsystem in other ways. If there's something that's a better idea or more preferred for another reason we can talk about that too
It would be nice if someone had written a general cli testing suit in Rust, or Go (which likely would make the test suite run faster) but I am not aware of anything that exists. I think the Rust cli tool community gravitated toward using python due to Pexpect, and a lot of existing tools that are good fit for test suite.
17:37:19

Show newer messages


Back to Room ListRoom Version: 10