From 5bfcfa8f01d6f0e0d7535639eaa341fcce9fd9b8 Mon Sep 17 00:00:00 2001 From: blasty Date: Thu, 9 Jul 2026 11:45:45 +0200 Subject: domain/paging layer: FunctionIndex, block-cached DisasmModel, decompile, resolve - Program: model registry + small prefetch pool; cache invalidation hooks - FunctionIndex: lazy pagination (advance by len, clamp page=500), filter globs, viewport windows; full 10,092-func enumerate matches survey in ~3.1s - DisasmModel: block-cached windowed disasm (256/block), forward+back prefetch, cached instruction totals; deep window revisit 196ms -> 0ms (cache proven) - Decompilation: truncation-aware, hard-failure surfaced as data (monster funcs) - resolve(): int/hex/symbol via lookup_funcs (string-array query shape) - tests/test_domain.py: 17/17 on both ls (~290 funcs) and libcrypto (10k+52k-insn) - smoke_client no longer assumes 'main' exists (works on libraries) - doc: idle_ttl worker self-exit finding ("not reachable" needs re-open) --- idatui/__init__.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'idatui/__init__.py') diff --git a/idatui/__init__.py b/idatui/__init__.py index 450d64f..8dd371c 100644 --- a/idatui/__init__.py +++ b/idatui/__init__.py @@ -11,8 +11,28 @@ from .client import ( IDASessionError, Session, ) +from .domain import ( + Program, + FunctionIndex, + DisasmModel, + Func, + Line, + Ref, + Decompilation, + LIST_PAGE, + DISASM_BLOCK, +) __all__ = [ + "Program", + "FunctionIndex", + "DisasmModel", + "Func", + "Line", + "Ref", + "Decompilation", + "LIST_PAGE", + "DISASM_BLOCK", "IDAClient", "IDAError", "IDAConnectionError", -- cgit v1.3.1-sl0p