Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unable to codegen: InputOutput on Linux with Self-Hosted x86 Backend #22642

Closed
jcalabro opened this issue Jan 28, 2025 · 10 comments · Fixed by #22982
Closed

unable to codegen: InputOutput on Linux with Self-Hosted x86 Backend #22642

jcalabro opened this issue Jan 28, 2025 · 10 comments · Fixed by #22982
Labels
bug Observed behavior contradicts documented or intended behavior frontend Tokenization, parsing, AstGen, Sema, and Liveness. use case Describes a real use case that is difficult or impossible, but does not propose a solution.
Milestone

Comments

@jcalabro
Copy link
Contributor

jcalabro commented Jan 28, 2025

Zig Version

0.14.0-dev.2577+271452d22

Steps to Reproduce and Observed Behavior

Hello! I've been getting this issue on occasion (i.e. see here) and I'm not certain how to reproduce it. However, it's been happening roughly once or twice a day. This is happening across multiple development machines.

Using Linux, use_llvm = false, and use_lld = false, I get an error where the compiler appears to be unable to generate some amount of code. An example of a full run is below the fold, however this previously was also happening at different lines of source code. My code is valid and compiles correctly if I re-run the compiler.

I'm not sure how to reliably reproduce this, and the bug does not appear to happen when I swap back to using llvm and lld. I'm happy to work with the team to get towards a more reliable repro case, but for the time being, I'd encourage you to try compiling uscope a handful of times. Not a great repro at all, I know, but that's the only thing I have to go on at the moment. Happy to run any commands or do any investigation you need, but I'm not sure what direction to go in to explore that space on my own.

Here's my linux version:

$ uname -a
Linux jlinux02 6.9.12-3-MANJARO #1 SMP PREEMPT_DYNAMIC Wed Aug  7 16:19:28 UTC 2024 x86_64 GNU/Linux
Reveal full log
$ zig build run -Dllvm=false
run
└─ run uscope
   └─ zig build-exe uscope Debug native 4 errors
/home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/lib/std/array_list.zig:873:13: error: unable to codegen: InputOutput
        pub fn append(self: *Self, allocator: Allocator, item: T) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/lib/std/Thread/ResetEvent.zig:97:5: error: unable to codegen: InputOutput
    fn isSet(self: *const Impl) bool {
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/lib/std/array_list.zig:1071:13: error: unable to codegen: InputOutput
        pub fn clearAndFree(self: *Self, allocator: Allocator) void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/logging.zig:152:5: error: unable to codegen: InputOutput
    fn write(self: Self, comptime fmt: []const u8, args: anytype, lvl: Level, color: Color) void {
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
error: the following command failed with 4 compilation errors:
/home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/zig build-exe -freference-trace=256 -fno-llvm -fno-lld libs/stb_image/stb_image.c /home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache/o/56b9db104173fd9f
26e69957b98b3fc0/libcimgui.a /home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache/o/5bc08949cd41183f339ca82b193f0867/libglfw.a /home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache/o/3f6636ed6662bb2
ff5e29e00c0ff907a/libtracy.a -fno-strip -fno-stack-check -fno-stack-protector -fno-omit-frame-pointer -fsanitize-c -fno-sanitize-thread -ODebug -I libs/stb_image -I libs/spall -I /home/jcalabro/go/src/github.com
/jcalabro/uscope/.zig-cache/o/5b558e2516e4e7306483d8098d0260b2 -I /home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache/o/b35a3097dc77cf0d0d230a4246e72488 -I /home/jcalabro/go/src/github.com/jcalabro/uscop
e/.zig-cache/o/dda5e4cbcb3d85361226cc79822690f1 -L /home/jcalabro/.cache/zig/p/122047a9298c4c9dd43389d418d6826d469b192246ba0944102964cdc57f94c562df/linux/lib/x86_64-linux-gnu --dep build_options --dep time --dep
 cimgui --dep zglfw --dep zopengl --dep ztracy -Mroot=/home/jcalabro/go/src/github.com/jcalabro/uscope/src/main.zig -Mbuild_options=/home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache/c/dec4e5122db4f3eb2
7bab209140d6d68/options.zig -ODebug -Mtime=/home/jcalabro/.cache/zig/p/1220f43a23ab22f4a151477923e986cbfeb01a7970f57e85ea78fb17b3fcdb21d88d/time.zig -ODebug -I /home/jcalabro/go/src/github.com/jcalabro/uscope/li
bs/cimgui/vendor --dep cimgui_options -Mcimgui=/home/jcalabro/go/src/github.com/jcalabro/uscope/libs/cimgui/main.zig -I /home/jcalabro/.cache/zig/p/1220aac39fd472cb7a70b1987249f3ac73799e702ff27516d799e1d5e566097
f0a8b/libs/glfw/include -isystem /home/jcalabro/.cache/zig/p/122047a9298c4c9dd43389d418d6826d469b192246ba0944102964cdc57f94c562df/linux/include --dep zglfw_options -Mzglfw=/home/jcalabro/.cache/zig/p/1220aac39fd
472cb7a70b1987249f3ac73799e702ff27516d799e1d5e566097f0a8b/src/zglfw.zig -Mzopengl=/home/jcalabro/.cache/zig/p/1220c030f5e33e09bd80fe7a7b064b65e1fc02e9bbf603ba04716866c9f1ca16f8ce/src/zopengl.zig --dep ztracy_opt
ions --dep c -Mztracy=/home/jcalabro/.cache/zig/p/1220293b509e9238e43828b00ee18e38eeace190ef844b74bf54e3db6e7da7398f4b/src/ztracy.zig -Mcimgui_options=/home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache/
c/746885799fd6f893b726ce323bb12121/options.zig -Mzglfw_options=/home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache/c/1bcfb49a1bce1294f8f42b738f3b4df2/options.zig -Mztracy_options=/home/jcalabro/go/src/gi
thub.com/jcalabro/uscope/.zig-cache/c/cca47235f59fffbec51bdd11f8fa681a/options.zig -ODebug -Mc=/home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache/o/d97633c3cf0189dd54b0620394970d8c/TracyC.zig /home/jcal
abro/go/src/github.com/jcalabro/uscope/.zig-cache/o/7c5c4ea6ba0e3822f22aad7e38826b7a/libfreetype.a -lX11 /home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache/o/287469d3ee77ac4cd51d316c054bba3a/libz.a /hom
e/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache/o/702fe321ddb2cc9246e9f701a863ede4/libpng.a /home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache/o/287469d3ee77ac4cd51d316c054bba3a/libz.a -lc++ -lc
 --cache-dir /home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache --global-cache-dir /home/jcalabro/.cache/zig --name uscope --zig-lib-dir /home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/lib/ --listen=
-
Build Summary: 17/20 steps succeeded; 1 failed
run transitive failure
└─ run uscope transitive failure
   └─ zig build-exe uscope Debug native 4 errors
error: the following build command failed with exit code 1:
/home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache/o/9a44a38fdd32013faf683cc49d0f11a8/build /home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/zig /home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/lib
/home/jcalabro/go/src/github.com/jcalabro/uscope /home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache /home/jcalabro/.cache/zig --seed 0x7414d245 -Z53243822e146505b -freference-trace run -freference-trace

Expected Behavior

I expect my code to compile and run correctly. My code actually does compile correctly if I re-run the zig build run command.

@jcalabro jcalabro added the bug Observed behavior contradicts documented or intended behavior label Jan 28, 2025
@jacobly0 jacobly0 added this to the 0.14.0 milestone Jan 31, 2025
@jacobly0
Copy link
Member

#22429 and #22447 have been merged since this compiler version, can you see if it still repros with a newer compiler?

@jacobly0
Copy link
Member

jacobly0 commented Jan 31, 2025

Also oddly relevant question, are you sure that there can't possibly be another process running the same build command concurrently? This could include typing Ctrl+C and immediately rerunning the same command, I forget if there's still an issue with the children continuing to run or not.

@jcalabro
Copy link
Contributor Author

I can check on the new compiler version tonight and will get back to you

It's totally possible that there's another build command running that's botching things. I generally have seen --watch commands spin up for some reason (I'm not sure why these are running because I've not actually tried the new watch stuff yet)

For instance, I'm not working on any zig stuff right now at all, yet these processes are just running in the background:

$ ps aux | rg -i zig
jcalabro   27381  0.0  0.0 683920 52508 ?        Sl   09:19   0:00 /home/jcalabro/local/bin/zig build --build-runner /home/jcalabro/.cache/zls/build_runner/3374f8e0f0f78d760eedf30cdd7c6717/build_runner.zig --zig-lib-dir /home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/lib --watch
jcalabro   27418  0.0  0.0 548836 40632 ?        Sl   09:19   0:00 /home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache/o/f641434cecf664a7c2981fb0596cb1a0/build /home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/zig /home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/lib /home/jcalabro/go/src/github.com/jcalabro/uscope /home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache /home/jcalabro/.cache/zig --seed 0x38da76e3 -Z713c14a5e444a52b --watch
jcalabro   29347  0.0  0.0 683920 54056 pts/2    Sl+  09:20   0:00 /home/jcalabro/local/bin/zig build --build-runner /home/jcalabro/.cache/zls/build_runner/3374f8e0f0f78d760eedf30cdd7c6717/build_runner.zig --zig-lib-dir /home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/lib --watch
jcalabro   29416  0.0  0.0 550280 38440 pts/2    Sl+  09:20   0:00 /home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache/o/f641434cecf664a7c2981fb0596cb1a0/build /home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/zig /home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/lib /home/jcalabro/go/src/github.com/jcalabro/uscope /home/jcalabro/go/src/github.com/jcalabro/uscope/.zig-cache /home/jcalabro/.cache/zig --seed 0x546fb7f8 -Z752ff1f78f8d4721 --watch
jcalabro   69356  0.0  0.0   8656  6292 pts/4    S+   10:26   0:00 rg -i zig

@jacobly0
Copy link
Member

Could an editor be trying to make use of the compiler watch functionality (maybe check pstree)?

@jcalabro
Copy link
Contributor Author

True! I still have hx and vs code open from this morning when I was writing some zig

$ pstree | rg -C 10 zig
        |-bluetoothd
        |-3*[chrome_crashpad---2*[{chrome_crashpad}]]
        |-code-+-code---code---8*[{code}]
        |      |-code---code---code---38*[{code}]
        |      |-code---9*[{code}]
        |      |-code-+-2*[bash]
        |      |      `-18*[{code}]
        |      |-code---16*[{code}]
        |      |-code---18*[{code}]
        |      |-code-+-code---8*[{code}]
        |      |      |-zls-+-zig-+-build---33*[{build}]
        |      |      |     |     `-32*[{zig}]
        |      |      |     `-5*[{zls}]
        |      |      `-16*[{code}]
        |      `-37*[{code}]
        |-colord---3*[{colord}]
        |-containerd---30*[{containerd}]
        |-containerd-shim-+-java---131*[{java}]
        |                 `-11*[{containerd-shim}]
        |-containerd-shim-+-ld.so---supervisord-+-node_exporter---4*[{node_exporter}]
        |                 |                     |-rsyslogd---2*[{rsyslogd}]
        |                 |                     |-scylla---63*[{scylla}]
--
        |         |                 `-6*[{xdg-document-po}]
        |         |-xdg-permission----3*[{xdg-permission-}]
        |         `-xfce4-notifyd---4*[{xfce4-notifyd}]
        |-systemd-journal
        |-systemd-logind
        |-systemd-resolve
        |-systemd-timesyn---{systemd-timesyn}
        |-systemd-udevd
        |-systemd-userdbd---3*[systemd-userwor]
        |-tailscaled---27*[{tailscaled}]
        |-tmux: server-+-bash---hx-+-zls-+-zig-+-build---33*[{build}]
        |              |           |     |     `-32*[{zig}]
        |              |           |     `-5*[{zls}]
        |              |           `-65*[{hx}]
        |              |-bash
        |              |-bash---hx-+-clangd.main---19*[{clangd.main}]
        |              |           `-65*[{hx}]
        |              `-bash-+-pstree
        |                     `-rg
        |-udisksd---5*[{udisksd}]
        |-upowerd---3*[{upowerd}]
        |-xcape---{xcape}

@jacobly0
Copy link
Member

I don't know enough about zls to confirm it on that side, but I ran a test of running uscope $ debug-zig build -Dllvm=false 100 times in a row and got zero failures. I attempted to rerun this test concurrently with itself and got some expected assertion failures during the first run. I redid this concurrent test with a release compiler and got this output on the first run:

console output
install
└─ install uscope
   └─ zig build-exe uscope Debug native 166 errors
lib/std/array_list.zig:53:13: error: failed to finish dwarf function: InputOutput
        pub fn init(allocator: Allocator) Self {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:457:13: error: failed to init dwarf: InputOutput
        pub fn ensureTotalCapacityPrecise(self: *Self, new_capacity: usize) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:508:13: error: failed to init dwarf: InputOutput
        pub fn addOneAssumeCapacity(self: *Self) *T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:442:13: error: failed to init dwarf: InputOutput
        pub fn ensureTotalCapacity(self: *Self, new_capacity: usize) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:508:13: error: failed to init dwarf: InputOutput
        pub fn addOneAssumeCapacity(self: *Self) *T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:577:13: error: failed to init dwarf: InputOutput
        pub fn allocatedSlice(self: Self) Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/mem/Allocator.zig:234:5: error: failed to finish dwarf function: InputOutput
pub fn resize(self: Allocator, old_mem: anytype, new_n: usize) bool {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/trace.zig:29:5: error: failed to finish dwarf function: InputOutput
pub fn zone(comptime src: Src) ZoneCtx {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:64:13: error: failed to init dwarf: InputOutput
        pub fn initCapacity(allocator: Allocator, num: usize) Allocator.Error!Self {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:708:13: error: failed to init dwarf: InputOutput
        pub fn toOwnedSlice(self: *Self, allocator: Allocator) Allocator.Error!Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:269:13: error: failed to init dwarf: InputOutput
        pub fn appendAssumeCapacity(self: *Self, item: T) void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:110:13: error: failed to init dwarf: InputOutput
        pub fn toOwnedSlice(self: *Self) Allocator.Error!Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:261:13: error: failed to finish dwarf function: InputOutput
        pub fn append(self: *Self, item: T) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:261:13: error: failed to init dwarf: InputOutput
        pub fn append(self: *Self, item: T) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:110:13: error: failed to init dwarf: InputOutput
        pub fn toOwnedSlice(self: *Self) Allocator.Error!Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:497:13: error: failed to init dwarf: InputOutput
        pub fn addOne(self: *Self) Allocator.Error!*T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:577:13: error: failed to init dwarf: InputOutput
        pub fn allocatedSlice(self: Self) Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:497:13: error: failed to init dwarf: InputOutput
        pub fn addOne(self: *Self) Allocator.Error!*T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:1016:13: error: failed to init dwarf: InputOutput
        pub fn putContext(self: *Self, allocator: Allocator, key: K, value: V, ctx: Context) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:497:13: error: failed to init dwarf: InputOutput
        pub fn addOne(self: *Self) Allocator.Error!*T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:497:13: error: failed to init dwarf: InputOutput
        pub fn addOne(self: *Self) Allocator.Error!*T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:497:13: error: failed to init dwarf: InputOutput
        pub fn addOne(self: *Self) Allocator.Error!*T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:497:13: error: failed to finish dwarf function: InputOutput
        pub fn addOne(self: *Self) Allocator.Error!*T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:497:13: error: failed to init dwarf: InputOutput
        pub fn addOne(self: *Self) Allocator.Error!*T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:497:13: error: failed to init dwarf: InputOutput
        pub fn addOne(self: *Self) Allocator.Error!*T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:497:13: error: failed to finish dwarf function: InputOutput
        pub fn addOne(self: *Self) Allocator.Error!*T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:497:13: error: failed to init dwarf: InputOutput
        pub fn addOne(self: *Self) Allocator.Error!*T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:1075:13: error: failed to init dwarf: InputOutput
        pub fn getContext(self: Self, key: K, ctx: Context) ?V {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:577:13: error: failed to init dwarf: InputOutput
        pub fn allocatedSlice(self: Self) Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:433:13: error: failed to init dwarf: InputOutput
        pub fn clearAndFree(self: *Self) void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/fmt.zig:1814:5: error: failed to finish dwarf function: InputOutput
pub fn allocPrint(allocator: mem.Allocator, comptime fmt: []const u8, args: anytype) AllocPrintError![]u8 {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:577:13: error: failed to init dwarf: InputOutput
        pub fn allocatedSlice(self: Self) Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:433:13: error: failed to init dwarf: InputOutput
        pub fn clearAndFree(self: *Self) void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:577:13: error: failed to init dwarf: InputOutput
        pub fn allocatedSlice(self: Self) Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:577:13: error: failed to init dwarf: InputOutput
        pub fn allocatedSlice(self: Self) Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:433:13: error: failed to init dwarf: InputOutput
        pub fn clearAndFree(self: *Self) void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:577:13: error: failed to init dwarf: InputOutput
        pub fn allocatedSlice(self: Self) Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:433:13: error: failed to init dwarf: InputOutput
        pub fn clearAndFree(self: *Self) void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:577:13: error: failed to init dwarf: InputOutput
        pub fn allocatedSlice(self: Self) Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:1069:13: error: failed to init dwarf: InputOutput
        pub fn clearAndFree(self: *Self, allocator: Allocator) void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:1126:13: error: failed to init dwarf: InputOutput
        pub fn getOrPutAssumeCapacityContext(self: *Self, key: K, ctx: Context) GetOrPutResult {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:682:13: error: failed to init dwarf: InputOutput
        pub fn toManaged(self: *Self, allocator: Allocator) ArrayListAligned(T, alignment) {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:175:13: error: failed to init dwarf: InputOutput
        pub fn addManyAt(self: *Self, index: usize, count: usize) Allocator.Error![]T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:101:13: error: failed to init dwarf: InputOutput
        pub fn moveToUnmanaged(self: *Self) ArrayListAlignedUnmanaged(T, alignment) {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:863:13: error: failed to init dwarf: InputOutput
        pub fn putAssumeCapacityNoClobberContext(self: *Self, key: K, value: V, ctx: Context) void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:719:13: error: failed to init dwarf: InputOutput
        pub fn deinit(self: *Self, allocator: Allocator) void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/logging.zig:152:5: error: failed to finish dwarf function: InputOutput
    fn write(self: Self, comptime fmt: []const u8, args: anytype, lvl: Level, color: Color) void {
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/fmt.zig:488:5: error: failed to finish dwarf function: InputOutput
pub fn formatType(
~~~~^~
src/Reader.zig:54:5: error: failed to finish dwarf function: InputOutput
pub fn read(self: *Self, comptime T: type) ReadError!T {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:457:13: error: failed to init dwarf: InputOutput
        pub fn ensureTotalCapacityPrecise(self: *Self, new_capacity: usize) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/mem/Allocator.zig:103:5: error: failed to finish dwarf function: InputOutput
pub fn create(self: Allocator, comptime T: type) Error!*T {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/linux/dwarf/line.zig:608:5: error: failed to finish dwarf function: InputOutput
    fn advancePC(self: *Self, header: *const Header, advance_by: u64) void {
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:457:13: error: failed to init dwarf: InputOutput
        pub fn ensureTotalCapacityPrecise(self: *Self, new_capacity: usize) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:1212:13: error: failed to init dwarf: InputOutput
        pub fn allocatedSlice(self: Self) Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:1069:13: error: failed to init dwarf: InputOutput
        pub fn clearAndFree(self: *Self, allocator: Allocator) void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:508:13: error: failed to init dwarf: InputOutput
        pub fn addOneAssumeCapacity(self: *Self) *T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:577:13: error: failed to init dwarf: InputOutput
        pub fn allocatedSlice(self: Self) Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:433:13: error: failed to init dwarf: InputOutput
        pub fn clearAndFree(self: *Self) void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/logging.zig:229:9: error: failed to finish dwarf function: InputOutput
    pub fn errf(self: Self, comptime fmt: []const u8, args: anytype) void {
    ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:577:13: error: failed to init dwarf: InputOutput
        pub fn allocatedSlice(self: Self) Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/mem/Allocator.zig:234:5: error: failed to finish dwarf function: InputOutput
pub fn resize(self: Allocator, old_mem: anytype, new_n: usize) bool {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/logging.zig:152:5: error: failed to finish dwarf function: InputOutput
    fn write(self: Self, comptime fmt: []const u8, args: anytype, lvl: Level, color: Color) void {
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:442:13: error: failed to init dwarf: InputOutput
        pub fn ensureTotalCapacity(self: *Self, new_capacity: usize) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:508:13: error: failed to init dwarf: InputOutput
        pub fn addOneAssumeCapacity(self: *Self) *T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:442:13: error: failed to init dwarf: InputOutput
        pub fn ensureTotalCapacity(self: *Self, new_capacity: usize) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:508:13: error: failed to init dwarf: InputOutput
        pub fn addOneAssumeCapacity(self: *Self) *T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:1090:13: error: failed to init dwarf: InputOutput
        pub fn getOrPutContext(self: *Self, allocator: Allocator, key: K, ctx: Context) Allocator.Error!GetOrPutResult {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:442:13: error: failed to init dwarf: InputOutput
        pub fn ensureTotalCapacity(self: *Self, new_capacity: usize) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:508:13: error: failed to init dwarf: InputOutput
        pub fn addOneAssumeCapacity(self: *Self) *T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:442:13: error: failed to init dwarf: InputOutput
        pub fn ensureTotalCapacity(self: *Self, new_capacity: usize) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:508:13: error: failed to init dwarf: InputOutput
        pub fn addOneAssumeCapacity(self: *Self) *T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:442:13: error: failed to init dwarf: InputOutput
        pub fn ensureTotalCapacity(self: *Self, new_capacity: usize) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:508:13: error: failed to init dwarf: InputOutput
        pub fn addOneAssumeCapacity(self: *Self) *T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:442:13: error: failed to finish dwarf function: InputOutput
        pub fn ensureTotalCapacity(self: *Self, new_capacity: usize) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:508:13: error: failed to init dwarf: InputOutput
        pub fn addOneAssumeCapacity(self: *Self) *T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/fmt.zig:1814:5: error: failed to finish dwarf function: InputOutput
pub fn allocPrint(allocator: mem.Allocator, comptime fmt: []const u8, args: anytype) AllocPrintError![]u8 {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:442:13: error: failed to init dwarf: InputOutput
        pub fn ensureTotalCapacity(self: *Self, new_capacity: usize) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:508:13: error: failed to init dwarf: InputOutput
        pub fn addOneAssumeCapacity(self: *Self) *T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:442:13: error: failed to init dwarf: InputOutput
        pub fn ensureTotalCapacity(self: *Self, new_capacity: usize) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:508:13: error: failed to init dwarf: InputOutput
        pub fn addOneAssumeCapacity(self: *Self) *T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:442:13: error: failed to finish dwarf function: InputOutput
        pub fn ensureTotalCapacity(self: *Self, new_capacity: usize) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:508:13: error: failed to init dwarf: InputOutput
        pub fn addOneAssumeCapacity(self: *Self) *T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:442:13: error: failed to init dwarf: InputOutput
        pub fn ensureTotalCapacity(self: *Self, new_capacity: usize) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:508:13: error: failed to init dwarf: InputOutput
        pub fn addOneAssumeCapacity(self: *Self) *T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:215:13: error: failed to init dwarf: InputOutput
        pub fn addManyAtAssumeCapacity(self: *Self, index: usize, count: usize) []T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:577:13: error: failed to init dwarf: InputOutput
        pub fn allocatedSlice(self: Self) Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:1473:9: error: failed to init dwarf: InputOutput
        fn deallocate(self: *Self, allocator: Allocator) void {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/logging.zig:152:5: error: failed to finish dwarf function: InputOutput
    fn write(self: Self, comptime fmt: []const u8, args: anytype, lvl: Level, color: Color) void {
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/mem.zig:4126:5: error: failed to finish dwarf function: InputOutput
pub fn bytesToValue(comptime T: type, bytes: anytype) T {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/linux/dwarf/abbrev.zig:994:1: error: failed to finish dwarf function: InputOutput
fn numericFormBoundsCheck(comptime T: type, buf: []const u8, offset: Offset) error{InvalidDWARFInfo}!void {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/mem.zig:4126:5: error: failed to finish dwarf function: InputOutput
pub fn bytesToValue(comptime T: type, bytes: anytype) T {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:1212:13: error: failed to finish dwarf function: InputOutput
        pub fn allocatedSlice(self: Self) Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/logging.zig:229:9: error: failed to finish dwarf function: InputOutput
    pub fn errf(self: Self, comptime fmt: []const u8, args: anytype) void {
    ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:1407:9: error: failed to init dwarf: InputOutput
        fn grow(self: *Self, allocator: Allocator, new_capacity: Size, ctx: Context) Allocator.Error!void {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:593:17: error: failed to init dwarf: InputOutput
            pub fn isTombstone(self: Metadata) bool {
            ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:607:17: error: failed to init dwarf: InputOutput
            pub fn fill(self: *Metadata, fp: FingerPrint) void {
            ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/fmt.zig:83:5: error: failed to finish dwarf function: InputOutput
pub fn format(
~~~~^~
src/linux/Adapter.zig:525:1: error: failed to update dwarf: InputOutput
fn wait4Loop(self: *Self, request_q: *Queue(proto.Request)) void {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:872:13: error: failed to update dwarf: InputOutput
        pub fn append(self: *Self, allocator: Allocator, item: T) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/fs/Dir.zig:594:5: error: failed to update dwarf: InputOutput
pub fn iterateAssumeFirstIteration(self: Dir) Iterator {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/GUI.zig:340:1: error: failed to update dwarf: InputOutput
fn windowResizedCallback(
^~
src/gui/GUI.zig:319:1: error: failed to update dwarf: InputOutput
fn setWindowSize(self: *Self, window: *glfw.Window) void {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/zui/zui.zig:42:5: error: failed to update dwarf: InputOutput
pub fn setNextWindowSize(w: f32, h: f32) void {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/GUI.zig:311:1: error: failed to update dwarf: InputOutput
fn render(self: *Self) void {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/GUI.zig:297:5: error: failed to update dwarf: InputOutput
pub fn frameRateLimit(last_frame_render_micros: u64) u64 {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/State.zig:133:5: error: failed to update dwarf: InputOutput
pub fn quit(self: *Self) void {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/GUI.zig:226:1: error: failed to update dwarf: InputOutput
fn deinit(self: *Self) void {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/Thread.zig:442:5: error: failed to update dwarf: InputOutput
pub fn join(self: Thread) void {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/mem.zig:4495:5: error: failed to update dwarf: InputOutput
pub fn isAligned(addr: usize, alignment: usize) bool {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/heap/general_purpose_allocator.zig:980:9: error: failed to update dwarf: InputOutput
        fn alloc(ctx: *anyopaque, len: usize, log2_ptr_align: u8, ret_addr: usize) ?[*]u8 {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/heap/general_purpose_allocator.zig:717:9: error: failed to update dwarf: InputOutput
        fn resize(
        ^~
lib/std/heap/general_purpose_allocator.zig:836:9: error: failed to update dwarf: InputOutput
        fn free(
        ^~
lib/std/heap/ThreadSafeAllocator.zig:17:1: error: failed to update dwarf: InputOutput
fn alloc(ctx: *anyopaque, n: usize, log2_ptr_align: u8, ra: usize) ?[*]u8 {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/heap/ThreadSafeAllocator.zig:25:1: error: failed to update dwarf: InputOutput
fn resize(ctx: *anyopaque, buf: []u8, log2_buf_align: u8, new_len: usize, ret_addr: usize) bool {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/heap/ThreadSafeAllocator.zig:34:1: error: failed to update dwarf: InputOutput
fn free(ctx: *anyopaque, buf: []u8, log2_buf_align: u8, ret_addr: usize) void {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/fs/path.zig:280:5: error: failed to update dwarf: InputOutput
pub fn isAbsolute(path: []const u8) bool {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~/.cache/zig/p/1220aac39fd472cb7a70b1987249f3ac73799e702ff27516d799e1d5e566097f0a8b/src/zglfw.zig:138:5: error: failed to update dwarf: InputOutput
pub fn maybeError() Error!void {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/debug/SelfInfo.zig:123:5: error: failed to update dwarf: InputOutput
pub fn getModuleForAddress(self: *SelfInfo, address: usize) !*Module {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:872:13: error: failed to update dwarf: InputOutput
        pub fn append(self: *Self, allocator: Allocator, item: T) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_hash_map.zig:722:13: error: failed to update dwarf: InputOutput
        pub fn keys(self: Self) []K {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~
src/trace/spall.zig:122:5: error: failed to update dwarf: InputOutput
    fn initThread() void {}
    ^~~~~~~~~~~~~~~~~~~~
src/trace/spall.zig:126:5: error: failed to update dwarf: InputOutput
    fn zone(_: Src) void {}
    ^~~~~~~~~~~~~~~~~~~~
lib/std/fs/path.zig:327:5: error: failed to update dwarf: InputOutput
pub fn isAbsolutePosix(path: []const u8) bool {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/Progress.zig:544:5: error: failed to update dwarf: InputOutput
pub fn lockStdErr() void {
~~~~^~~~~~~~~~~~~~~~~~~~
lib/std/Progress.zig:549:5: error: failed to update dwarf: InputOutput
pub fn unlockStdErr() void {
~~~~^~~~~~~~~~~~~~~~~~~~~~
src/trace/spall.zig:130:5: error: failed to update dwarf: InputOutput
    fn end() void {}
    ^~~~~~~~~~~~~
src/logging.zig:53:5: error: failed to update dwarf: InputOutput
    fn enabled(global_lvl: @This(), local_lvl: @This()) bool {
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/logging.zig:130:9: error: failed to update dwarf: InputOutput
    pub fn str(self: Color) []const u8 {
    ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/trace/spall.zig:124:5: error: failed to update dwarf: InputOutput
    fn deinitThread() void {}
    ^~~~~~~~~~~~~~~~~~~~~~
src/trace/spall.zig:120:5: error: failed to update dwarf: InputOutput
    fn deinit() void {}
    ^~~~~~~~~~~~~~~~
src/debugger/debugger.zig:423:9: error: failed to update dwarf: InputOutput
        fn resetSubordinateState(self: *Self) void {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/debugger/debugger.zig:379:13: error: failed to update dwarf: InputOutput
        pub fn enqueueRequest(self: *Self, req: proto.Request) void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/debugger/proto.zig:119:9: error: failed to update dwarf: InputOutput
    pub fn req(self: @This()) Request {
    ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/queue.zig:65:13: error: failed to update dwarf: InputOutput
        pub fn put(self: *Self, item: T) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_hash_map.zig:1910:9: error: failed to update dwarf: InputOutput
        fn checkedHash(ctx: anytype, key: anytype) u32 {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_hash_map.zig:613:9: error: failed to update dwarf: InputOutput
        const linear_scan_max = 8;
        ^~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/multi_array_list.zig:417:13: error: failed to update dwarf: InputOutput
        pub fn ensureTotalCapacity(self: *Self, gpa: Allocator, new_capacity: usize) !void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/multi_array_list.zig:438:13: error: failed to update dwarf: InputOutput
        pub fn setCapacity(self: *Self, gpa: Allocator, new_capacity: usize) !void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_hash_map.zig:1916:9: error: failed to update dwarf: InputOutput
        fn checkedEql(ctx: anytype, a: anytype, b: K, b_index: usize) bool {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_hash_map.zig:1084:9: error: failed to update dwarf: InputOutput
        fn getIndexWithHeaderGeneric(self: Self, key: anytype, ctx: anytype, header: *IndexHeader, comptime I: type) ?usize {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/multi_array_list.zig:259:13: error: failed to update dwarf: InputOutput
        pub fn addOneAssumeCapacity(self: *Self) usize {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_hash_map.zig:1724:9: error: failed to update dwarf: InputOutput
        fn getOrPutInternal(self: *Self, key: anytype, ctx: anytype, header: *IndexHeader, comptime I: type) GetOrPutResult {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/multi_array_list.zig:503:21: error: failed to update dwarf: InputOutput
                pub fn lessThan(sc: @This(), a_index: usize, b_index: usize) bool {
                ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:215:13: error: failed to update dwarf: InputOutput
        pub fn addManyAtAssumeCapacity(self: *Self, index: usize, count: usize) []T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:577:13: error: failed to update dwarf: InputOutput
        pub fn allocatedSlice(self: Self) Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:53:13: error: failed to update dwarf: InputOutput
        pub fn init(allocator: Allocator) Self {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:545:13: error: failed to update dwarf: InputOutput
        pub const Hash = u64;
        ~~~~^~~~~~~~~~~~~~~~
lib/std/array_list.zig:1088:13: error: failed to update dwarf: InputOutput
        pub fn ensureTotalCapacityPrecise(self: *Self, allocator: Allocator, new_capacity: usize) Allocator.Error!void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/atomic.zig:15:20: error: failed to update dwarf: InputOutput
        pub inline fn load(self: *const Self, comptime order: AtomicOrder) T {
        ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:1075:13: error: failed to update dwarf: InputOutput
        pub fn getContext(self: Self, key: K, ctx: Context) ?V {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:770:13: error: failed to update dwarf: InputOutput
        pub fn count(self: Self) Size {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:792:13: error: failed to update dwarf: InputOutput
        pub fn iterator(self: *const Self) Iterator {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:557:9: error: failed to update dwarf: InputOutput
        const Header = struct {
        ^~~~~
lib/std/hash_map.zig:774:9: error: failed to update dwarf: InputOutput
        fn header(self: Self) *Header {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/mem.zig:2999:9: error: failed to update dwarf: InputOutput
        fn isDelimiter(self: Self, index: usize) bool {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:497:13: error: failed to update dwarf: InputOutput
        pub fn addOne(self: *Self) Allocator.Error!*T {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/array_list.zig:110:13: error: failed to update dwarf: InputOutput
        pub fn toOwnedSlice(self: *Self) Allocator.Error!Slice {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:1078:13: error: failed to update dwarf: InputOutput
        pub fn getAdapted(self: Self, key: anytype, ctx: anytype) ?V {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:531:9: error: failed to update dwarf: InputOutput
        const minimal_capacity = 8;
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:1439:9: error: failed to update dwarf: InputOutput
        fn allocate(self: *Self, allocator: Allocator, new_capacity: Size) Allocator.Error!void {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:1261:9: error: failed to update dwarf: InputOutput
        fn initMetadatas(self: *Self) void {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:863:13: error: failed to update dwarf: InputOutput
        pub fn putAssumeCapacityNoClobberContext(self: *Self, key: K, value: V, ctx: Context) void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:719:13: error: failed to update dwarf: InputOutput
        pub fn deinit(self: *Self, allocator: Allocator) void {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:581:13: error: failed to init dwarf: InputOutput
            const tombstone: FingerPrint = 1;
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/std/hash_map.zig:587:13: error: failed to init dwarf: InputOutput
            const slot_tombstone = @as(u8, @bitCast(Metadata{ .fingerprint = tombstone }));
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~/.cache/zig/p/1220f43a23ab22f4a151477923e986cbfeb01a7970f57e85ea78fb17b3fcdb21d88d/time.zig:455:1: error: failed to update dwarf: InputOutput
fn daysInMonth(year: u16, month: u16) u16 {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
error: the following command failed with 166 compilation errors:

@jacobly0 jacobly0 added zig build system std.Build, the build runner, `zig build` subcommand, package management use case Describes a real use case that is difficult or impossible, but does not propose a solution. labels Jan 31, 2025
@jcalabro
Copy link
Contributor Author

Seems like the culprit in some way. Good catch, thanks!

Is there anything else I can do to help confirm? I tried coming up with a minimal repro, but it appears to be getting some other, but perhaps related issues (i.e. not error: failed to finish dwarf function: InputOutput)? I'm still on zig version 0.14.0-dev.2577+271452d22 )

// main.zig
const std = @import("std");

pub fn main() !void {
    std.debug.print("Hello, world!\n", .{});
}
#!/usr/bin/env bash

# run.sh

for i in {1..100}; do
  zig build-exe main.zig &
done;
wait
Output
$ ./run.sh
warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

error: ld.lld: main.o: section header string table index 1 does not exist
error: ld.lld: main.o: section header string table index 1 does not exist
error(link): /home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/zig terminated with stderr:

error: LLDCrashed
error: ld.lld: main.o: unknown file type
error: ld.lld: main.o: unknown file type
error: ld.lld: main.o: unknown file type
error: ld.lld: main.o: unknown file type
error: ld.lld: main.o: section header string table index 1 does not exist
error(link): /home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/zig terminated with stderr:

LLDCrashedObject
error(link): /home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/zig terminated with stderr:

LLDCrashedM Emit Object
error: ld.lld: main.o: unknown file type
error: ld.lld: main.o: section header string table index 1 does not exist
error: ld.lld: main.o: unknown file type
warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

error(link): /home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/zig terminated with stderr:

error: LLDCrashed
warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

error(link): /home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/zig terminated with stderr:

error: LLDCrashed
warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

error: ld.lld: main.o: unknown file type
warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

error: ld.lld: main.o: unknown file type
warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

error: ld.lld: main.o: section header string table index 1 does not exist
warning(link): unexpected LLD stderr:
ld.lld: warning: cannot find entry symbol _start; not setting start address

... more like this

@jacobly0
Copy link
Member

Those errors look unrelated, you just missed -fno-llvm to build-exe.

@jcalabro
Copy link
Contributor Author

True, I forgot, sorry! Here are the actual errors, I also added -fno-lld:

/home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/lib/std/array_hash_map.zig:1088:13: error: unable to codegen: InputOutput
        pub fn get(self: Self, key: K) ?V {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/lib/std/os/linux.zig:2349:5: error: unable to codegen: InputOutput
pub fn prlimit(pid: pid_t, resource: rlimit_resource, new_limit: ?*const rlimit, old_limit: ?*rlimit) usize {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/lib/std/io/fixed_buffer_stream.zig:61:13: error: unable to codegen: InputOutput
        pub fn write(self: *Self, bytes: []const u8) WriteError!usize {
        ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jcalabro/zig/0.14.0-dev.2577+271452d22/files/lib/std/fs/path.zig:819:5: error: unable to codegen: InputOutput
pub fn dirname(path: []const u8) ?[]const u8 {

And lots more like that

@jacobly0
Copy link
Member

jacobly0 commented Jan 31, 2025

Both the dwarf and lld errors are explained by the cache mode being set to incremental. This should be changed to whole cache mode before release for the case of -fno-llvm -fno-incremental, which would fix the dwarf errors and support the common case of language server interference while using the self-hosted backend, but not incremental.

@jacobly0 jacobly0 added frontend Tokenization, parsing, AstGen, Sema, and Liveness. and removed zig build system std.Build, the build runner, `zig build` subcommand, package management backend-self-hosted labels Feb 11, 2025
@andrewrk andrewrk modified the milestones: 0.14.0, 0.14.1 Mar 1, 2025
@jacobly0 jacobly0 modified the milestones: 0.14.1, 0.14.0 Mar 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Observed behavior contradicts documented or intended behavior frontend Tokenization, parsing, AstGen, Sema, and Liveness. use case Describes a real use case that is difficult or impossible, but does not propose a solution.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants