Mir-algorithm fails to build
Redub version: 1.20.3
dmd version: 2.109.1
dub version: 1.38.1
Any project with mir-algorithm as a dependency fails to build, dub builds mir projects just fine.
I have been having this problem for a couple of months already, so it's unrelated to the latest realese.
Steps to reproduce
create a project and set the dub.json to:
{
"dependencies": {
"mir-algorithm": "*"
},
"name": "example"
}
Then do:
$ redub
You will get something like this:
[ vabenil@arch-pc: D/tests/2 ]$ redub
Dependencies resolved - 0 ms "debug" using /usr/bin/dmd v2.109.1 [linux-x86_64] - full parallel
Up-to-Date: mir-core [library];
Will Build: 2; mir-algorithm [default];
Built: 2 - 527ms
Build Failure: 'mir-algorithm 3.22.3 [default]'
Redub v1.20.3
dmd 2.109.1
Failed with flags:
/usr/bin/dmd '-color=on' -op -debug -g '-version=Have_mir_core' '-version=Have_mir_algorithm' -I/home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source -I/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/graph/package.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/graph/tarjan.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/type_info.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/format.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/small_string.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algorithm/setops.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algorithm/iteration.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/base64.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/mod.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/linear.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/package.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/polynomial.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/generic.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/utility.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/constant.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/extrapolate.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/spline.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/rc/context.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/rc/slim_ptr.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/rc/package.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/rc/array.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/rc/ptr.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/stat.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/sum.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/numeric.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/func/normal.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/func/hermite.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/func/expdigamma.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/field.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/allocation.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/dynamic.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/iterator.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/sorting.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/filling.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/package.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/ndfield.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/concatenation.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/chunks.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/topology.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/slice.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/mutation.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/fuse.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/connect/cpython.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/traits.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/internal.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/date.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/appender.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/array/allocation.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/polynomial.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/annotated.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/numeric.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/parse.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/test.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/stdio.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/combinatorics/package.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ediff.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/container/binaryheap.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/series.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/range.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/format_impl.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/cpp_export/numeric.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/serde.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/internal/ldc_simd.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/string_map.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/lob.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/small_array.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/timestamp.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algebraic_alias/ion.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algebraic_alias/transform.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algebraic_alias/json.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/decimal.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/fixed.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/fp.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/low_level_view.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/kernel.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/phobos_kernel.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/parse.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/dec2float_table.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/dec2float.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/ryu/table.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/ryu/generic_128.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/integer.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/string.d -lib '-of=/home/vabenil/.dub/.redub/7B422004A01006B4/83CCC8CC53C8F507/libmir-algorithm.a'
Failed after 2140ms with message
/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/algebraic.d(1474): Error: `pure` function `mir.algebraic.Algebraic!(Ion_).Algebraic.opEquals!().opEquals` cannot call impure function `mir.annotated.U!(Algebraic!(Ion_)).Annotated.opEquals`
/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/algebraic.d(1474): Error: `@nogc` function `mir.algebraic.Algebraic!(Ion_).Algebraic.opEquals!().opEquals` cannot call non-@nogc function `mir.annotated.U!(Algebraic!(Ion_)).Annotated.opEquals`
/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/algebraic.d(1474): Error: function `mir.annotated.U!(Algebraic!(Ion_)).Annotated.opEquals` is not `nothrow`
/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/algebraic.d(1429): Error: function `mir.algebraic.Algebraic!(Ion_).Algebraic.opEquals!().opEquals` may throw but is marked as `nothrow`
/home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/annotated.d(69): Error: template instance `mir.algebraic.Algebraic!(Ion_).Algebraic.opEquals!()` error instantiating
/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/internal/meta.d(683): instantiated from here: `U!(Algebraic!(Ion_))`
/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/algebraic.d(858): 12 recursive instantiations from here: `ReplaceTypeUnless!(isVariant, This, Algebraic!(Ion_), typeof(null), bool, long, double, string, Blob, Clob, Timestamp, This[], StringMap!(This), Annotated!(This))`
/home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algebraic_alias/ion.d(60): instantiated from here: `Algebraic!(Ion_)`
Warning: If you think this is a bug on redub, do test with dub, if it works, do file an issue at https://github.com/MrcSnm/redub/issues/new/choose
Build Failure
[ vabenil@arch-pc: D/tests/2 ]$ ^C
[ vabenil@arch-pc: D/tests/2 ]$ dub --verison
Error Unknown command line flags: --verison
Type "dub run -h" to get a list of all supported flags.
[ vabenil@arch-pc: D/tests/2 ]$ dub --version
DUB version 1.38.1, built on Jul 7 2024
Feel free to ask for extra details
I will certailny need more details, this builds fine forme, though I`m on windows
I'm using Arch linux kernel 6.12.12-1-lts.
Haven't tested on Windows.
For a better test I deleted my ~/.dub directory to start fresh, and compiled the default program provided by dub init with redub -f -v (I also have no dub.selection.json)
{
"authors": [
"Vabenil"
],
"copyright": "Copyright © 2025, Vabenil",
"dependencies": {
"mir-algorithm": "~>3.22.3"
},
"description": "Test",
"license": "MIT",
"name": "bl_test"
}
This was the output of the command: Beware no linewrapping!
[ vabenil@arch-pc: D/tests/bl_test ]$ redub -f -v
Parsing /home/vabenil/MEGA/sync/D/tests/bl_test/dub.json at /home/vabenil/MEGA/sync/D/tests/bl_test with : -c
Added project bl_test to memory cache.
Getting package mir-algorithm:@~>3.22.3
Fetching Package: mir-algorithm version ~>3.22.3
Parsing /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/dub.json at /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm with : -c
Getting package mir-core:@>=1.6.0
Fetching Package: mir-core version >=1.6.0
Parsing /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/dub.json at /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core with : -c
Fetch Success: mir-algorithm v3.22.3 required by bl_test
Fetch Success: mir-core v1.7.1 required by mir-algorithm
Dependencies resolved - 1822 ms "debug" using /usr/bin/dmd v2.109.1 [linux-x86_64] - full parallel
Will Build: bl_test; mir-algorithm [default]; mir-core;
Built: bl_test - 244ms
/usr/bin/dmd '-color=on' -op -debug -g '-version=Have_mir_core' '-version=Have_mir_algorithm' '-version=Have_bl_test' -I/home/vabenil/MEGA/sync/D/tests/bl_test/source -I/home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source -I/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source /home/vabenil/MEGA/sync/D/tests/bl_test/source/app.d -c '-of=/home/vabenil/.dub/.redub/8960FBB75F103957/8960FBB75F103957/bl_test.o'
Built: mir-core 1.7.1 - 241ms
/usr/bin/dmd '-color=on' -op -debug -g '-version=Have_mir_core' -I/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/complex/math.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/complex/package.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/functional.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/string_table.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/conv.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/algebraic.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/math/ieee.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/math/package.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/math/constant.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/math/common.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/primitives.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/bitop.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/enums.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/utility.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/checkedint.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/reflection.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/bitmanip.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/qualifier.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/internal/meta.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/internal/utility.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/internal/memory.d /home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/exception.d -lib '-of=/home/vabenil/.dub/.redub/8960FBB75F103957/CD5BCF2AC3649BD3/libmir-core.a'
Build Failure: 'mir-algorithm 3.22.3 [default]'
Redub v1.20.3
dmd 2.109.1
Failed with flags:
/usr/bin/dmd '-color=on' -op -debug -g '-version=Have_mir_core' '-version=Have_mir_algorithm' -I/home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source -I/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/graph/package.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/graph/tarjan.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/type_info.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/format.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/small_string.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algorithm/setops.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algorithm/iteration.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/base64.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/mod.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/linear.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/package.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/polynomial.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/generic.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/utility.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/constant.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/extrapolate.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/spline.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/rc/context.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/rc/slim_ptr.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/rc/package.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/rc/array.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/rc/ptr.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/stat.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/sum.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/numeric.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/func/normal.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/func/hermite.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/func/expdigamma.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/field.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/allocation.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/dynamic.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/iterator.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/sorting.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/filling.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/package.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/ndfield.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/concatenation.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/chunks.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/topology.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/slice.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/mutation.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/fuse.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/connect/cpython.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/traits.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/internal.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/date.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/appender.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/array/allocation.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/polynomial.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/annotated.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/numeric.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/parse.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/test.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/stdio.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/combinatorics/package.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ediff.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/container/binaryheap.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/series.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/range.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/format_impl.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/cpp_export/numeric.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/serde.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/internal/ldc_simd.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/string_map.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/lob.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/small_array.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/timestamp.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algebraic_alias/ion.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algebraic_alias/transform.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algebraic_alias/json.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/decimal.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/fixed.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/fp.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/low_level_view.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/kernel.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/phobos_kernel.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/parse.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/dec2float_table.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/dec2float.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/ryu/table.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/ryu/generic_128.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/integer.d /home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/string.d -lib '-of=/home/vabenil/.dub/.redub/8960FBB75F103957/83CCC8CC53C8F507/libmir-algorithm.a'
Failed after 2186ms with message
/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/algebraic.d(1474): Error: `pure` function `mir.algebraic.Algebraic!(Ion_).Algebraic.opEquals!().opEquals` cannot call impure function `mir.annotated.U!(Algebraic!(Ion_)).Annotated.opEquals`
/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/algebraic.d(1474): Error: `@nogc` function `mir.algebraic.Algebraic!(Ion_).Algebraic.opEquals!().opEquals` cannot call non-@nogc function `mir.annotated.U!(Algebraic!(Ion_)).Annotated.opEquals`
/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/algebraic.d(1474): Error: function `mir.annotated.U!(Algebraic!(Ion_)).Annotated.opEquals` is not `nothrow`
/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/algebraic.d(1429): Error: function `mir.algebraic.Algebraic!(Ion_).Algebraic.opEquals!().opEquals` may throw but is marked as `nothrow`
/home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/annotated.d(69): Error: template instance `mir.algebraic.Algebraic!(Ion_).Algebraic.opEquals!()` error instantiating
/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/internal/meta.d(683): instantiated from here: `U!(Algebraic!(Ion_))`
/home/vabenil/.dub/packages/mir-core/1.7.1/mir-core/source/mir/algebraic.d(858): 12 recursive instantiations from here: `ReplaceTypeUnless!(isVariant, This, Algebraic!(Ion_), typeof(null), bool, long, double, string, Blob, Clob, Timestamp, This[], StringMap!(This), Annotated!(This))`
/home/vabenil/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algebraic_alias/ion.d(60): instantiated from here: `Algebraic!(Ion_)`
Warning: If you think this is a bug on redub, do test with dub, if it works, do file an issue at https://github.com/MrcSnm/redub/issues/new/choose
Build Failure
I tested it in an Ubuntu 24.04 instance in AWS, using redub-ubuntu-latest-x86_64 from the release page and the build failed exactly the same way
I'll test it later today against linux
I have just tested on Linux and it still builds fine for me:
hipreme@LinuxMint:~/test/redubug$ redub -f -v --compiler=dmd
Parsing /home/hipreme/test/redubug/dub.json at /home/hipreme/test/redubug with : -c
Added project redubug to memory cache.
Getting package mir-algorithm:@~>3.22.3
Parsing /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/dub.json at /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm with : -c
Getting package mir-core:@>=1.6.0
Parsing /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/dub.json at /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core with : -c
Dependencies resolved - 0 ms "debug" using /usr/bin/dmd v2.109.1 [linux-x86_64] - full parallel
Will Build: redubug; mir-algorithm [default]; mir-core;
Built: redubug - 59ms
/usr/bin/dmd '-color=on' -op -debug -g '-version=Have_mir_core' '-version=Have_mir_algorithm' '-version=Have_redubug' -I/home/hipreme/test/redubug/source -I/home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source -I/home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source /home/hipreme/test/redubug/source/app.d -c '-of=/home/hipreme/.dub/.redub/7F5D97366D582EA9/7F5D97366D582EA9/redubug.o'
Built: mir-core 1.7.1 - 65ms
/usr/bin/dmd '-color=on' -op -debug -g '-version=Have_mir_core' -I/home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/math/ieee.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/math/package.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/math/constant.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/math/common.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/primitives.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/complex/package.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/complex/math.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/internal/meta.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/internal/memory.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/internal/utility.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/qualifier.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/exception.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/checkedint.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/bitop.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/functional.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/enums.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/utility.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/bitmanip.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/reflection.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/conv.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/string_table.d /home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source/mir/algebraic.d -lib '-of=/home/hipreme/.dub/.redub/7F5D97366D582EA9/E509B68461E8527A/libmir-core.a'
Built: mir-algorithm 3.22.3 [default] - 914ms
/usr/bin/dmd '-color=on' -op -debug -g '-version=Have_mir_core' '-version=Have_mir_algorithm' -I/home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source -I/home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/source /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/string_map.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/ryu/table.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/ryu/generic_128.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/kernel.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/phobos_kernel.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/parse.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/dec2float.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/internal/dec2float_table.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/fixed.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/fp.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/integer.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/low_level_view.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/bignum/decimal.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/numeric.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/func/expdigamma.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/func/normal.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/func/hermite.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/stat.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/math/sum.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algorithm/setops.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algorithm/iteration.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/type_info.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/internal/ldc_simd.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algebraic_alias/transform.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algebraic_alias/json.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/algebraic_alias/ion.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/generic.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/spline.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/extrapolate.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/mod.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/polynomial.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/package.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/linear.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/utility.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/interpolate/constant.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/date.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ediff.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/range.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/cpp_export/numeric.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/polynomial.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/rc/ptr.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/rc/slim_ptr.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/rc/array.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/rc/package.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/rc/context.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/serde.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/parse.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/format.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/appender.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/small_array.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/small_string.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/chunks.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/ndfield.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/iterator.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/filling.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/fuse.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/connect/cpython.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/concatenation.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/internal.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/slice.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/dynamic.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/mutation.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/package.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/topology.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/field.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/traits.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/sorting.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/ndslice/allocation.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/container/binaryheap.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/numeric.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/graph/tarjan.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/graph/package.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/stdio.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/test.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/timestamp.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/combinatorics/package.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/string.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/annotated.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/series.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/array/allocation.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/lob.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/format_impl.d /home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/source/mir/base64.d -lib '-of=/home/hipreme/.dub/.redub/7F5D97366D582EA9/E3E943ED73AB830A/libmir-algorithm.a'
Linked: redubug - 86ms
/usr/bin/dmd -of/home/hipreme/.dub/.redub/7F5D97366D582EA9/7F5D97366D582EA9/redubug /home/hipreme/test/redubug/redubug.o -g -L--no-as-needed -L--start-group -L/home/hipreme/.dub/packages/mir-algorithm/3.22.3/mir-algorithm/libmir-algorithm.a -L/home/hipreme/.dub/packages/mir-core/1.7.1/mir-core/libmir-core.a -L--end-group
Finished redubug - 1002ms - To force a rebuild of up-to-date targets, run again with --force
Maybe you could try posting the dub -f -v --compiler=dmd here too?
After some tests, I've noticed: The order of source files matters for mir. This is a known bug that 0xEAB commented on D discord.
The bug is also reproducible with dub by calling dub build --combined.
Further tests allowed me to know that:
Dub specifies files by using dirEntries("*.d", SpanMode.breadth)
Redub specifies files by using dirEntries("*.d", SpanMode.depth).
The main difference is due to depth allocating less memory and thus being faster.
As a workaround, I could suggest a redub flag (--breadth) to solve that issue if it is very important. But, to be fair, that issue should really be solved from the D compiler.
@MrcSnm Hey, regarding your workaround I would personally appreciate it in the case this issue is not easily solvable (if it's a long-term issue that I will have to live with). It generally prevents me from using redub in anything that uses mir after all.
@vabenil Take a look on the new version. Try it with redub build --breadth
Actually, I don't think I'm able to fix that easily @vabenil .
~~From what I've seen, dirEntries in D doesn't implement spanmode.breadth correctly, so, the cause might be beyond my understanding right now :(~~
Update: I've added my own implementation of --breadth , so, you can try
@vabenil Take a look on the new version. Try it with
redub build --breadthSorry, hadn't had much time to test this until today.
So I tried with the latest git version:
Redub v1.21.3 - A reimagined DUB. Built With LDC v2.110 at Mar 1 2025
and now mir-algorithm compiles fine with --breadth.
Though I noticed that if I fisrt delete my ~/.dub directory and then I run dub build -f, then
after that anytime I call redub build -f --breadth I will get a Build Failure.
I have tried building mir with redub --breadth on Windows. I basically got the same error you were getting, while the depth version builds fine. Unfortunately I don't know how much more I could do, unfortunately, even the dir iterator itself is OS dependent and may lead to errors
Btw I had similar issue some time ago: https://github.com/libmir/asdf/issues/23
And I really needed --combined - so I broke these contracts and fix the code in this fork: https://github.com/cyrusmsk/mir-algorithm
Of course it is not the proper way to fix the issue, but just in case you want to test with this implementation.