reference to undefined variable causes 'runtime stack empty' panic in tvix-repl

#253
Opened by bergkvist at 2023-02-12T17·33+00

How to reproduce:

# Run this inside tvix project
$ cargo build --release && RUST_BACKTRACE=1 ./target/release/tvix --expr "a"

Output:

thread 'main' panicked at 'runtime stack empty', eval/src/vm.rs:265:26
stack backtrace:
   0: rust_begin_unwind
             at /rustc/d6f99e535a301a421dfee52a7c25bb4bdf420344/library/std/src/panicking.rs:575:5
   1: core::panicking::panic_fmt
             at /rustc/d6f99e535a301a421dfee52a7c25bb4bdf420344/library/core/src/panicking.rs:64:14
   2: core::panicking::panic_display
             at /rustc/d6f99e535a301a421dfee52a7c25bb4bdf420344/library/core/src/panicking.rs:136:5
   3: core::panicking::panic_str
             at /rustc/d6f99e535a301a421dfee52a7c25bb4bdf420344/library/core/src/panicking.rs:120:5
   4: core::option::expect_failed
             at /rustc/d6f99e535a301a421dfee52a7c25bb4bdf420344/library/core/src/option.rs:1923:5
   5: tvix_eval::vm::run_lambda
   6: tvix_eval::Evaluation::evaluate
   7: tvix::interpret
   8: tvix::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

  1. bergkvist updated the body of this issue at 2023-02-12T17·33+00
  2. This is very curious. Initially I thought this is related to b/238, but it's something else. I bisected, and we introduced this bug in cl/7763. It must be something related to accidentally discarding an error from the compiler, investigating.

    tazjin at 2023-02-13T07·49+00

  3. Fix is in cl/8090.

    In the commit referenced above, a branch was missing that accidentally ignored some compiler errors (such as unknown static variables).

    tazjin at 2023-02-13T08·08+00

  4. Thanks for reporting this, it's fixed!

    tazjin at 2023-02-14T09·36+00

  5. tazjin closed this issue at 2023-02-14T09·36+00