You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Working on some code with a recursive Tree type, the compiler crashes with the following error message (see below for the full stacktrace):
thread 'main' panicked at crates/compiler/load_internal/src/file.rs:685:26:
way too many specialization passes!
Following a discussion with @bhansconnecton Zulip, he reproduced the issue with this much simpler code:
app [main] { pf: platform "https://github.com/roc-lang/basic-cli/releases/download/0.15.0/SlwdbJ-3GR7uBWQo6zlmYWNYOxnvo8r6YABXD-45UOw.tar.br" }
import pf.StdoutTree : [Empty, Node { label : Str, children : SetTree }]
main =
x : Tree
x = Node { label: "a", children: Set.fromList [] }
Inspect.toStr x
|>Stdout.line!
Stacktrace
RUST_BACKTRACE=1 ~/dev/software/roc/target/debug/roc run test-bug.roc
thread 'main' panicked at crates/compiler/load_internal/src/file.rs:685:26:
way too many specialization passes!
stack backtrace:
0: rust_begin_unwind
at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/panicking.rs:647:5
1: core::panicking::panic_fmt
at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/core/src/panicking.rs:72:14
2: core::panicking::panic_display
at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/core/src/panicking.rs:196:5
3: core::panicking::panic_str
at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/core/src/panicking.rs:171:5
4: core::option::expect_failed
at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/core/src/option.rs:1988:5
5: expect<u8>
at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/core/src/option.rs:894:21
6: inc
at /Users/ageron/dev/software/roc/crates/compiler/load_internal/src/file.rs:684:21
7: update
at /Users/ageron/dev/software/roc/crates/compiler/load_internal/src/file.rs:2967:21
8: state_thread_step
at /Users/ageron/dev/software/roc/crates/compiler/load_internal/src/file.rs:1707:37
9: {closure#1}
at /Users/ageron/dev/software/roc/crates/compiler/load_internal/src/file.rs:2054:23
10: {closure#0}<roc_load_internal::file::load_multi_threaded::{closure_env#1}, core::result::Result<roc_load_internal::file::LoadResult, roc_load_internal::file::LoadingProblem>>
at /Users/ageron/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.16/src/thread.rs:163:65
11: call_once<core::result::Result<roc_load_internal::file::LoadResult, roc_load_internal::file::LoadingProblem>, crossbeam_utils::thread::scope::{closure_env#0}<roc_load_internal::file::load_multi_threaded::{closure_env#1}, core::result::Result<roc_load_internal::file::LoadResult, roc_load_internal::file::LoadingProblem>>>
at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/core/src/panic/unwind_safe.rs:272:9
12: do_call<core::panic::unwind_safe::AssertUnwindSafe<crossbeam_utils::thread::scope::{closure_env#0}<roc_load_internal::file::load_multi_threaded::{closure_env#1}, core::result::Result<roc_load_internal::file::LoadResult, roc_load_internal::file::LoadingProblem>>>, core::result::Result<roc_load_internal::file::LoadResult, roc_load_internal::file::LoadingProblem>>
at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/panicking.rs:554:40
13: ___rust_try
14: try<core::result::Result<roc_load_internal::file::LoadResult, roc_load_internal::file::LoadingProblem>, core::panic::unwind_safe::AssertUnwindSafe<crossbeam_utils::thread::scope::{closure_env#0}<roc_load_internal::file::load_multi_threaded::{closure_env#1}, core::result::Result<roc_load_internal::file::LoadResult, roc_load_internal::file::LoadingProblem>>>>
at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/panicking.rs:518:19
15: catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<crossbeam_utils::thread::scope::{closure_env#0}<roc_load_internal::file::load_multi_threaded::{closure_env#1}, core::result::Result<roc_load_internal::file::LoadResult, roc_load_internal::file::LoadingProblem>>>, core::result::Result<roc_load_internal::file::LoadResult, roc_load_internal::file::LoadingProblem>>
at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/panic.rs:142:14
16: scope<roc_load_internal::file::load_multi_threaded::{closure_env#1}, core::result::Result<roc_load_internal::file::LoadResult, roc_load_internal::file::LoadingProblem>>
at /Users/ageron/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossbeam-utils-0.8.16/src/thread.rs:163:18
17: load_multi_threaded
at /Users/ageron/dev/software/roc/crates/compiler/load_internal/src/file.rs:1987:29
18: load
at /Users/ageron/dev/software/roc/crates/compiler/load_internal/src/file.rs:1494:35
19: load
at /Users/ageron/dev/software/roc/crates/compiler/load/src/lib.rs:39:5
20: load_and_monomorphize
at /Users/ageron/dev/software/roc/crates/compiler/load/src/lib.rs:143:11
21: build_file
at /Users/ageron/dev/software/roc/crates/compiler/build/src/program.rs:726:18
22: build
at /Users/ageron/dev/software/roc/crates/cli/src/lib.rs:920:27
23: main
at /Users/ageron/dev/software/roc/crates/cli/src/main.rs:64:17
24: call_once<fn() -> core::result::Result<(), std::io::error::Error>, ()>
at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
The text was updated successfully, but these errors were encountered:
Working on some code with a recursive
Tree
type, the compiler crashes with the following error message (see below for the full stacktrace):Following a discussion with @bhansconnect on Zulip, he reproduced the issue with this much simpler code:
Stacktrace
The text was updated successfully, but these errors were encountered: