Skip to content

Non-constant array dimension encountered by count_input_signals() #436

@tim-hoffman

Description

@tim-hoffman

Command:
target/debug/circom --llzk -- circom/tests/subcmps/conv_map2idx_C.circom

Error (stack trace below):
Failed to generate LLZK IR: expected array dimension to be Int or SymRef but found: affine_map<(d0) -> (d0)>

Stack trace from the test with --verbose flag:

Stack backtrace:
   0: std::backtrace_rs::backtrace::libunwind::trace
             at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1: std::backtrace_rs::backtrace::trace_unsynchronized
             at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2: std::backtrace::Backtrace::create
             at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/backtrace.rs:331:13
   3: anyhow::error::<impl anyhow::Error>::msg
             at /Users/tim/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/backtrace.rs:27:14
   4: anyhow::__private::format_err
             at /Users/tim/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/lib.rs:698:13
   5: llzk_backend::shared::LlzkCodegen<P>::count_input_signals::{{closure}}
             at ./llzk_backend/src/shared.rs:1169:25
   6: core::iter::traits::iterator::Iterator::try_fold
             at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/iter/traits/iterator.rs:2434:21
   7: llzk_backend::shared::LlzkCodegen<P>::count_input_signals
             at ./llzk_backend/src/shared.rs:1162:30
   8: llzk_backend::subcmp::SubcmpType::input_size::{{closure}}
             at ./llzk_backend/src/subcmp.rs:558:25
   9: core::iter::adapters::map::map_try_fold::{{closure}}
             at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/iter/adapters/map.rs:95:28
  10: core::iter::traits::iterator::Iterator::try_fold
             at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/iter/traits/iterator.rs:2434:21
  11: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold
             at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/iter/adapters/map.rs:121:19
  12: llzk_backend::subcmp::SubcmpType::input_size
             at ./llzk_backend/src/subcmp.rs:560:14
  13: llzk_backend::subcmp::SubcmpType::initialize_records
             at ./llzk_backend/src/subcmp.rs:575:26
  14: <program_structure::abstract_syntax_tree::ast::Expression as llzk_backend::template::GenerateLLZKInTemplate>::gen_llzk_in_template::{{closure}}::{{closure}}
             at ./llzk_backend/src/template.rs:1472:47
  15: llzk_backend::template::CtorCallScope::emit_ctor_call
             at ./llzk_backend/src/template.rs:1628:40
  16: <program_structure::abstract_syntax_tree::ast::Expression as llzk_backend::template::GenerateLLZKInTemplate>::gen_llzk_in_template::{{closure}}
             at ./llzk_backend/src/template.rs:1471:31
  17: <&llzk_backend::template::TemplateContext as llzk_backend::template::Chainable>::and_then::{{closure}}
             at ./llzk_backend/src/template.rs:840:44
  18: core::option::Option<T>::map
             at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/option.rs:1165:29
  19: <&llzk_backend::template::TemplateContext as llzk_backend::template::Chainable>::and_then
             at ./llzk_backend/src/template.rs:840:35
  20: <program_structure::abstract_syntax_tree::ast::Expression as llzk_backend::template::GenerateLLZKInTemplate>::gen_llzk_in_template
             at ./llzk_backend/src/template.rs:1469:26
  21: <program_structure::abstract_syntax_tree::ast::Statement as llzk_backend::template::GenerateLLZKInTemplate>::gen_llzk_in_template
             at ./llzk_backend/src/template.rs:1240:33
  22: <[program_structure::abstract_syntax_tree::ast::Statement] as llzk_backend::template::GenerateLLZKInTemplate>::gen_llzk_in_template
             at ./llzk_backend/src/template.rs:996:15
  23: <program_structure::abstract_syntax_tree::ast::Statement as llzk_backend::template::GenerateLLZKInTemplate>::gen_llzk_in_template::{{closure}}
             at ./llzk_backend/src/template.rs:1202:31
  24: llzk_backend::gen_context::GenWithCircomScopeHandling::gen_in_given_block_with_new_circom_scope
             at ./llzk_backend/src/gen_context.rs:617:19
  25: llzk_backend::gen_context::GenWithCircomScopeHandling::gen_in_given_block_with_new_circom_scope_and_merge_overwrites
             at ./llzk_backend/src/gen_context.rs:656:14
  26: llzk_backend::gen_context::GenWithCircomScopeHandling::gen_in_current_block_with_new_circom_scope_and_merge_overwrites
             at ./llzk_backend/src/gen_context.rs:674:14
  27: <program_structure::abstract_syntax_tree::ast::Statement as llzk_backend::template::GenerateLLZKInTemplate>::gen_llzk_in_template
             at ./llzk_backend/src/template.rs:1198:26
  28: <[program_structure::abstract_syntax_tree::ast::Statement] as llzk_backend::template::GenerateLLZKInTemplate>::gen_llzk_in_template
             at ./llzk_backend/src/template.rs:996:15
  29: <program_structure::abstract_syntax_tree::ast::Statement as llzk_backend::template::GenerateLLZKInTemplate>::gen_llzk_in_template::{{closure}}
             at ./llzk_backend/src/template.rs:1202:31
  30: llzk_backend::gen_context::GenWithCircomScopeHandling::gen_in_given_block_with_new_circom_scope
             at ./llzk_backend/src/gen_context.rs:617:19
  31: llzk_backend::gen_context::GenWithCircomScopeHandling::gen_in_given_block_with_new_circom_scope_and_merge_overwrites
             at ./llzk_backend/src/gen_context.rs:656:14
  32: llzk_backend::gen_context::GenWithCircomScopeHandling::gen_in_current_block_with_new_circom_scope_and_merge_overwrites
             at ./llzk_backend/src/gen_context.rs:674:14
  33: <program_structure::abstract_syntax_tree::ast::Statement as llzk_backend::template::GenerateLLZKInTemplate>::gen_llzk_in_template
             at ./llzk_backend/src/template.rs:1198:26
  34: llzk_backend::template::gen_while::{{closure}}
             at ./llzk_backend/src/template.rs:1103:30
  35: llzk_backend::gen_context::GenWithCircomScopeHandling::gen_in_given_block_with_new_circom_scope
             at ./llzk_backend/src/gen_context.rs:617:19
  36: llzk_backend::gen_context::GenWithCircomScopeHandling::gen_in_given_block_with_new_circom_scope_and_cache_overwrites
             at ./llzk_backend/src/gen_context.rs:634:14
  37: llzk_backend::template::gen_while
             at ./llzk_backend/src/template.rs:1101:14
  38: <program_structure::abstract_syntax_tree::ast::Statement as llzk_backend::template::GenerateLLZKInTemplate>::gen_llzk_in_template::{{closure}}
             at ./llzk_backend/src/shared.rs:1510:20
  39: llzk_backend::gen_context::GenWithCircomScopeHandling::gen_in_given_block_with_new_circom_scope
             at ./llzk_backend/src/gen_context.rs:617:19
  40: llzk_backend::gen_context::GenWithCircomScopeHandling::gen_in_given_block_with_new_circom_scope_and_merge_overwrites
             at ./llzk_backend/src/gen_context.rs:656:14
  41: llzk_backend::gen_context::GenWithCircomScopeHandling::gen_in_current_block_with_new_circom_scope_and_merge_overwrites
             at ./llzk_backend/src/gen_context.rs:674:14
  42: <program_structure::abstract_syntax_tree::ast::Statement as llzk_backend::template::GenerateLLZKInTemplate>::gen_llzk_in_template
             at ./llzk_backend/src/template.rs:1198:26
  43: <[program_structure::abstract_syntax_tree::ast::Statement] as llzk_backend::template::GenerateLLZKInTemplate>::gen_llzk_in_template
             at ./llzk_backend/src/template.rs:996:15
  44: llzk_backend::module::gen_template_llzk
             at ./llzk_backend/src/module.rs:797:30
  45: <P as llzk_backend::module::GenerateLLZKInModule<P>>::gen_llzk
             at ./llzk_backend/src/module.rs:849:13
  46: llzk_backend::codegen::generate_llzk
             at ./llzk_backend/src/codegen.rs:120:13

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions