Skip to content

Foreign plugins#283

Merged
ciaranra merged 6 commits intodevfrom
worktree-foreign-plugins
Apr 9, 2026
Merged

Foreign plugins#283
ciaranra merged 6 commits intodevfrom
worktree-foreign-plugins

Conversation

@ciaranra
Copy link
Copy Markdown
Member

@ciaranra ciaranra commented Apr 9, 2026

No description provided.

ciaranra added 6 commits April 9, 2026 09:51
Bidirectional integration letting other languages both provide plugins
(decoders, simulators) and use PECOS engines. Includes C ABI vtables
with version checking, PyO3 wrappers for Python, Go/Julia interfaces,
universal shared library (libpecos_ffi.so), conformance test suite,
runtime plugin discovery, pecos-neo integration, and shared Selene
adapter.
…vtables

- ForeignDecoder::new and ForeignSimulator::new return Option instead of
  panicking on version mismatch (panic across FFI is UB)
- C header set_seed uses uint64_t instead of size_t (32-bit safety)
- Derive Clone, Copy on vtable structs, eliminating manual field copies
- Fix Julia doc comments that said "Go"
- Fix error_ptr doc (not null-terminated)
- Remove unused thiserror dependency
- Delete Go/Julia FFI bridge files that duplicated pecos-foreign/ffi.rs
  (same symbol names, same types, caused compile errors and symbol collisions)
- Remove unsafe impl Sync for ForeignSimulator (only Send is justified)
- Add checked_mul for num_pairs*2 in engine circuit builders
- Use ManuallyDrop instead of mem::forget in conformance tests
@ciaranra ciaranra marked this pull request as ready for review April 9, 2026 19:15
@ciaranra ciaranra merged commit 65d0c7e into dev Apr 9, 2026
70 checks passed
@ciaranra ciaranra deleted the worktree-foreign-plugins branch April 9, 2026 19:15
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