google / google/xls

DSLX: Can't declare array with parameterized size???

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

Description

I'm pretty sure this works in other contexts? Like we have tests for this?

Anyway, in some AES code, I have:
```
type asdf = aes_ctr::Command;
fn get_ctr_commands(gcm_cmd: Command) -> aes_ctr::Command[KITTEN] {
trace_fmt!("BLOCKS PER CTR: {:d}", blocks_per_ctr);
let ctr_cmds = asdf[KITTEN]:[aes_ctr::initial_state().command, ...];
let ctr_cmds = for (i, ctr_cmds) in range(0, KITTEN) {
...
```

This results in an error:
```
F0906 10:11:57.367975 3518794 interpreter_main.cc:152] Check failed: ::absl::OkStatus() == (status) (OK vs. INTERNAL: redacted.x:94:33-94:72 : Expected concrete type dimension to be integral; got: KITTEN
```

FURTHERMORE, if I replace `KITTEN` with `u32:4`, then the for loop fails to parse (?) with
```
F0906 10:09:51.425422 3517175 interpreter_main.cc:152] Check failed: ::absl::OkStatus() == (status) (OK vs. INTERNAL: Could not find slot or binding for name: KITTEN @ redacted.x:84:21-84:27
```

???

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.