Skip to main content

bb_ops/
lib.rs

1#![warn(missing_docs)]
2//! `bb-ops` — every concrete component the framework ships.
3//! Each component lives in one file colocating IR identity (re-exports
4//! from `bb_ir::syscall_ids`), DSL helper, runtime `invoke`, and
5//! `inventory::submit!` self-registration.
6
7#![allow(rustdoc::broken_intra_doc_links)]
8
9// bb-derive emits `::bytesandbrains::*` paths; alias for resolution.
10extern crate self as bytesandbrains;
11
12// Mirror the facade's module surface for derive path resolution.
13pub use bb_dsl::concrete;
14pub use bb_dsl::graph;
15pub use bb_dsl::module;
16pub use bb_dsl::output;
17pub use bb_ir::bincode;
18pub use bb_ir::inventory;
19pub use bb_ir::keys;
20pub use bb_ir::proto;
21pub use bb_ir::syscall_ids;
22pub use bb_ir::tensor;
23pub use bb_ir::types;
24pub use bb_ir::wire;
25pub use bb_runtime::atomic;
26pub use bb_runtime::bus;
27pub use bb_runtime::completion;
28pub use bb_runtime::component;
29pub use bb_runtime::contracts;
30pub use bb_runtime::engine;
31pub use bb_runtime::ids;
32pub use bb_runtime::registry;
33pub use bb_runtime::roles;
34pub use bb_runtime::runtime;
35pub use bb_runtime::slot_value;
36
37pub mod aggregators;
38pub mod backends;
39pub mod network;
40pub mod placeholders;
41pub mod protocols;
42pub mod syscalls;
43
44/// Anchor every `inventory::submit!{}` block against linker DCE. New
45/// components must add a `black_box(...)` line; the
46/// `tests/component_authoring.rs` assertion catches omissions.
47pub fn link_force() {
48    use std::hint::black_box;
49    // black_box keeps the fn-pointer expression alive past MIR
50    // optimization, preserving the object file's static initializers.
51    black_box(syscalls::structural::pass_through::invoke as usize);
52    black_box(syscalls::structural::tee::invoke as usize);
53    black_box(syscalls::structural::constant::invoke as usize);
54    black_box(syscalls::composite::bundle::invoke as usize);
55    black_box(syscalls::composite::unbundle::invoke as usize);
56    black_box(syscalls::coordination::link_force as usize);
57    black_box(syscalls::gates::dedup_rx::invoke as usize);
58    black_box(syscalls::gates::backoff_rx::invoke as usize);
59    black_box(syscalls::gates::backoff_tx::invoke as usize);
60    black_box(syscalls::gates::peer_health_rx::invoke as usize);
61    black_box(syscalls::gates::peer_health_tx::invoke as usize);
62    black_box(syscalls::sync::gate_dispatch::invoke as usize);
63    black_box(syscalls::lifecycle::link_force as usize);
64    black_box(syscalls::peers::insert::invoke as usize);
65    black_box(syscalls::peers::insert_many::invoke as usize);
66    black_box(syscalls::peers::lookup::invoke as usize);
67    black_box(syscalls::clock_rng::clock::invoke as usize);
68    black_box(syscalls::clock_rng::deadline_match::invoke as usize);
69    black_box(syscalls::clock_rng::rng_u64::invoke as usize);
70    black_box(syscalls::clock_rng::sleep::invoke as usize);
71    black_box(syscalls::telemetry::link_force as usize);
72    black_box(syscalls::triggers::event_source::invoke as usize);
73    black_box(syscalls::triggers::on_trigger::invoke as usize);
74    black_box(syscalls::triggers::interval::invoke as usize);
75    black_box(syscalls::triggers::pulse::invoke as usize);
76    black_box(syscalls::triggers::after::invoke as usize);
77    black_box(network::wire::invoke as usize);
78    black_box(network::wire::invoke_recv as usize);
79    #[cfg(feature = "cpu-backend")]
80    black_box(backends::link_force as usize);
81}