ziglang / zig

General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
https://ziglang.org
MIT License
34.78k stars 2.54k forks source link

Compiler fails to build #21850

Open joelreymont opened 6 days ago

joelreymont commented 6 days ago

Zig Version

0.14.0-dev.2052+6a364b4a5

Steps to Reproduce and Observed Behavior

Trying to compile this

const std = @import("std");

pub fn main() !void {
    var gpa = std.heap.GeneralPurposeAllocator(.{}){};
    const allocator = gpa.allocator();
    const value = toValue(10)(allocator, 20);
    std.debug.print("All your {s} are belong to us.\n", .{value});
}

fn toValue(comptime value: anytype) fn (std.mem.Allocator, anytype) anyerror!@TypeOf(value) {
    return struct {
        fn toValue(_: std.mem.Allocator, _: anytype) !@TypeOf(value) {
            return value;
        }
    }.toValue;
}

gives me this error

❯ zig build
install
└─ install test
   └─ zig build-exe test Debug native failure
error: the following command terminated unexpectedly:
/usr/local/bin/zig build-exe -ODebug -Mroot=/Users/joelr/Work/Zig/test/src/main.zig --cache-dir /Users/joelr/Work/Zig/test/.zig-cache --global-cache-dir /Users/joelr/.cache/zig --name test --zig-lib-dir /usr/local/lib/zig/ --listen=-
Build Summary: 0/3 steps succeeded; 1 failed
install transitive failure
└─ install test transitive failure
   └─ zig build-exe test Debug native failure
error: the following build command failed with exit code 1:
/Users/joelr/Work/Zig/test/.zig-cache/o/4ae0111ced83033f2da7f7f079d783c5/build /usr/local/bin/zig /usr/local/lib/zig /Users/joelr/Work/Zig/test /Users/joelr/Work/Zig/test/.zig-cache /Users/joelr/.cache/zig --seed 0x55c54982 -Z381019e07a3ef546

Expected Behavior

Build should finish.

joelreymont commented 6 days ago

Folks here tried to reduce the code

const std = @import("std");

pub fn main() void {
    _ = &toValue(10);
}

fn toValue(comptime value: anytype) fn (anytype) @TypeOf(value) {
    return struct {
        fn toValue(_: anytype) @TypeOf(value) {
            return value;
        }
    }.toValue;
}

and made the compiler run out of memory.

$ zig build run
run
└─ run t
   └─ zig build-exe t Debug native failure
error: error: OutOfMemory

error: the following command exited with error code 1:
/home/joe/.local/bin/zig build-exe -ODebug -Mroot=/home/joe/dev/test/t/src/main.zig --cache-dir /home/joe/dev/test/t/.zig-cache --global-cache-dir /home/joe/.cache/zig --name t --zig-lib-dir /home/joe/.local/lib/zig/ --listen=-
Build Summary: 2/7 steps succeeded; 1 failed
run transitive failure
└─ run t transitive failure
   ├─ zig build-exe t Debug native failure
   └─ install transitive failure
      └─ install t transitive failure
         └─ zig build-exe t Debug native (reused)
error: the following build command failed with exit code 1:
/home/joe/dev/test/t/.zig-cache/o/d6ab6ac316016b1fb96986f35985df59/build /home/joe/.local/bin/zig /home/joe/.local/lib/zig /home/joe/dev/test/t /home/joe/dev/test/t/.zig-cache /home/joe/.cache/zig --seed 0xcf2b4b4d -Zfb3c70f1c60d0fa9 run
Rexicon226 commented 6 days ago

Possibly a duplicate of #21099?