Stream: bugs

Topic: Found another segfault!


view this post on Zulip Matthieu Pizenberg (Dec 03 2025 at 08:53):

Here is the issue with the minimal example https://github.com/roc-lang/roc/issues/8553
Both these mains trigger a segfault with the platform used in test/fx/

main! = || {
    _bool = [1].sublist({ start: 0, len: 1 }) == [1].sublist({ start: 0, len: 1 })
}

main! = || {
    s = Str.to_utf8("11")
    _bool = s.sublist({ start: 0, len: 1 }) == s.sublist({ start: 1, len: 1 })
}

view this post on Zulip Matthieu Pizenberg (Dec 03 2025 at 11:54):

even simpler segfault:

main! = || {
    _bool = [1] == [1]
}

view this post on Zulip Norbert Hajagos (Dec 03 2025 at 12:16):

Could reproduce. With "roc test", I also get a stack trace, which is pretty helpful. Source:

module[]
expect [1] == [1]

stack trace

view this post on Zulip Matthieu Pizenberg (Dec 03 2025 at 13:28):

Ok, Claude found out what seems to be the issue. I’ll prepare a PR.

view this post on Zulip Matthieu Pizenberg (Dec 03 2025 at 13:44):

Actually its fix doesn’t work for lists of lists ...

view this post on Zulip Matthieu Pizenberg (Dec 03 2025 at 13:57):

No time to continue looking into it today.

view this post on Zulip Matthieu Pizenberg (Dec 03 2025 at 17:39):

With a bit of luck, this might be the last blocking bug to be able to solve AoC 2 :)

view this post on Zulip Matthieu Pizenberg (Dec 03 2025 at 17:55):

BUGFIX_LIST_EQUALITY_UAF.md

Earlier today, I got claude to be able to fix the simple case for list equality, but it would still fail at nested list equality, so I didn’t make a PR. Here is the report I had, in case it’s of help to anyone giving it another try.


Last updated: Dec 21 2025 at 12:15 UTC