0xMiden / 0xMiden/miden-vm

Simplify structure of basic block nodes

Aberta
#2,109 3 comentários 0 reações 0 responsáveis Ver no GitHub
core processor
Linguagem predominante
Rust
Estrelas
772
Forks
352
Merge médio
1d 12h
PRs com merge (30d)
93

Descrição

Once we get rid of the slow processor, we should be able to refactor our basic block nodes to look something like this:
```rust
pub struct BasicBlockNode {
/// operations here would contain Respan operations to mark boundaries of operation batches
ops: Vec,
digest: Word,
}
```
This structure has a number of benefits:

- The fast processor would need just a single loop to iterate over all operations in a basic block.
- We would allocate only a single vector per basic block vs. allocating a vector (plus several arrays) per operation batch.
- Fast (but trusted) serialization/deserialization of the basic block becomes trivial.

I would create a couple of complications though:
- Computing the hash of the node would be a bit more complicated, and this would make the slow (but untrusted) deserialization more difficult.
- Trace generation would require more work because trace builders would need to build the `OpBatch` structs themselves.

Both of these are acceptable tradeoffs in my opinion.

Guia de contribuição

Abrir o guia de contribuição

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.