ena
ena copied to clipboard
An implementation of union-find / congruence-closure in Rust. Extracted from rustc for independent experimentation.
This type is very visible in the various bounds, but because the item itself is hidden, this provides a very confusing and irritating experience when the compiler emits errors about...
I'm pretty sure that Travis isn't used or even doesn't work anymore. This PR removes the `.travis.yml` file.
Addresses #47 and converts ena to be no-std compatible. I have taken the liberty also to make `log` optional (as some crates may prefer to use `tracing` or another solution)...
I am contemplating removing the home-grown `UnionFind` structure of petgraph with `ena`. We'd like to be able to provide `petgraph` in `no-std`; therefore: is there a possibility of `ena` being...
The methods `probe_value` and `find` can be moved to a separate impl that doesn't require `UnificationStoreMut` bound.
This allows for unioning bigger sets if necessary, but also doesn't necessarily change the storage size because it may still downsize to an u32 in from_index. This shouldn't change anything...
That is more future-proof, and will integrate better with other crates.
Some projects need the connected component traversal feature. However, that feature was removed from *ena* for performance reasons: preserving the data required for connected component traversal introduced an overhead that...
Add read-only query APIs with `read_` prefix for `find`, `probe_value`, and `unioned` to allow concurrency on modern CPUs for faster read-only workload (even without path-compression) after writing to it.
Hi, I am writing a wasm type checker in Rust, and I am using ena to help with operand unification problems arising during the validation of instruction sequences. Some wasm...