- clean up dependencies
Using
hydro_optimizeas a regular dependency inhydro_testresults in leaking many dependencies includinghydro_deploy, so this moves it to a dev-dependency
- improve logging for profiling
- Use partitioning analysis results to partition Test/insta changes stem from changed implementation of broadcast_bincode, will change again once #1949 is implemented. Also added missing cases for Persists hidden behind CrossProduct, Difference, AntiJoin, Join, and Scan for decoupler.
- Remove commercial ilp
- Partitioning analysis Integrating with the partitioner next
- capture stack traces for each IR node Because Hydro is staged, the stack traces capture the structure of the program, which is helpful for profiling / visualization.
- add
scanoperator - Decoupling analysis
A Gurobi license is required to run code that uses
hydro_optimize(for ILP over decoupling decisions)
-
don't snapshot-test backtraces Backtraces aren't stable across Unix / Windows. Just have a separate test for them.
Also defers resolution of backtraces until we actually need them to improve performance.
-
separate externals from other location kinds, clean up network operators First, we remove externals from
LocationId, to ensure that aLocationIdonly is used for locations where we can concretely place compiled logic. This simplifes a lot of pattern matching where we wanted to disallow externals.Keys on network inputs / outputs (
from_keyandto_key) are only relevant to external networking. We extract the logic to instantiate external network collections, so that the core logic does not need to deal with keys.
-
invert external sources and clean up locations in IR First, instead of creating external sources by invoking
external.source_bincode_external(&p), we switch the API top.source_bincode_external(&external)for symmetry withsource_iterandsource_stream.The other, much larger change is to clean up how the IR handles external inputs and outputs and keeps track of locations. First, we introduce
HydroNode::ExternalInputandHydroLeaf::SendExternalas specialized nodes for these, so that we no longer create dummy sources / sinks.Then, we eliminate places where we have multiple sources of truth for where the output of an IR node is located, by instead referring to the metadata. Because it is easy in optimizer rewrites to corrupt this metadata, we also add a flag to
transform_bottom_upthat lets developers enable a metadata validity check. We disable it in most transformations for performance, but enable it in the decoupling rewrites since it manipulates locations in complex ways.
- 12 commits contributed to the release over the course of 12 calendar days.
- 11 commits were understood as conventional.
- 11 unique issues were worked on: #1859, #1930, #1934, #1935, #1937, #1940, #1947, #1952, #1955, #1958, #1962
view details
- #1859
- Decoupling analysis (
99a8f1d)
- Decoupling analysis (
- #1930
- Add
scanoperator (c4b9590)
- Add
- #1934
- Clean up dependencies (
edab6c2)
- Clean up dependencies (
- #1935
- Partitioning analysis (
3b013ac)
- Partitioning analysis (
- #1937
- Capture stack traces for each IR node (
d44b225)
- Capture stack traces for each IR node (
- #1940
- Remove commercial ilp (
dfaf517)
- Remove commercial ilp (
- #1947
- Don't snapshot-test backtraces (
739b622)
- Don't snapshot-test backtraces (
- #1952
- Use partitioning analysis results to partition (
173d9c0)
- Use partitioning analysis results to partition (
- #1955
- Improve logging for profiling (
0e6403c)
- Improve logging for profiling (
- #1958
- Invert external sources and clean up locations in IR (
fb016b0)
- Invert external sources and clean up locations in IR (
- #1962
- Separate externals from other location kinds, clean up network operators (
22a7d0d)
- Separate externals from other location kinds, clean up network operators (
- Uncategorized
- Release dfir_lang v0.14.0, dfir_macro v0.14.0, hydro_deploy_integration v0.14.0, lattices_macro v0.5.10, variadics_macro v0.6.1, dfir_rs v0.14.0, hydro_deploy v0.14.0, hydro_lang v0.14.0, hydro_optimize v0.13.0, hydro_std v0.14.0, safety bump 6 crates (
0683595)
- Release dfir_lang v0.14.0, dfir_macro v0.14.0, hydro_deploy_integration v0.14.0, lattices_macro v0.5.10, variadics_macro v0.6.1, dfir_rs v0.14.0, hydro_deploy v0.14.0, hydro_lang v0.14.0, hydro_optimize v0.13.0, hydro_std v0.14.0, safety bump 6 crates (