Skip to content

Releases: hydro-project/hydro

dfir_macro v0.14.0

30 Jul 22:27

Choose a tag to compare

Chore

  • update proc-macro-crate
  • update pinned nightly to 2025-04-27, update span API usage

Commit Statistics

  • 2 commits contributed to the release over the course of 92 calendar days.
  • 2 commits were understood as conventional.
  • 2 unique issues were worked on: #1843, #1944

Commit Details

view details

dfir_lang v0.14.0

30 Jul 22:27

Choose a tag to compare

Chore

  • update pinned nightly to 2025-04-27, update span API usage

New Features

  • add scan operator

Bug Fixes

  • Revert anti join allocation
    Added unit test for Paxos compilation and non-negative throughtput
  • add type arguments to anti_join_multiset, difference_multiset to mitigate #1857

New Features (BREAKING)

  • re-add loop lifetimes for anti_join_multiset, tests, remove MonotonicMap, fix #1830, fix #1823
    Redo of #1835

    Also updates path of trybuild errors to allow them to be clicked in the
    IDE


    Previous commit:

    Also implements loop lifetimes for difference_multiset which uses the
    anti_join_multiset codegen.

    Updates tests for difference, difference_multiset, anti_join, and
    anti_join_multiset

  • display loops in graph visualizations, refactor, fix #1699
    Adds loops to display, new GraphWrite.no_loops option.

    Refactors how the heirarchy of GraphWrite items is handled to be
    simpler.

Commit Statistics

Commit Details

view details

hydro_lang v0.13.2

17 Apr 21:18

Choose a tag to compare

Chore

  • update pinned nightly to 2025-04-05, clippy fixes
    Not going past 2024-04-05 due to rustc linker regression on windows:
    rust-lang/rust#139821

Style

  • use where clauses to increase readability
    A minor issue in the grand scheme of things, but I caught myself
    squinting when trying to tease apart different trait implementations
    specially when following the "implementations" popup navigation. In
    addition, some of the generic variable naming was not consistent and a
    bit confusing to the uninitiated. For example, Order was a generic
    variable, but TotalOrder and NoOrder were a type. Not a big deal
    when you already know the API, but just adds friction someone new to the
    project.

    Here are some of the items that guided the PR:

    • Single capital letter for generic variables following a loose
      standard: T for types, O for ordering, B for boundedness, L for
      location, P for process or external process, C for cluster, etc.
    • Use where clauses to keep the head of traits and functions lean and
      more easily comparable.

Commit Statistics

  • 2 commits contributed to the release over the course of 1 calendar day.
  • 2 commits were understood as conventional.
  • 2 unique issues were worked on: #1827, #1840

Commit Details

view details
  • #1827
    • Use where clauses to increase readability (fe91f37)
  • #1840
    • Update pinned nightly to 2025-04-05, clippy fixes (b7b0408)

hydro_lang v0.13.1

12 Apr 20:55

Choose a tag to compare

Bug Fixes

  • Enable file_lock feature in nightly builds
    This appears to be a regression from the commit that uses fs2 on stable
    builds.

    @MingweiSamuel based on the CI error here it's because the feature was previously stabilized and has since been un-stabilized

Commit Statistics

  • 1 commit contributed to the release.
  • 1 commit was understood as conventional.
  • 1 unique issue was worked on: #1839

Commit Details

view details
  • #1839
    • Enable file_lock feature in nightly builds (e41388e)

hydro_std v0.13.0

11 Apr 23:33

Choose a tag to compare

New Features

  • update Stageleft and reduce reliance on DFIR re-exports
  • update Stageleft to reduce viral dependencies
    Now that Stageleft handles quoted snippets that refer to local
    dependencies, we do not need to duplicate deps into downstream crates.

New Features (BREAKING)

  • don't pull in dfir_rs during the compilation stage
    Because hydro_lang is responsible for generating DFIR code, it
    doesn't actually need to depend on the runtime (dfir_rs), other than
    when it is used in the (legacy) macro mode or when we want to include
    utilities for runtime logic (resource_measurement). This sticks those
    pieces under feature flags and makes dfir_rs an optional dependency,
    which reduces the compile tree for crates like hydro_test.

Commit Statistics

  • 3 commits contributed to the release over the course of 23 calendar days.
  • 3 commits were understood as conventional.
  • 3 unique issues were worked on: #1791, #1796, #1797

Commit Details

view details
  • #1791
    • Update Stageleft to reduce viral dependencies (e0c4abb)
  • #1796
    • Update Stageleft and reduce reliance on DFIR re-exports (5ac247c)
  • #1797
    • Don't pull in dfir_rs during the compilation stage (dfb7a1b)

hydro_lang v0.13.0

11 Apr 23:33

Choose a tag to compare

New Features

  • implement profiling for macOS and Windows using samply
  • only serialize once in broadcast
  • update Stageleft and reduce reliance on DFIR re-exports
  • update Stageleft to reduce viral dependencies
    Now that Stageleft handles quoted snippets that refer to local
    dependencies, we do not need to duplicate deps into downstream crates.
  • add resolve_futures and resolve_futures_ordered APIs

Bug Fixes

  • correctly resolve __staged paths for the crate being launched

  • handle -1 addresses from samply, fix _counter() rollover
    This fixes samply profiling on my "ancient" 2019 x86-64 macbook pro
    15.3.2 (24D81)

    This pull request aims to fix the handling of –1 address values from
    samply by updating tracing filenames and refactoring related error and
    type handling. Key changes include:

    • Better error messages when dtrace or samply are not instaled.
    • Fix integer rollover in _counter() by using u64 instead of
      inferred i32.
    • Refactor samply profile conversion for asynchronous frame lookup.
    Show a summary per file
    File Description
    hydro_lang/src/rewrites/analyze_counter.rs Adds custom panic with
    measurement details if regex matching fails. (Used to diagnose
    _counter() i32 rollover)
    hydro_deploy/core/src/localhost/samply.rs Updates type for
    addresses/resources, refactors frame lookup to use asynchronous
    join_all, and adjusts string output for missing symbols.
    hydro_deploy/core/src/localhost/mod.rs Improves error handling
    during command spawning with conditional context messages for when
    samply or dtrace executables are not found.
    hydro_deploy/core/src/localhost/launched_binary.rs Uses
    serde_path_to_error for improved deserialization error context.
    dfir_lang/src/graph/ops/dest_sink.rs Standardizes error messages by
    removing extraneous punctuation.
    dfir_lang/src/graph/ops/_counter.rs Adds explicit type annotation
    for a cell initialization to prevent i32 rollover.
  • decrease size of IR enums to prevent stack overflow on windows, fix #1801

  • fix doctests without feature unification and improve atomic trybuild logic

  • avoid Cargo.toml corruption when concurrently opened in a single process

Refactor

  • use fs2 file locking to fix stable build testing #1780

New Features (BREAKING)

  • don't pull in dfir_rs during the compilation stage
    Because hydro_lang is responsible for generating DFIR code, it
    doesn't actually need to depend on the runtime (dfir_rs), other than
    when it is used in the (legacy) macro mode or when we want to include
    utilities for runtime logic (resource_measurement). This sticks those
    pieces under feature flags and makes dfir_rs an optional dependency,
    which reduces the compile tree for crates like hydro_test.

Commit Statistics

Commit Details

view details
  • #1741
    • Add resolve_futures and resolve_futures_ordered APIs (127df13)
  • #1791
    • Update Stageleft to reduce viral dependencies (e0c4abb)
  • #1796
    • Update Stageleft and reduce reliance on DFIR re-exports (5ac247c)
  • #1797
    • Don't pull in dfir_rs during the compilation stage (dfb7a1b)
  • #1798
    • Avoid Cargo.toml corruption when concurrently opened in a single process (53d2913)
  • #1799
    • Fix doctests without feature unification and improve atomic trybuild logic (f783e67)
  • #1802
    • Decrease size of IR enums to prevent stack overflow on windows, fix #1801 (28c342f)
  • #1806
    • Only serialize once in broadcast (bfac9f1)
  • #1812
    • Implement profiling for macOS and Windows using samply (6d24901)
  • #1814
    • Handle -1 addresses from samply, fix _counter() rollover (fbb5fab)
  • #1816
    • Use fs2 file locking to fix stable build testing #1780 (79ee504)
  • #1817
    • Correctly resolve __staged paths for the crate being launched (2219e6b)

hydro_deploy_integration v0.13.0

11 Apr 23:32

Choose a tag to compare

New Features (BREAKING)

  • don't pull in dfir_rs during the compilation stage
    Because hydro_lang is responsible for generating DFIR code, it
    doesn't actually need to depend on the runtime (dfir_rs), other than
    when it is used in the (legacy) macro mode or when we want to include
    utilities for runtime logic (resource_measurement). This sticks those
    pieces under feature flags and makes dfir_rs an optional dependency,
    which reduces the compile tree for crates like hydro_test.

Commit Statistics

  • 1 commit contributed to the release over the course of 23 calendar days.
  • 1 commit was understood as conventional.
  • 1 unique issue was worked on: #1797

Commit Details

view details
  • #1797
    • Don't pull in dfir_rs during the compilation stage (dfb7a1b)

hydro_deploy v0.13.0

11 Apr 23:32

Choose a tag to compare

New Features

  • implement profiling for macOS and Windows using samply

Bug Fixes

  • handle -1 addresses from samply, fix _counter() rollover
    This fixes samply profiling on my "ancient" 2019 x86-64 macbook pro
    15.3.2 (24D81)

    This pull request aims to fix the handling of –1 address values from
    samply by updating tracing filenames and refactoring related error and
    type handling. Key changes include:

    • Better error messages when dtrace or samply are not instaled.
    • Fix integer rollover in _counter() by using u64 instead of
      inferred i32.
    • Refactor samply profile conversion for asynchronous frame lookup.
    Show a summary per file
    File Description
    hydro_lang/src/rewrites/analyze_counter.rs Adds custom panic with
    measurement details if regex matching fails. (Used to diagnose
    _counter() i32 rollover)
    hydro_deploy/core/src/localhost/samply.rs Updates type for
    addresses/resources, refactors frame lookup to use asynchronous
    join_all, and adjusts string output for missing symbols.
    hydro_deploy/core/src/localhost/mod.rs Improves error handling
    during command spawning with conditional context messages for when
    samply or dtrace executables are not found.
    hydro_deploy/core/src/localhost/launched_binary.rs Uses
    serde_path_to_error for improved deserialization error context.
    dfir_lang/src/graph/ops/dest_sink.rs Standardizes error messages by
    removing extraneous punctuation.
    dfir_lang/src/graph/ops/_counter.rs Adds explicit type annotation
    for a cell initialization to prevent i32 rollover.

Bug Fixes (BREAKING)

  • fix perf setup, remove GCP startup_script, use TracingOptions::setup_command instead

Commit Statistics

  • 3 commits contributed to the release over the course of 19 calendar days.
  • 3 commits were understood as conventional.
  • 3 unique issues were worked on: #1800, #1812, #1814

Commit Details

view details
  • #1800
    • Fix perf setup, remove GCP startup_script, use TracingOptions::setup_command instead (52221ec)
  • #1812
    • Implement profiling for macOS and Windows using samply (6d24901)
  • #1814
    • Handle -1 addresses from samply, fix _counter() rollover (fbb5fab)

hydro_cli v0.13.0

11 Apr 23:33

Choose a tag to compare

Bug Fixes (BREAKING)

  • fix perf setup, remove GCP startup_script, use TracingOptions::setup_command instead

Commit Statistics

  • 1 commit contributed to the release over the course of 19 calendar days.
  • 1 commit was understood as conventional.
  • 1 unique issue was worked on: #1800

Commit Details

view details
  • #1800
    • Fix perf setup, remove GCP startup_script, use TracingOptions::setup_command instead (52221ec)

dfir_rs v0.13.0

11 Apr 23:32

Choose a tag to compare

New Features

  • add resolve_futures and resolve_futures_ordered APIs

Bug Fixes

  • fix loop hooks triggered too often, implement lifetimes for zip

Other

  • adjust env vars, make DFIR printed span paths relative & re-enable most trybuild tests
    • Add PYO3_USE_ABI3_FORWARD_COMPATIBILITY, move
      RUST_LOG/RUST_BACKTRACE env vars to .cargo/config.toml (removed
      from .vscode/settings.json). Will now apply in general, so no need to
      specify everywhere.
    • Makes display of compiler spans' source_file() in dfir_lang
      relative to DFIR_BASE_DIR (new) or CARGO_MANIFEST_DIR, if possible.
    • Include rust-src rustup component to make trybuild error output
      more consistent:
      https://github.com/dtolnay/trybuild?tab=readme-ov-file#troubleshooting
    • Almost all dfir_rs trybuild test are re-enabled (except a couple
      obsolete ones are deleted, and two have inconsistent printing)
    • Updates docs build to remove old operators

Refactor

  • update examples to use template, fix #1123

New Features (BREAKING)

  • loop lifetimes for anti_join_multiset, tests, remove MonotonicMap, fix #1830, fix #1823
    Also implements loop lifetimes for difference_multiset which uses the
    anti_join_multiset codegen.

    Updates tests for difference, difference_multiset, anti_join, and
    anti_join_multiset

  • don't pull in dfir_rs during the compilation stage
    Because hydro_lang is responsible for generating DFIR code, it
    doesn't actually need to depend on the runtime (dfir_rs), other than
    when it is used in the (legacy) macro mode or when we want to include
    utilities for runtime logic (resource_measurement). This sticks those
    pieces under feature flags and makes dfir_rs an optional dependency,
    which reduces the compile tree for crates like hydro_test.

Refactor (BREAKING)

  • loop machinery, add 'loop lifetimes, fix #1745

  • use slotvec for state, disallow state removal #1745
    Refactor in prep for #1745

    Instead of each state having an optional end-of-tick reset hook, instead
    each state will be tied to a particular lifespan (loop iteration, loop
    execution, tick, static) for its reset hook. The scheduler will maintain
    various lists of state for each lifespan, and removing state makes
    maintaining those lists just a tiny bit harder. Since we have never
    removed state (and its against the spirit of monotonicity), its easier
    to just remove that unused functionality

Commit Statistics

Commit Details

view details
  • #1741
    • Add resolve_futures and resolve_futures_ordered APIs (127df13)
  • #1795
    • Adjust env vars, make DFIR printed span paths relative & re-enable most trybuild tests (3aec2f7)
  • #1797
    • Don't pull in dfir_rs during the compilation stage (dfb7a1b)
  • #1808
  • #1815
    • Use slotvec for state, disallow state removal #1745 (304a8ef)
  • #1822
  • #1833
    • Fix loop hooks triggered too often, implement lifetimes for zip (40075b1)
  • #1835
    • Loop lifetimes for anti_join_multiset, tests, remove MonotonicMap, fix #1830, fix #1823 (fbaab5b)