Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Exposes visualizations in CLI and in the web (#186)
* First go at graphviz export * Skip generated names * Use right hashmap * Expose graph * Make graph crate private * Clippy fixes * Tidy up string generation * Add CLI options to output .dot and .svg * Ignore .DS_Store * Add ability to run on all tests * Don't run failing tests * Fix non primitive builtin sorts * Fix extracting Sets with eq sort values * Apply fix for graph * Fix extracting Sets with eq sort values * Require arcsort in extract * Make arcsort required in find_best * Make makefile iterative * Add readme description for new CLI commands * Move graph to its own folder * clean up module statements * Remove dead inputs, which removes some duplicates * Make style closer to e-graph website * fmt fixes * Fix wasm build * Order all e-class nodes in same rank * Fix docstrings * Add first working web demo * fmt * Make graph fit to box * Fix performance * Animate transitions * Add resetting zoom * Make primitive nodes have consistent IDs * Refactor and tidy up * Use has value to make IDs stable * Rename to ExportedGraph * Switch to using macros for graphviz gen to make smaller * Add ports to differentiate arg positions * Test graph generation during tests * Fix graph generation for proofs by showing temp variables * Clarify cargo req * Typo * Add flag for including temp vars * Revert "Add flag for including temp vars" e5979fc * Always skip temporary names * Switch to grouping all values * Fix bug in adding container edges * Start trying to remove duplicate values * Refactor graphviz export to struct to make ownership clearer * Add sorts to graphs * Differentiate styles between e-classes and not * Add colors to graphs * fmt * Separate unit nodes * Switch to not grouping all equal prim values in cluster * Ignore cykjson when testing graphs, too long * Don't include unit nodes, redundant with sort * Remove displaying sorts for size * Try reducing size of generated graphviz to reduce memory * undo making some things public to the crate * Concentrate nodes * Revert changes to foreach_tracked_values to fix tests * Changes node fonts to helvetica * Try limiting the size of the graphs * Show ports for missing nodes * Remove importmap to improve compat * Fix limiting functions and calls Previously we were limiting to the first 40 functions, but some of those functions might have no live values. Now this makes sure to filter for empty functions * fmt * Log result from running program * Re-add accidentally removed import * Add back accidentally remove assert * Revert "Revert changes to foreach_tracked_values to fix tests" 810d8e8 * Save web artifact on build * Upgrade upload artifact * Fix warning, dont emit colspan if 0 * Fix edges so they all come from below the node * Increase nodesep slightly so that long nodes dont touch * Remove margin on outer graph * Fix Vec sort registration Fixes a typo so that the `Vec` sort will register a Vec instead of a Set * Add vec tests * Add vec get and length * Add string concatenation * Fix vec extract call * Reduce rank sep slightly * Add another cluster nesting to increase margin * Reduce nodesep * Revert "Reduce nodesep" 4380306 * Add outer cluster label to remove warning * Add support for tooltips in graphviz Add the e-class ids to the tooltip in graphviz, to help with debugging output * Add support for publicly registering sorts * Switch to add arcsort and make eval_expr public * Remove graph code * Get working with serialize * Fix graphviz for web * Remove unused change * Tidy up export code * Remove another func tion * Rename commands to `--to-...` to go with `--to-json` * bump serialize version * Fix web demo * Fix tests * Format * Fix typo added to URL * Add to describe why we upload an artifact
- Loading branch information