eval-vm increment 7: host_backend_stream, the server-streaming effect leaf (twin of host_backend_call). Bridge carries chunk/last events (push_chunk/finish); tonic server_streaming pushes each decoded reply as a chunk and terminates at end-of-stream; Vm_prelude backend_stream feeds chunks to an Lwt callback (the grpc_call_streaming pattern) and resolves at EOS. Demo test streams a real Derivation RPC. Unblocks porting derivation.ml Derivation/UbuntuPackage.
Created by pmeunier on Aug 5, 2026, 4:40 AM
State:
JFRH7V3YMC47D6RGIFIBCOGBIDW4TVGWVCUMCG7MABDFGR5RTI7ACelpe frontend: Bazel aquery-drive layer 2 — one native derivation per action (execroot replay). replay_script stages inputs as symlinks at their exec paths, materializes param files, exports env, runs arguments verbatim cwd=execroot, harvests outputs to $DESTDIR; action_replay std_derivation wires source inputs from the workspace src tree and generated inputs from producer derivations' $DESTDIR; deriver memoizes one derivation per action keyed by primary_output_id (the DAG). Pure unit tests over the emitted replay bash + action naming. Toolchain/argv[0] provisioning (aquery-in-container) is the next acquisition layer.
Created by pmeunier on Aug 5, 2026, 4:33 AM
State:
Y2SAVBUT754WMEWDNSB34WCIL23VDCLMMJ66MZKHIMLOH533YU7QCdesign.org: VM OCaml roadmap item TODO->DOING — capture the decided approach (Rust host + curated bytecode-VM primitive table, no stdlib fork, Lwt kept), the increments 1-6 landed & proven end-to-end, and the remaining real-lib port campaign; link eval-vm.md
Created by pmeunier on Aug 5, 2026, 4:18 AM
State:
FQJWNQG4CCMOMAIXDHVSE6D3SSYI2REOLLS24ETR55SW2QBKHUDQCelpe frontend: Bazel aquery-drive layer 1 — vendored analysis_v2.proto (trimmed, no build.proto/cquery) + bazel.ml action-graph reconstruction (exec paths from PathFragment tree, transitive dep-set flatten, output->producer map, source/generated input partition, terminal actions) + synthetic-graph unit tests. Parsing half of 'Elpe owns the build' (reapi/ARCHITECTURE.md deux hybrides); execroot replay derivation is layer 2.
Created by pmeunier on Aug 5, 2026, 4:19 AM
State:
TAHRZ2KLEEYMBIQUYJT4FMCZMZY2GKR6B2NHKHVVVZZGP64A64PQCelpe_bin: make backend address configurable via ELPE_BACKEND env (host:port), for targeting a private/isolated backend off the shared 50051
Created by pmeunier on Aug 5, 2026, 4:16 AM
State:
VG4X3R243BCMTPO4WC7IU2XIL4EMQLUBORFPGIAVA23IURPAEHKQCeval-vm: increment 6 — the REAL Elpe protobuf layer (ocaml-protoc-generated elpegrpc.ml, pure) runs INSIDE the curated sandbox VM. A real Handshake RPC is encoded/decoded with Service.make_client_functions (the exact grpc_call_unary pattern) and round-trips against the live backend -> real PlatformReply (arch=amd64). Proves the real-DSL port is mechanical: only the transport (h2 -> host_backend_call) changes.
Created by pmeunier on Aug 5, 2026, 4:14 AM
State:
5GLOL5XQ25ONZOFH3VRXND6NAKYRTGN3YBMCURLKVSYGEJWM6AEQClocal_src ignore: detect path-anchoring from the pattern, not the built regex (every '*' -> '[^/]' put a literal '/' in the regex, so plain globs like *.cmi / elpe.*.lock were treated as anchored and only matched at the tree root; nested build artifacts leaked into every capture, churning the src hash and breaking build reproducibility via the embedded OUT_DIR path)
Created by pmeunier on Aug 5, 2026, 4:09 AM
State:
YGTFWR2PIUT73LWPL4QFAWZBOG27XIGLG7XVUVZ3GJKL5BAYSVUACdeb_url: fetch+extract a .deb by URL+hash (no apt repo); syft example
Created by pmeunier on Aug 5, 2026, 3:59 AM
State:
T3ZRZROX3K7WFCVBCPV5HUAKUKA5ACHC2VFZQHOLIV6ZK6BUB6BACextract: atomic deb extraction — decompress into a .extract-tmp sibling then rename into place, so a crash mid-extract never leaves a half-populated final store path that later builds trust (root cause of the 'tar: command not found' / chmod poison)
Created by pmeunier on Aug 5, 2026, 3:57 AM
State:
5AU4WCWT53BWVAARWYDLGKY73DTETBGDGNV7QADVKPEOYPSHKE4ACeval-vm: increment 4 — host_read_source (local_src leaf, CWD path policy in Rust; caml_failwith bridge) + OCaml Vm_prelude packaging the effect surface & Lwt run-loop so user bytecode is clean. Multi-source bytecode compile.
Created by pmeunier on Aug 4, 2026, 9:46 PM
State:
6G3FYMI3GJIRZOYYGDXOXUYISVXEW2HFNYGXTR7S6EIBWWASCUEQCcap policy travels frontend->backend over gRPC. New SetCapPolicy RPC + CapPolicy{CapMode mode, uint32 value} proto message; backend installs a process-global policy override (elpe_sched::set_default_policy) that container.rs reads via default_policy() at both acquire sites, taking precedence over ELPE_DEFAULT_CORES. OCaml gains a cap_policy sum type (Uncapped|Fixed n|Adaptive pct), elpe build -cores SPEC (N or psi:N) parses+pushes it before building; absent flag pushes nothing (non-breaking). Rust+OCaml green
Created by pmeunier on Aug 4, 2026, 9:46 PM
State:
LAA7KRM6OANICFZ36RITW64F65436FUGUX2HA6LWSQ4K6VD2LG6QCsbom CI: flake checks.sbom-validate (offline CycloneDX + syft->SPDX) + packages.sbom-multiarch (cyclonedx-cli merge)
Created by pmeunier on Aug 4, 2026, 9:40 PM
State:
NBHNS5WFDLEA2U3RAWBU7QSUWSXB5YZLMVW7GJFDRCZCLY2YEDZQCelpe-sched: CapPolicy becomes a sum type (Uncapped | Fixed(n) | Adaptive{yield_at_pct}) with PSI back-pressure. ELPE_DEFAULT_CORES gains psi:<pct>/pressure:<pct>: an undeclared action waits (polling /proc/pressure/cpu 'some avg10') while CPU pressure >= threshold, so a desktop-cum-CI-runner yields to interactive use and refills when idle. Fixed(n) unchanged, Uncapped still the non-breaking default. Pure tests: parse grammar, adaptive slice (quarter machine), PSI parse, resolve declared-wins
Created by pmeunier on Aug 4, 2026, 9:39 PM
State:
BTNV6Y3MVWC2DQB3K4SKJYCB4CKGIN2K52PWPOHG6ARL2Q7GHC5QCeval-vm: increment 3 — first real effect leaf host_backend_call (async bytes-in/bytes-out over a real socket round-trip, bridged into Lwt; two calls overlap). Bytes marshaling both ways via caml_string_length/caml_alloc_string.
Created by pmeunier on Aug 4, 2026, 9:36 PM
State:
NAKITNENNYMW752542HYO7OKKJ5YNA5GFJTPM7L4IM2EIASA3VQQCsbom U3b perf: run the output reference scan in spawn_blocking (off the async executor)
Created by pmeunier on Aug 4, 2026, 9:34 PM
State:
RTSJGLYXRSUQXC5MUS3W7NJLHFSQKIY7XLUDBQETGXYYLWZTA5HQCsbom U3b-3: fold reachable deb->deb lock edges into build SBOM (complete_edges BFS: scanned + reused deb closure)
Created by pmeunier on Aug 4, 2026, 9:26 PM
State:
GB2DLYFX7AVDSPWUUCF7FLYYTMU3OL4RAQ4STJWTJYEOR2262CRACeval-vm: Rust host embedding a sandboxed OCaml bytecode VM (increments 1-2) — curated prim table (no IO), async host prims bridged into Lwt (Lwt.all overlaps); crates ocaml-vm-sys/-build/-vm + demo
Created by pmeunier on Aug 4, 2026, 9:23 PM
State:
ODR2WEX4J2WYP7D37DNVKVSYSM6K4HK2BXGT6Y24A5JYTMOTG4LACelpe-sched: privileged cgroup-v2 validation tests (ignored) — prove ELPE_DEFAULT_CORES caps+pins an undeclared action (cpu.max=quota, cpuset pinned to N cores) and that no default leaves it uncapped (cpu.max=max); finishes task A validation
Created by pmeunier on Aug 4, 2026, 9:18 PM
State:
3FPL4SFQFVKIGELUSWQFARNHVAGES2UO4XIXT47LMBWE5TNJBEWACsbom U3b-2: emit real scanned dependency graph in build SBOM (built_edges -> cyclonedx_of_build ~edges)
Created by pmeunier on Aug 4, 2026, 9:10 PM
State:
Z72USAIXFGYI2ZXBLQ2SAXNGP327OOZMYFQXHNC7BAXA3GPIBMWACsbom U3b-1: Nix-style reference scan of derivation outputs -> real dep edges in DerivationResult.paths (non-ubuntu only)
Created by pmeunier on Aug 4, 2026, 9:04 PM
State:
XCECPZVVLVWSENXBGXDS27UJQHECGLKXG2UPRMGJU3T7QCN5W5TQCimage: Phase 2a fix — define class system before its qcow2/installer/bootstrap/install_vm users
Created by pmeunier on Aug 4, 2026, 9:05 PM
State:
3XOB633I7QD7E74KHLOTGMMYMMLISSV2VHJBIUGWORIUNAJ2X52AC