You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Enable booster-only simplification via RPC flag, JSON logging on RPC, and standardize log forma (#4919)
~Blocked on:
runtimeverification/haskell-backend#4145
~Blocked on: #4902
This branch adds structured logging infrastructure to the pyk RPC layer
to enable downstream log analysis tooling. The motivating use case is
correlating simplification calls across worker processes, attributing
them to source rules, and diagnosing fixability — none of which is
possible without stable, parseable log output and hash-to-source
mappings in pyk itself.
Changes:
- `pyk/kore/rpc`: add `JSON` variant to `KoreExecLogFormat` so execution
logs are emitted as one JSON object per line rather than free-form text.
The haskell backend already supports json logging.
- `pyk/kore/rpc`: log the local port on connect, enabling correlation of
log lines to specific worker processes.
- All tools: add `%(process)d` to all log format strings for consistent
PID tagging across the toolchain.
- `pyk/ktool/kprint`: add `KPrint.all_rules` cached property, mapping
12-char rule-hash prefixes to source locations parsed from
`allRules.txt`. Downstream consumers use this for getting rule source
locations.
- `pyk/ktool/kprint`: add in-process `KPrint(..., pyk_print=True)` path,
avoiding subprocess overhead when the KAST definition is already loaded.
Without the option, current behavior remains default.
- `pyk`: surface `booster-only-simplify` flag through `KoreClient` and
`CTermSymbolic` (blocked on haskell-backend adding that flag in
runtimeverification/haskell-backend#4145).
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
0 commit comments