mirror of
https://github.com/logos-blockchain/logos-blockchain-circuits.git
synced 2026-06-17 22:19:31 +00:00
71 lines
2.3 KiB
Markdown
71 lines
2.3 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
## [0.5.0] — 2026-05-25
|
|
|
|
### Added
|
|
|
|
- **Circuits as static libraries** (#16)
|
|
|
|
The central change in this release. Previously, witness generation required spawning a compiled executable per circuit.
|
|
|
|
Each circuit is now a linkable static archive (`lib{circuit}.a`) with a stable C FFI.
|
|
|
|
Two entry points per circuit:
|
|
- `{circuit}_generate_witness(WitnessInput*, Bytes*)`: Generates a witness in memory from a
|
|
JSON input string and an embedded `.dat` buffer; the caller owns the output buffer.
|
|
- `{circuit}_generate_witness_from_files(dat, inputs, output)`: Generates a witness from a `.dat` file and a JSON
|
|
input file, writing the witness to an output file.
|
|
|
|
The Rust crates (`lbc-{circuit}-sys`) wrap this FFI directly and can either link against a local build or download a
|
|
prebuilt release automatically.
|
|
|
|
See [`rust/README.md`](rust/README.md) for usage.
|
|
|
|
- **Bundled static GMP** (#19)
|
|
|
|
`libgmp` is now compiled from source and statically linked, removing the runtime dependency on a system GMP
|
|
installation, and standardizing the GMP version used across all platforms.
|
|
|
|
- **Older glibc compatibility** (#21)
|
|
|
|
Linux builds now target an older glibc ABI for broader distribution support.
|
|
|
|
- **Dual MIT/Apache-2.0 license**.
|
|
|
|
### Fixed
|
|
|
|
- **Symbol resolution conflicts** (#22, #28, #29)
|
|
|
|
When multiple circuit libraries are linked into the same binary, the linker silently collapsed shared internal
|
|
symbols to a single definition, corrupting witness parsing and causing SIGSEGV.
|
|
|
|
See [CONTRIBUTING.md](CONTRIBUTING.md#symbol-isolation-in-circuit-libraries) for a full explanation and maintenance
|
|
notes.
|
|
|
|
- **macOS C++ library linkage** (#27)
|
|
|
|
Fixed missing C++ standard library on macOS builds.
|
|
|
|
- **Circuit assert statements** (#26)
|
|
|
|
Assert statements in the circuit source assumed standalone binary execution, causing disruptions when compiled as a library.
|
|
|
|
- **Comparator full less-than**
|
|
|
|
Fixed incorrect output in the full less-than comparator circuit.
|
|
|
|
### Housekeeping
|
|
|
|
- Auto-update Nix hashes on release (#25)
|
|
- Incremental builds (#20)
|
|
- Pinned CI action versions (#24)
|
|
- `rustfmt` configuration (#23)
|
|
- GMP version consistency (#31)
|
|
- String formatting fix (#30)
|
|
|
|
---
|
|
|
|
*No changelog was kept prior to v0.5.0.*
|