-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Closed
Labels
bugObserved behavior contradicts documented or intended behaviorObserved behavior contradicts documented or intended behaviorregressionIt worked in a previous version of Zig, but stopped working.It worked in a previous version of Zig, but stopped working.zig build systemstd.Build, the build runner, `zig build` subcommand, package managementstd.Build, the build runner, `zig build` subcommand, package management
Milestone
Description
Zig Version
0.11.0-dev.3198+ad20236e9
Steps to Reproduce and Observed Behavior
Depends on #15754.
$ git clone https://github.com/andrewrk/groovebasin
$ git checkout zig-pkg
$ zig build
/home/andy/.cache/zig/p/12209e851f7e2c6ba2f01de3e11b1771f03e49666065320abd8414aac152bfa75fae/build.zig:1:1: error: file exists in multiple modules
/home/andy/.cache/zig/p/12209e851f7e2c6ba2f01de3e11b1771f03e49666065320abd8414aac152bfa75fae/build.zig:1:1: note: root of module root.@dependencies.groove.chromaprint.ffmpeg.libz
/home/andy/.cache/zig/p/12209e851f7e2c6ba2f01de3e11b1771f03e49666065320abd8414aac152bfa75fae/build.zig:1:1: note: root of module root.@dependencies.groove.ffmpeg.libz
/home/andy/.cache/zig/p/122025fb57739eb67edbbafed2b270479089ee7395cf4b0849001ab95c16a2bae0d9/build.zig:1:1: error: file exists in multiple modules
/home/andy/.cache/zig/p/122025fb57739eb67edbbafed2b270479089ee7395cf4b0849001ab95c16a2bae0d9/build.zig:1:1: note: root of module root.@dependencies.groove.chromaprint.ffmpeg.libmp3lame
/home/andy/.cache/zig/p/122025fb57739eb67edbbafed2b270479089ee7395cf4b0849001ab95c16a2bae0d9/build.zig:1:1: note: root of module root.@dependencies.groove.ffmpeg.libmp3lame
/home/andy/.cache/zig/p/1220f96a4eaae5bad95ab9391431f125b7cc32edbd6d17397ce066d498f8fc9b63c2/build.zig:1:1: error: file exists in multiple modules
/home/andy/.cache/zig/p/1220f96a4eaae5bad95ab9391431f125b7cc32edbd6d17397ce066d498f8fc9b63c2/build.zig:1:1: note: root of module root.@dependencies.groove.chromaprint.ffmpeg.libvorbis.libogg
/home/andy/.cache/zig/p/1220f96a4eaae5bad95ab9391431f125b7cc32edbd6d17397ce066d498f8fc9b63c2/build.zig:1:1: note: root of module root.@dependencies.groove.ffmpeg.libvorbis.libogg
/home/andy/.cache/zig/p/1220d6c5bf73bee37589a086147ab8f7e855ee98becd3f2e26e58a920ca8f766105f/build.zig:1:1: error: file exists in multiple modules
/home/andy/.cache/zig/p/1220d6c5bf73bee37589a086147ab8f7e855ee98becd3f2e26e58a920ca8f766105f/build.zig:1:1: note: root of module root.@dependencies.groove.chromaprint.ffmpeg.libvorbis
/home/andy/.cache/zig/p/1220d6c5bf73bee37589a086147ab8f7e855ee98becd3f2e26e58a920ca8f766105f/build.zig:1:1: note: root of module root.@dependencies.groove.ffmpeg.libvorbis
/home/andy/.cache/zig/p/122032bc8d97d857b7c2f71252da293e4f293a4ea0d162909fb0705ba17c40ae2a87/build.zig:1:1: error: file exists in multiple modules
/home/andy/.cache/zig/p/122032bc8d97d857b7c2f71252da293e4f293a4ea0d162909fb0705ba17c40ae2a87/build.zig:1:1: note: root of module root.@dependencies.groove.chromaprint.ffmpeg.nasm
/home/andy/.cache/zig/p/122032bc8d97d857b7c2f71252da293e4f293a4ea0d162909fb0705ba17c40ae2a87/build.zig:1:1: note: root of module root.@dependencies.groove.ffmpeg.nasm
/home/andy/.cache/zig/p/122032bc8d97d857b7c2f71252da293e4f293a4ea0d162909fb0705ba17c40ae2a87/build.zig:1:1: note: 1 more errors omitted
$ zig build
thread 855578 panic: reached unreachable code
/home/andy/dev/zig/lib/std/debug.zig:286:14: 0x5adfeb6 in assert (zig)
if (!ok) unreachable; // assertion failure
^
/home/andy/dev/zig/lib/std/hash_map.zig:1032:19: 0x5d0e970 in putAssumeCapacityNoClobberContext (zig)
assert(!self.containsContext(key, ctx));
^
/home/andy/dev/zig/lib/std/hash_map.zig:1029:58: 0x5b599d0 in putAssumeCapacityNoClobber (zig)
return self.putAssumeCapacityNoClobberContext(key, value, undefined);
^
/home/andy/dev/zig/src/Package.zig:125:41: 0x5b59933 in add (zig)
pkg.table.putAssumeCapacityNoClobber(name_dupe, package);
^
/home/andy/dev/zig/src/Package.zig:309:20: 0x5cb99d7 in fetchAndAddDependencies (zig)
try pkg.add(gpa, name, sub_pkg);
^
/home/andy/dev/zig/src/Package.zig:294:44: 0x5cb9925 in fetchAndAddDependencies (zig)
try sub_pkg.fetchAndAddDependencies(
^
/home/andy/dev/zig/src/Package.zig:294:44: 0x5cb9925 in fetchAndAddDependencies (zig)
try sub_pkg.fetchAndAddDependencies(
^
/home/andy/dev/zig/src/Package.zig:294:44: 0x5cb9925 in fetchAndAddDependencies (zig)
try sub_pkg.fetchAndAddDependencies(
^
/home/andy/dev/zig/src/main.zig:4441:67: 0x5b12a38 in cmdBuild (zig)
const fetch_result = build_pkg.fetchAndAddDependencies(
^
/home/andy/dev/zig/src/main.zig:300:24: 0x5adddbd in mainArgs (zig)
return cmdBuild(gpa, arena, cmd_args);
^
/home/andy/dev/zig/src/main.zig:213:20: 0x5adc8e5 in main (zig)
return mainArgs(gpa, arena, args);
^
/home/andy/dev/zig/lib/std/start.zig:609:37: 0x5adf058 in main (zig)
const result = root.main() catch |err| {
^
???:?:?: 0x7f72fb7d424d in ??? (???)
???:?:?: 0x7ffdf88104fa in ??? (???)
fish: Job 1, '~/dev/zig/build-release/stage4/…' terminated by signal SIGABRT (Abort)
Note that this is two invocations of zig build, one with a clean package cache and one with a populated package cache.
Expected Behavior
Expected the project to build, both from a clean package cache (first zig build invocation) and populated package cache (second zig build invocation).
This project used to build; it no longer does.
It's perfectly normal for the same package to exist multiple times in a given dependency tree.
cc @mlugg
Related: #14708
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugObserved behavior contradicts documented or intended behaviorObserved behavior contradicts documented or intended behaviorregressionIt worked in a previous version of Zig, but stopped working.It worked in a previous version of Zig, but stopped working.zig build systemstd.Build, the build runner, `zig build` subcommand, package managementstd.Build, the build runner, `zig build` subcommand, package management