Merge pull request #3284 from input-output-hk/hjeljeli32/3127-ivc-error-handling
refactor(mithril-stm): structured error handling for halo2_ivc circuit
refactor(mithril-stm): structured error handling for halo2_ivc circuit
Bumps [@tootallnate/once](https://github.com/TooTallNate/once) from 2.0.0 to 2.0.1. - [Release notes](https://github.com/TooTallNate/once/releases) - [Changelog](https://github.com/TooTallNate/once/blob/v2.0.1/CHANGELOG.md) - [Commits](https://github.com/TooTallNate/once/compare/2.0.0...v2.0.1) --- updated-dependencies: - dependency-name: "@tootallnate/once" dependency-version: 2.0.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]>
Bump plutus-ledger-api-1.63
Allow pipelining of Ack=0 Req=N messages. That is messages that attempt to fill our window, but don't have any txids to ack. This matches the way V1 does pipelining, but with the addition of the limiting of sending new Ack=0 and Req=N messages if the last returned no new txids.
* Added cardano-base-0.1.4.0 From https://github.com/IntersectMBO/cardano-base at d6e5c68bbb87f528fc1926a32c462c5bf06f1782 * Added cardano-crypto-class-2.5.0.0 From https://github.com/IntersectMBO/cardano-base at d6e5c68bbb87f528fc1926a32c462c5bf06f1782
The `extra-libraries: c++ c++abi` substitution in `double-conversion.cabal` exists to fix linkage on darwin where the cabal file's `c++` entry alone is insufficient. From GHC 9.4 onwards the `system-cxx-std-lib` pseudo-package handles c++abi linkage automatically, so the patch becomes a no-op there at best and double-application at worst. Gate the override on `compiler.version < 9.4` so newer GHCs are left alone.
aarch64 cross builds pass `-fPIC` to ghc but the same flag isn't forwarded to the C compiler. Some packages compile C sources that end up needing position-independent code (e.g. when later linked into shared libraries / TH plugins), and the missing `-fPIC` on those triggers `relocation R_AARCH64_ADR_PREL_PG_HI21 ... can not be used when making a shared object` link failures. Pass `-optc-fPIC` alongside `-fPIC` so ghc forwards it to the C compiler.
Native-musl GHC ≥ 9.10 ships `<targetPrefix>ghc-iserv-dyn` and the wrapper already creates unprefixed aliases for `ghc-iserv` and `ghc-iserv-prof`, but it was missing `ghc-iserv-dyn`. Without the alias, projects compiling profiled + dyn-linked components on native-musl fail at TH-eval time when ghc looks for `<topdir>/bin/ghc-iserv-dyn`. Add the symmetric `ghc-iserv-dyn` alias alongside the existing ones.
This CPS documents the problem of uncoordinated handle namespaces on Cardano and proposes requirements for a governance solution. Submitted following the discussion in CIP PR #1187 where the CIP editors identified the need for a broader problem statement before a technical solution can be proposed. Related: https://github.com/cardano-foundation/CIPs/pull/1187
The doCoverage installPhase tried
`${testExecutable}-tmp/extra-compilation-artifacts` which expands
to `dist/build/<cname>/<cname><exeExt>-tmp/...`. On Windows hosts
`exeExt = ".exe"`, so the path becomes
`dist/build/<cname>/<cname>.exe-tmp/...` — a path cabal never
creates. The fallback `cp -r dist/hpc $out/share` then errors with
"No such file or directory" and the slice fails.
cabal's per-component tmp dir is `dist/build/<cname>/<cname>-tmp`
regardless of platform, so use that path directly (and drop the
broken `${testExecutable}-tmp` case — it was only ever right when
`exeExt == ""`, which the new path also covers).
Confirmed `tests.coverage.run` on ucrt64 builds; native still passes.
Subset of the v2-builder branch that touches planning code and v1
behaviour, with the v2 builder itself, v2 dev shell, the new tests,
and all related plumbing left out. Surfaces the v1-visible delta so
we can flag anything users may need to know about before bringing the
full v2 branch in.
Planning-code refactors (shared by v1 and v2):
* lib/dummy-ghc.nix (new): the cabal-install-input dummy `ghc`
script extracted from lib/call-cabal-project-to-nix.nix. Now
emits cross-aware `ghc --info` capabilities (`Support
dynamic-too`, `RTS ways`, `Support shared libraries`, etc.)
matching real cross GHCs for windows, ghcjs, wasm, android,
static, native musl, native. Cabal feeds these into per-unit
configuration that ends up in UnitId hashes, so misalignment vs
the real compiler manifests as plan-to-nix UnitIds differing
from cabal v2-build's local computation.
* lib/call-cabal-project-to-nix.nix: ports the dummy-ghc-pkg
`-inplace` suffix gating to GHC ≥ 9.8 (older GHCs register
pre-existing pkgs without the suffix). Pins
`CABAL_INSTALLED_PACKAGE_ID_OS` to the build platform's OS so
unit-id format stays stable across host OSes. Accepts an empty
`cabalProjectLocal` as equivalent to null so platform-specific
mkIfs in modules/cabal-project.nix can merge without bumping the
recorded hash.
* modules/cabal-project.nix: adds platform-conditional
`cabalProjectLocal` defaults — musl `executable-static: True`,
x86_64-darwin `library-for-ghci: True`, android
`ghc-options: -optl-static -optl-ldl …`, wasm ≥ 9.12
`shared: True`. These flow through plan-to-nix so the recorded
install plan matches what a downstream cabal v2-build would
compute; v1 reads what it always read (`-optl-static` already
comes from comp-builder's per-component configureFlags, etc.) so
observable behaviour is unchanged outside of UnitId-driven cache
busts.
* modules/cabal-project.nix: adds the
`source-repository-package` wiring for the new project-level
`useLocalGhcLib` option (see project-common changes).
* modules/install-plan/configure-args.nix: translates
`--enable-profiling` / `--enable-library-profiling` /
`--enable-coverage` / `--enable-debug-info` from plan.json
configure-args into per-component option overrides
(`enableProfiling`, `enableLibraryProfiling`, `doCoverage`,
`enableDWARF`). Lets a project set e.g.
`package <pkg>\n profiling: True` /
`debug-info: 2` in cabal.project and have v1 honour it without
also needing module-level toggles.
* modules/project-common.nix: adds the `useLocalGhcLib` option.
* modules/stack-project.nix: under `useLocalGhcLib`, re-applies the
`packages.ghc.src` post-plan override that
modules/configuration-nix.nix used to do unconditionally.
* modules/configuration-nix.nix: drops the unconditional
`packages.ghc.src` override (moved into the new
`useLocalGhcLib` path).
* lib/default.nix: corrects the `foldComponents` `libComp` comment
and tightens `uniqueWithNameKey` so derivations and module
values can't collide on shared name fragments.
v1 builder fixes:
* modules/component-options.nix + builder/comp-builder.nix:
surfaces `enableDWARF` as a component option and defaults the
v1 comp-builder's parameter to `component.enableDWARF`. Combined
with the configure-args extraction above, this lets
`cabal.project` `debug-info:` reach v1's `-g3` /
`.dwarf` GHC swap.
* builder/comp-builder.nix: fixes the doCoverage installPhase hpc
dir lookup on Windows hosts. Previously
`${testExecutable}-tmp` expanded to `<cname>.exe-tmp` (a path
cabal never produces); switch to `<cname>/<cname>-tmp`.
* builder/ghc-for-component-wrapper.nix: native-musl wrapper now
adds the missing `ghc-iserv-dyn` alias alongside `ghc-iserv`,
`ghc-iserv-prof`, and `unlit`.
Overlay tweaks:
* overlays/linux-cross.nix: aarch64 cross builds add `-optc-fPIC`
alongside the existing `-fPIC`.
* overlays/darwin.nix: gates the double-conversion `c++abi` patch
to GHC < 9.4 — newer GHCs handle this via the
`system-cxx-std-lib` pseudo-package.
* overlays/haskell.nix: routes iserv-proxy build flags through
the project's `cabalProjectLocal` instead of post-plan
`.override { setupBuildFlags = ... }`. Adds
`-with-rtsopts=--optimistic-linking` for GHC ≥ 9.14 so iserv's
RTS linker tolerates undefined symbols at TH-eval load time.
Routes android (`-optl-static -optl-ldl`, `-optl-no-pie` on
aarch32), windows (`-debug` + image-base flags), and
aarch64-pre-9.8 (`flags: -threaded`) overrides via cabal.project
too, so plan-to-nix captures them in configure-args.
Tests are left untouched against master so any v1-visible
behaviour drift surfaces in CI rather than being silently masked
by the v2-branch's adjusted test expectations.
From https://github.com/IntersectMBO/cardano-base at d6e5c68bbb87f528fc1926a32c462c5bf06f1782
From https://github.com/IntersectMBO/cardano-base at d6e5c68bbb87f528fc1926a32c462c5bf06f1782