Skip to content

chore(deps): bump object from 0.39.1 to 0.40.0 - #938

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/object-0.40.0
Open

chore(deps): bump object from 0.39.1 to 0.40.0#938
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/object-0.40.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 10, 2026

Copy link
Copy Markdown
Contributor

Bumps object from 0.39.1 to 0.40.0.

Changelog

Sourced from object's changelog.

0.40.0

Released 2026/08/01.

Breaking changes

  • Changed many file format struct fields and constants to use newtypes. Newtypes for bit flags have methods such as contains and intersects. Some constants are fields within another newtype and have methods for conversion. The raw values are always accessible by .0. #894 #897 #898 #899 #900 #957 #958 #959 #970

  • Updated macho::DyldCacheHeader to dyld-1340. #885

  • Deleted SectionKind::Elf and added sh_type field to SectionFlags::Elf. #891

  • Added feature gates to variants of FileFlags, SegmentFlags, SectionFlags, SymbolFlags, and RelocationFlags. #891

  • Added p_type field to SegmentFlags::Elf. Added n_type field to SymbolFlags::MachO. Added typ and storage_class fields to SymbolFlags::CoffSection. Added n_type field to SymbolFlags::Xcoff. Added reserved2 field to SectionFlags::MachO. #891 #963

  • Renamed build::elf::AttributeTag to AttributeScope. #894

  • Changed write::elf::Writer::reserve_strtab/reserve_shstrtab/reserve_dynstr and write::coff::Writer::reserve_symtab_strtab to return an Error for null bytes in strings, or table size overflow. #905

  • Changed many write::elf::Writer methods to return u64 instead of usize. #909

  • Replaced name fields in write::elf::SectionHeader, write::elf::Sym,

... (truncated)

Commits
  • 400e64f Release 0.40.0
  • a250ec8 Update Cargo.lock
  • 9dbccee Update wasmparser and ruzstd dependencies
  • bd44487 Add missing BitOr conversions for newtypes (#970)
  • 581e658 read/macho: add Segment::section_offsets (#968)
  • 584a5bf write/macho: fix writing of code limit fields (#967)
  • 4d2f379 write: add from_raw methods for ELF/Mach-O encoder structs (#966)
  • 39ca5ce macho: use section flags to determine kind (#965)
  • 441d84e macho: fix handling of common symbols (#964)
  • 7caf64f macho: add reserved2 field to SectionFlags::MachO (#963)
  • Additional commits viewable in compare view

@dependabot dependabot Bot added the dependencies Dependency updates label Aug 10, 2026
@temper-pulseengine
temper-pulseengine Bot enabled auto-merge (squash) August 10, 2026 21:45
@github-actions

Copy link
Copy Markdown

🔒 0.x MINOR bump — held for manual review. 0.39.10.40.0: for a 0.x crate the MINOR component is the de-facto major, so this is BREAKING even though Dependabot labels it semver-minor. This gap broke synth twice on ordeal (0.9→0.12 added BvTerm::Urem, breaking every exhaustive match; 0.9→0.16 in #864 landed with no CI run and left main uncompilable). Build EVERY affected feature set (incl. --features z3-solver) and run the full synth-verify suite before merging.

Bumps [object](https://github.com/gimli-rs/object) from 0.39.1 to 0.40.0.
- [Changelog](https://github.com/gimli-rs/object/blob/main/CHANGELOG.md)
- [Commits](gimli-rs/object@v0.39.1...v0.40.0)

---
updated-dependencies:
- dependency-name: object
  dependency-version: 0.40.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/cargo/object-0.40.0 branch from fa8857a to 917a7a3 Compare August 13, 2026 16:06
@github-actions

Copy link
Copy Markdown

🔒 0.x MINOR bump — held for manual review. 0.39.10.40.0: for a 0.x crate the MINOR component is the de-facto major, so this is BREAKING even though Dependabot labels it semver-minor. This gap broke synth twice on ordeal (0.9→0.12 added BvTerm::Urem, breaking every exhaustive match; 0.9→0.16 in #864 landed with no CI run and left main uncompilable). Build EVERY affected feature set (incl. --features z3-solver) and run the full synth-verify suite before merging.

@avrabe

avrabe commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Disabled auto-merge on this PR manually.

The 0.x-minor hold did fire (two hold comments above), but auto-merge was still ENABLED (SQUASH) and the major-bump-hold label never landed — so the gate announced a hold it did not enforce. Filed as #965.

The hold is right on the merits: object 0.39.1 → 0.40.0 currently fails Test and Clippy. object is load-bearing here — it is what the execution differentials read ELF symtabs with (and what #959 moved disasm_words onto to kill a synth disasm host-dependency), so a breaking bump landing unverified would surface as oracle failures far from the cause.

Per the 0.x-minor rule this needs a full suite green before merging, not just the core required checks — including the feature-gated paths (--features z3-solver), since a feature-gated build hides unhandled match sites.

avrabe added a commit that referenced this pull request Aug 14, 2026
* chore(release): v0.57.0 assembly — "the checkers were the defects"

Nine artifacts. In five of them the bug was in the machinery that checks the
compiled code, not in the compiled code:

  #975  ArmSemantics silently no-oped 87 of 222 ops — a Rocq-proved,
        default-on rotl rule was "validated" by a model that executed neither
        of its instructions
  #976  the gpio differential CANNOT discriminate the miscompile it guards —
        complementary conditions, so no input to that driver can
  #969  writes_sp claimed exhaustiveness over a wildcard absorbing 175 of 222
  #967  the "9 unattributed branches" were manufactured by witness's own
        hardcoded divergence text
  #979  the prescribed release: back-fill would have written 32 false entries,
        with the one correct pre-existing value beside them as the disproof

The unifying property is that each of those checks COULD NOT FAIL. This
release makes them able to fail and proves it by making them fail on purpose.

Also fixed, and the most severe item: #974 — a conditionally-written parameter
was demoted to a zero-init local on ARM and RISC-V. Exit 0, no decline, wrong
code; on RISC-V it reads an UNINITIALISED stack slot (0xDEADBEEF under a
poisoned stack), an information-disclosure shape. ARM behaves identically —
which the issue predicted otherwise, and only execution settled.

Release surfaces, all four swept and checker-confirmed at 0.57.0:
  Cargo.toml [workspace.package] + 10 path-dep pins
  MODULE.bazel, npm/package.json, Cargo.lock (cargo metadata)
  scripts/check_version_pins.py: OK

Derived artifacts regenerated (--emit-status): artifacts/status.json,
docs/status/FEATURE_MATRIX.md. Claim gate: 43/43.

Open by design, named not hidden: #973 (ARM select miscompile, found only
because a lane compiled ARM fixtures — which CI never does), #977 (ELF-magic
flake, second sighting), #938 (breaking object 0.x-minor bump, auto-merge
disabled), #912 (open with four remaining: items).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L

* fix(release): act on the v0.57.0 cold review — 8 accuracy defects, 4 of them mine

Cold review of the assembled release. Nothing blocked the tag; everything below
is accuracy. Four of the eight were errors in the CHANGELOG I had just written,
which is the reason the review exists.

THE GENERALIZABLE FINDING, and it is pointed given this release's theme:
`check_generated_fresh` byte-compares the RENDERED FEATURE_MATRIX against the
TEMPLATE. `render_feature_matrix` only substitutes `{{...}}` fields, so the gate
proves the render is faithful to the template — and NEVER that the template is
faithful to the code. Every stale number below lives in template prose no
substitution touches. In a release titled "the checkers were the defects", that
is the checker that cannot fail. Three independent stale numbers survived a
green 43/43.

USER-FACING FALSE, verified by compiling rather than by reading:
  FEATURE_MATRIX listed "writing a PARAM local in a LEAF function" as a LOUD
  DECLINE on aarch64. #971 shipped exactly that. A leaf `local.set` on a param
  compiles: 32 bytes of machine code, exit 0. Also corrected in the same row:
  homing is no longer non-leaf-only, and the float-param decline widened with
  it. Fixed in the TEMPLATE (the render is generated) + regen.

MY CHANGELOG ERRORS:
  * "145 of the 175 pre-declined / 30 reachable" matched no partition. The
    shipped source (wcet_loops.rs:1232) says 142 give up with `true`, leaving
    33. Re-derived: 142/33. Corrected.
  * "demoted to a zero-initialised local" is wrong for the two backends the
    entry is about — zero-init is gated on first-access-being-a-READ, and in
    the cond-write shape the first access IS the write, so nothing initialises
    the slot. That is WHY it reads poison; the old wording made an
    information-disclosure bug sound like a benign wrong value, and contradicted
    the entry's own next sentence.
  * "Nine artifacts" — there are ten, and RQ-57-DOCSWEEP (#946/#968) had NO
    CHANGELOG entry at all despite touching CLAUDE.md, coq/STATUS.md,
    PROJECT_STATUS.md, the matrix template and eight source files. Added.
  * "Five in-tree oracles took that opt-in" — eight scripts plus three Rust
    tests. All eight carry floors, but `i64_param_518_riscv_loudskip`'s is
    `compiles >= 1`, which is a floor and NOT the "tight" one the paragraph
    claimed for the set. Named rather than folded into the claim.

STALE COUNTS (the template-prose class above):
  ORACLE_WIRING.md, the matrix template and claims.yaml all said "137 oracles /
  295,621 emulator entries". Re-derived independently — and the reviewer's
  number and mine agree exactly: 144 oracles / 296,059. Both `count-min` pins
  moved 137 -> 144 with them (same `emulations >=` pattern, two sibling claims);
  the pinned verbatim texts moved too, or the ledger would have gone red
  against its own corrected doc.

REVERSE STALENESS (a doc calling SHIPPED work missing):
  `synth verify` declines shift rules citing "SMT modeling of the variable-shift
  register encoding is an open gap". #975 CLOSED that gap — it modelled
  LslReg/LsrReg/AsrReg/RorReg as Rm<7:0> (ARMv7-M A7.7.68/70/12/117) and moved
  five lowerings Invalid -> Verified. Both comments corrected to say what is
  true: the modelling gap is closed, the remaining decline is a WIRING residual.
  Behaviour deliberately unchanged — rewiring the rule table is a
  verification-surface change, not release assembly. Filed as #981.

ARTIFACT:
  RQ-57-PROVGAP still asserted "9 object branches with no WASM origin" as fact
  while its own PR disproved it. Outcome recorded, as RQ-57-BACKFILL already did.

  docs/architecture/CRATE_STRUCTURE.md said 18 crates; there are 19. A
  RECURRENCE — PROJECT_STATUS.md cites this exact drift as why it was gutted in
  the #946 sweep, and one file over it was live again.

Gates after: claim_check 43/43, check_version_pins OK at 0.57.0,
cargo check -p synth-cli rc=0.

Refs #980, #981

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L

* style: rustfmt the #975 decline-reason comment (indent 14 -> 12)

My own miss: I ran cargo check on the edited file but not cargo fmt, and
Format is a required context. The comment content is unchanged — only the
indentation rustfmt wanted.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

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

Labels

dependencies Dependency updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant