google / google/xls

interpreter_main throw fatal exception when trying to instanciate varint example

Open
#1,118 1 comment 0 reactions 0 assignees View on GitHub
bug dslx
Dominant language
C++
Stars
1.9k
Forks
283
Avg merge
2d 10h
Merged PRs (30d)
135

Description

with the following snippets:
```
import std
import xls.examples.protobuf.varint_streaming_decode

const INPUT_BYTES = u32:7;
const OUTPUT_WORDS = u32:3;
const SCRATCHPAD_BYTES = u32:13;
const INPUT_BYTES_WIDTH = std::clog2(INPUT_BYTES);
const OUTPUT_WORDS_WIDTH = std::clog2(OUTPUT_WORDS);

proc varint_streaming {
init { () }

config (terminator: chan out) {
let (_, bytes_r) =
chan<(u8[INPUT_BYTES], uN[INPUT_BYTES_WIDTH])>;
let (words_s, _) =
chan<(u32[OUTPUT_WORDS], uN[OUTPUT_WORDS_WIDTH])>;
spawn varint_streaming_decode::varint_streaming_u32_decode(bytes_r, words_s);
()
}

next(tok: token, state: ()) {}
}
```
`interpreter_main` throw the following exception:
```
PC: @ 0x7f5c70d89347 (unknown) gsignal
@ 0x5603e25fb5e9 1152 FailureSignalHandler()
@ 0x7f5c70ee21c0 793259904 (unknown)
@ 0x5603e275a517 224 std::__u::__libcpp_verbose_abort()
@ 0x5603df7ce4c2 16 std::__u::__throw_bad_variant_access()
@ 0x5603e1c7365a 544 xls::dslx::ProcConfigIrConverter::HandleLet()
@ 0x5603e1eaf887 32 xls::dslx::Let::Accept()
@ 0x5603e1c715f1 48 xls::dslx::ProcConfigIrConverter::HandleStatement()
@ 0x5603e1c713ce 336 xls::dslx::ProcConfigIrConverter::HandleBlock()
@ 0x5603e1eaec07 32 xls::dslx::Block::Accept()
@ 0x5603e1c729b3 112 xls::dslx::ProcConfigIrConverter::HandleFunction()
@ 0x5603e1eaee14 32 xls::dslx::Function::Accept()
@ 0x5603e1c284db 1344 xls::dslx::(anonymous namespace)::ConvertCallGraph()
@ 0x5603e1c26880 752 xls::dslx::ConvertModuleIntoPackage()
@ 0x5603e1c293e2 112 xls::dslx::ConvertModuleToPackage()
@ 0x5603e1c1cf81 1392 xls::dslx::ParseAndTest()
@ 0x5603df7ca19b 768 main
@ 0x7f5c70d75633 192 __libc_start_main
@ 0x5603df7c902a (unknown) _start
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.