J
jit-overview
Orientation to facet-format JIT deserialization (tiering, fallbacks, key types/entry points) and where to look when changing or debugging JIT code
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Orientation to facet-format JIT deserialization (tiering, fallbacks, key types/entry points) and where to look when changing or debugging JIT code
How to use
- Przeczytaj ten skill, gdy pracujesz z kodem w
facet-format/src/jit/lub włączasz featurejitw swoim projekcie. - Zapoznaj się z modelem mentalnym:
FormatParsergeneruje streamParseEvent, a warstwa sterowana kształtem (shape) konsumuje te eventy i zapisuje do pamięci wyjściowej. JIT kompiluje kod specjalizowany dla konkretnego typu docelowego i opcjonalnie dla parsera formatu. - Zrozum architekturę dwuwarstwową: Tier 1 (shape JIT) kompiluje kod dla dowolnego formatu implementującego
FormatParser; Tier 2 (format JIT) omija stream ParseEvent i parsuje bajty bezpośrednio za pomocą Cranelift IR, gdy cały input jest dostępny. - Pamiętaj, że fallbacki są częścią projektu — Tier 2 może zwrócić "unsupported" dla nieobsługiwanych kształtów i musi być wolny od efektów ubocznych; typowy przepływ próbuje Tier 2, następnie Tier 1, potem reflection.
- Gdy debugujesz problemy z wydajnością lub awarie JIT (SIGSEGV), zacznij od głównej dokumentacji w
facet-format/src/jit/mod.rs, sprawdź traitFormatJitParserwfacet-format/src/parser.rsi przeanalizuj implementację w konkretnym cratie formatu (np.facet-json/Cargo.toml).