Skip to content

T0: extend Intonato hardware-backend generics instead of shadowing#3

Merged
aarontrowbridge merged 1 commit into
mainfrom
fix/t0-extend-hardware-generics
Jul 9, 2026
Merged

T0: extend Intonato hardware-backend generics instead of shadowing#3
aarontrowbridge merged 1 commit into
mainfrom
fix/t0-extend-hardware-generics

Conversation

@aarontrowbridge

Copy link
Copy Markdown
Member

Paired with Intonato — realize AbstractHardwareBackend. T0 from the API-ergonomics program (spec armonissima#33).

What

Intonato now declares upload_pulse!/trigger!/readout/sample_rate as exported generic functions. Add an explicit import Intonato: upload_pulse!, trigger!, readout, sample_rate so QickBackend's methods (backend.jl) extend the shared generics rather than define local same-named functions — which would collide with the newly-exported names under using Intonato.

One line of change; backend.jl/experiment.jl method bodies and the qualified IntonatoQICK.upload_pulse! test calls resolve to the imported generics unchanged.

Verified end-to-end

With the paired Intonato branch dev'd in, IntonatoQICK precompiles and:

  • IntonatoQICK.upload_pulse! === Intonato.upload_pulse! → true (extend, not shadow)
  • the QickBackend method is registered on Intonato's generic

Merge coordination

Merge the Intonato PR first; this one requires Intonato ≥ the release carrying the exports (compat bump lands with that release).

🤖 Generated with Claude Code

Paired with Intonato's AbstractHardwareBackend realization (T0.4, spec
spec-20260708-140522, armonissima#33). Intonato now declares upload_pulse! /
trigger! / readout / sample_rate as exported generic functions. Add an explicit
`import Intonato: upload_pulse!, trigger!, readout, sample_rate` so QickBackend's
methods (backend.jl) EXTEND the shared generics rather than define local
same-named functions that would collide with the newly-exported names under
`using Intonato`.

No other change: backend.jl / experiment.jl method definitions and the qualified
`IntonatoQICK.upload_pulse!` test calls resolve to the imported generics
unchanged.

Verified end-to-end: with the modified Intonato dev'd in, IntonatoQICK
precompiles and `IntonatoQICK.upload_pulse! === Intonato.upload_pulse!` with the
QickBackend method registered on Intonato's generic (extend, not shadow).

Requires Intonato ≥ the release carrying these exports; compat bump lands with
that release.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@aarontrowbridge
aarontrowbridge merged commit d438d85 into main Jul 9, 2026
2 checks passed
aarontrowbridge added a commit that referenced this pull request Jul 11, 2026
Registered Intonato 0.2.0 predates the upload_pulse!/trigger!/readout/sample_rate
generics that #3 imports, so main is red against the registry. Intonato 0.3.0 is
registering now (harmoniqs/Intonato.jl@822b017); this admits it. Drops 0.1 from
compat — the T0 seam has required 0.2-era API since #3.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant