google / google/xls

INTERNAL: BytecodeEmitter when calling `uadd_with_overflow`

Open
#1,232 2 comments 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

The following snippet:
```
import std

fn uadd8(a: u8, b: u8) -> u8 {
let (_, sum) = std::uadd_with_overflow(a, b);
sum
}

#[test]
fn adders_test() {
assert_eq(uadd8(u8:1, u8:2), u8:3);
}
```
produce this error:
```
E1218 08:15:25.577361 6269 command_line_utils.cc:45] Could not extract a textual position from error message: INTERNAL: BytecodeEmitter could not find slot or binding for name: V @ /content/conda-env/share/xls/xls/dslx/interpreter_main.runfiles/com_google_xls/xls/dslx/stdlib/std.x:654:6-654:7 stack: 0x593654df48c9: xls::dslx::BytecodeEmitter::HandleNameRefInternal()
0x593654df3ab1: xls::dslx::BytecodeEmitter::HandleNameRef()
0x593654e715db: xls::dslx::NameRef::AcceptExpr()
0x593654df20b0: xls::dslx::BytecodeEmitter::HandleInvocation()
0x593654e734b8: xls::dslx::Invocation::AcceptExpr()
0x593654dde0b2: xls::dslx::BytecodeEmitter::EmitExpression()
0x593654d05f5f: xls::dslx::internal::(anonymous namespace)::EagerlyPopulateParametricEnvMap()
0x593654d050a2: xls::dslx::internal::FunctionInstantiator::Instantiate()
0x593654d023c7: xls::dslx::InstantiateFunction()
0x593654cac0bf: xls::dslx::InstantiateParametricFunction()
0x593654c9d01f: xls::dslx::CheckInvocation()
0x593654cab0b8: std::__1::__function::__func<>::operator()()
0x593654cf8201: xls::dslx::(anonymous namespace)::DeduceInstantiation()
0x593654cd4749: xls::dslx::(anonymous namespace)::DeduceVisitor::HandleInvocation()
0x593654e7348b: xls::dslx::Invocation::Accept()
0x593654cc67eb: xls::dslx::Deduce()
0x593654caae15: std::__1::__function::__func<>::operator()()
0x593654d0cd98: xls::dslx::DeduceCtx::Deduce()
0x593654cc6cc2: xls::dslx::DeduceAndResolve()
0x593654cd5c45: xls::dslx::(anonymous namespace)::DeduceVisitor::HandleLet()
0x593654e7472b: xls::dslx::Let::Accept()
0x593654cc67eb: xls::dslx::Deduce()
0x593654caae15: std::__1::__function::__func<>::operator()()
0x593654d0cd98: xls::dslx::DeduceCtx::Deduce()
0x593654cc9bb4: xls::dslx::(anonymous namespace)::DeduceVisitor::HandleStatement()
0x593654e7452b: xls::dslx::Statement::Accept()
0x593654cc67eb: xls::dslx::Deduce()
0x593654caae15: std::__1::__function::__func<>::operator()()
0x593654d0cd98: xls::dslx::DeduceCtx::Deduce()
0x593654cce9b8: xls::dslx::(anonymous namespace)::DeduceVisitor::HandleBlock()
0x593654e73cbb: xls::dslx::Block::Accept()
0x593654cc67eb: xls::dslx::Deduce()
0x593654caae15: std::__1::__function::__func<>::operator()()
0x593654d0cd98: xls::dslx::DeduceCtx::Deduce()
0x593654cc6cc2: xls::dslx::DeduceAndResolve()
0x593654c98728: xls::dslx::CheckFunction()
0x593654ca3db7: xls::dslx::CheckModule()
0x593654c30f6e: xls::dslx::TypecheckModule()
0x593654c305b3: xls::dslx::ParseAndTypecheck()
0x593654c2772d: xls::dslx::ParseAndTest()
0x59365334c66a: main
0x7e9141ac0d90: [unknown]
: INVALID_ARGUMENT: Provided status is not in recognized error form: INTERNAL: BytecodeEmitter could not find slot or binding for name: V @ /content/conda-env/share/xls/xls/dslx/interpreter_main.runfiles/com_google_xls/xls/dslx/stdlib/std.x:654:6-654:7 stack: 0x593654df48c9: xls::dslx::BytecodeEmitter::HandleNameRefInternal()
0x593654df3ab1: xls::dslx::BytecodeEmitter::HandleNameRef()
0x593654e715db: xls::dslx::NameRef::AcceptExpr()
0x593654df20b0: xls::dslx::BytecodeEmitter::HandleInvocation()
0x593654e734b8: xls::dslx::Invocation::AcceptExpr()
0x593654dde0b2: xls::dslx::BytecodeEmitter::EmitExpression()
0x593654d05f5f: xls::dslx::internal::(anonymous namespace)::EagerlyPopulateParametricEnvMap()
0x593654d050a2: xls::dslx::internal::FunctionInstantiator::Instantiate()
0x593654d023c7: xls::dslx::InstantiateFunction()
0x593654cac0bf: xls::dslx::InstantiateParametricFunction()
0x593654c9d01f: xls::dslx::CheckInvocation()
0x593654cab0b8: std::__1::__function::__func<>::operator()()
0x593654cf8201: xls::dslx::(anonymous namespace)::DeduceInstantiation()
0x593654cd4749: xls::dslx::(anonymous namespace)::DeduceVisitor::HandleInvocation()
0x593654e7348b: xls::dslx::Invocation::Accept()
0x593654cc67eb: xls::dslx::Deduce()
0x593654caae15: std::__1::__function::__func<>::operator()()
0x593654d0cd98: xls::dslx::DeduceCtx::Deduce()
0x593654cc6cc2: xls::dslx::DeduceAndResolve()
0x593654cd5c45: xls::dslx::(anonymous namespace)::DeduceVisitor::HandleLet()
0x593654e7472b: xls::dslx::Let::Accept()
0x593654cc67eb: xls::dslx::Deduce()
0x593654caae15: std::__1::__function::__func<>::operator()()
0x593654d0cd98: xls::dslx::DeduceCtx::Deduce()
0x593654cc9bb4: xls::dslx::(anonymous namespace)::DeduceVisitor::HandleStatement()
0x593654e7452b: xls::dslx::Statement::Accept()
0x593654cc67eb: xls::dslx::Deduce()
0x593654caae15: std::__1::__function::__func<>::operator()()
0x593654d0cd98: xls::dslx::DeduceCtx::Deduce()
0x593654cce9b8: xls::dslx::(anonymous namespace)::DeduceVisitor::HandleBlock()
0x593654e73cbb: xls::dslx::Block::Accept()
0x593654cc67eb: xls::dslx::Deduce()
0x593654caae15: std::__1::__function::__func<>::operator()()
0x593654d0cd98: xls::dslx::DeduceCtx::Deduce()
0x593654cc6cc2: xls::dslx::DeduceAndResolve()
0x593654c98728: xls::dslx::CheckFunction()
0x593654ca3db7: xls::dslx::CheckModule()
0x593654c30f6e: xls::dslx::TypecheckModule()
0x593654c305b3: xls::dslx::ParseAndTypecheck()
0x593654c2772d: xls::dslx::ParseAndTest()
0x59365334c66a: main
0x7e9141ac0d90: [unknown]

Error: INTERNAL: BytecodeEmitter could not find slot or binding for name: V @ /content/conda-env/share/xls/xls/dslx/interpreter_main.runfiles/com_google_xls/xls/dslx/stdlib/std.x:654:6-654:7 stack: 0x593654df48c9: xls::dslx::BytecodeEmitter::HandleNameRefInternal()
0x593654df3ab1: xls::dslx::BytecodeEmitter::HandleNameRef()
0x593654e715db: xls::dslx::NameRef::AcceptExpr()
0x593654df20b0: xls::dslx::BytecodeEmitter::HandleInvocation()
0x593654e734b8: xls::dslx::Invocation::AcceptExpr()
0x593654dde0b2: xls::dslx::BytecodeEmitter::EmitExpression()
0x593654d05f5f: xls::dslx::internal::(anonymous namespace)::EagerlyPopulateParametricEnvMap()
0x593654d050a2: xls::dslx::internal::FunctionInstantiator::Instantiate()
0x593654d023c7: xls::dslx::InstantiateFunction()
0x593654cac0bf: xls::dslx::InstantiateParametricFunction()
0x593654c9d01f: xls::dslx::CheckInvocation()
0x593654cab0b8: std::__1::__function::__func<>::operator()()
0x593654cf8201: xls::dslx::(anonymous namespace)::DeduceInstantiation()
0x593654cd4749: xls::dslx::(anonymous namespace)::DeduceVisitor::HandleInvocation()
0x593654e7348b: xls::dslx::Invocation::Accept()
0x593654cc67eb: xls::dslx::Deduce()
0x593654caae15: std::__1::__function::__func<>::operator()()
0x593654d0cd98: xls::dslx::DeduceCtx::Deduce()
0x593654cc6cc2: xls::dslx::DeduceAndResolve()
0x593654cd5c45: xls::dslx::(anonymous namespace)::DeduceVisitor::HandleLet()
0x593654e7472b: xls::dslx::Let::Accept()
0x593654cc67eb: xls::dslx::Deduce()
0x593654caae15: std::__1::__function::__func<>::operator()()
0x593654d0cd98: xls::dslx::DeduceCtx::Deduce()
0x593654cc9bb4: xls::dslx::(anonymous namespace)::DeduceVisitor::HandleStatement()
0x593654e7452b: xls::dslx::Statement::Accept()
0x593654cc67eb: xls::dslx::Deduce()
0x593654caae15: std::__1::__function::__func<>::operator()()
0x593654d0cd98: xls::dslx::DeduceCtx::Deduce()
0x593654cce9b8: xls::dslx::(anonymous namespace)::DeduceVisitor::HandleBlock()
0x593654e73cbb: xls::dslx::Block::Accept()
0x593654cc67eb: xls::dslx::Deduce()
0x593654caae15: std::__1::__function::__func<>::operator()()
0x593654d0cd98: xls::dslx::DeduceCtx::Deduce()
0x593654cc6cc2: xls::dslx::DeduceAndResolve()
0x593654c98728: xls::dslx::CheckFunction()
0x593654ca3db7: xls::dslx::CheckModule()
0x593654c30f6e: xls::dslx::TypecheckModule()
0x593654c305b3: xls::dslx::ParseAndTypecheck()
0x593654c2772d: xls::dslx::ParseAndTest()
0x59365334c66a: main
0x7e9141ac0d90: [unknown]
```

See the following notebook for an easy repro:
https://colab.research.google.com/gist/proppy/0a353c1cff2cca397ddabc08c9fcc15d/xls-playground-sandbox.ipynb

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.