Repository navigation
Tags: ktav-lang/php
Tags
Release 0.3.0 — sync to ktav 0.3.0
Thin bump — PHP binding wraps the Rust ktav crate via FFI/cdylib.
Behaviour change from upstream:
- key: (value) and key: ((value)) now error with
InlineNonEmptyCompound { body: paren-string }. Use raw form key:: (value).
Cargo.toml: ktav 0.2.0 → 0.3.0; package version 0.2.0 → 0.3.0.
NativeLib::LIB_VERSION: 0.1.1 → 0.3.0 — was stale, runtime now fetches
the matching cabi asset from the v0.3.0 GitHub Release.
spec submodule synced (paren-string fixtures tightened — 46d94a7).
CHANGELOG.md updated.
All 101 specs pass locally (Kahlan).
0.1.2: pick up ktav 0.1.5 (structured errors API) Upstream Rust crate now exposes Error::Structured(ErrorKind) with byte-offset spans, retroactive #[non_exhaustive] on the error enums, and a public ktav::thin event-based parser. The PHP binding's user-visible behaviour is unchanged: KtavException carries the same human-readable message (Display strings for the seven canonical categories are byte-identical to ktav 0.1.4 — verified by ktav's own pinning tests). Mapping ktav::ErrorKind to a structured PHP exception hierarchy (KtavMissingSeparatorSpaceException, KtavDuplicateKeyException, etc.) is separate follow-up work, tracked in the workspace's STRUCTURED_ERRORS.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PreviousNext