Skip to content

chore: release 0.6.0 - #5

Merged
BinFlip merged 1 commit into
mainfrom
v0.6.0
Oct 18, 2026
Merged

BinFlip merged 1 commit into
mainfrom
v0.6.0

Conversation

@BinFlip

@BinFlip BinFlip commented Oct 18, 2026

Copy link
Copy Markdown
Collaborator

Release 0.6.0: the runtime's own statements of where its code and build ID sit, so consumers read these facts from gobin instead of re-deriving Go layout knowledge.

Added

  • GoBinary::text_bound_words: the addresses of the words holding the text bounds (moduledata minpc/maxpc/text/etext, each textsectmap base, pcHeader.textStart on Go 1.18-1.25, the Go 1.2-1.17 functab end sentinel).
  • GoBinary::build_id_blob: the file extent of the raw build ID marker (Mach-O, PE, wasm); None for an ELF note.
  • GoBinary::text_section_end_va: the end of the textsectmap section holding the last byte of Go code.
  • TextSect::va_range, bounds::TEXT_SYMBOL, bounds::ETEXT_SYMBOL.

Breaking

  • ModuledataLocator::locate returns LocatedModuledata.
  • buildid::extract returns a BuildId (ID plus BuildIdSource) instead of &str. GoBinary::build_id is unchanged.

Fixed

  • TextSect field docs: vaddr and end are offsets from runtime.text.

Verification

Locally, on a checkout outside the path-patch config: cargo fmt --check, cargo clippy -- -D warnings (and --all-targets), cargo doc with -D warnings, cargo test on stable and 1.88 (168 unit, 118 integration, 4 doc), and cargo publish --dry-run. New accessors are checked across the sample corpus against independent oracles (marker bytes, ELF section headers, ELF symbol tables). Cargo.lock changes only the gobin version line.

The runtime's own statements of where its code and build ID sit, so
consumers read these facts from gobin instead of re-deriving Go layout
knowledge.

- Add GoBinary::text_bound_words: the addresses of the words that hold
  the text bounds (moduledata minpc/maxpc/text/etext, each textsectmap
  base, pcHeader.textStart on Go 1.18-1.25, the Go 1.2-1.17 functab end
  sentinel), so a tool collecting code pointers can drop them by site.
- Add GoBinary::build_id_blob, the file extent of the raw build ID
  marker (Mach-O, PE, wasm); None for an ELF note.
- Add GoBinary::text_section_end_va, the end of the textsectmap section
  holding the last byte of Go code.
- Add TextSect::va_range and the bounds::TEXT_SYMBOL / ETEXT_SYMBOL
  names.
- Breaking: ModuledataLocator::locate returns LocatedModuledata, and
  buildid::extract returns a BuildId with its BuildIdSource.
- Fix the TextSect field docs: vaddr and end are offsets from
  runtime.text, not addresses.
@BinFlip
BinFlip merged commit 25f1e68 into main Oct 18, 2026
6 checks passed
@BinFlip
BinFlip deleted the v0.6.0 branch October 18, 2026 23:39
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