<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Parsanol News</title>
    <link>https://www.parsanol.org/</link>
    <atom:link href="https://www.parsanol.org/rss.xml" rel="self" type="application/rss+xml" />
    <description>Parsanol release notes and announcements: runtime releases, engine news, and PARG updates.</description>
    <language>en</language>
    <item>
      <title>Announcing PARG — a language-independent grammar language with bindings on every runtime</title>
      <link>https://www.parsanol.org/news/parg-announcement/</link>
      <guid isPermaLink="true">https://www.parsanol.org/news/parg-announcement/</guid>
      <pubDate>Fri, 23 Oct 2026 12:00:00 GMT</pubDate>
      <description>PARG is parsanol&apos;s grammar language: write one text file, compile it once into a checksummed artifact, and bind its captures to typed model objects — with runtime and compiled object bindings on every runtime: Ruby, Rust, WebAssembly, and TypeScript.</description>
    </item>
    <item>
      <title>Error Recovery Everywhere, and a Fifth Engine to Keep It Honest</title>
      <link>https://www.parsanol.org/news/recovery-five-engines/</link>
      <guid isPermaLink="true">https://www.parsanol.org/news/recovery-five-engines/</guid>
      <pubDate>Fri, 23 Oct 2026 10:00:00 GMT</pubDate>
      <description>The recovery stack is complete on every runtime — deepest-failure diagnostics, partial trees, and declared resync spans with byte-identical offsets — verified daily by a five-engine differential fuzz that now includes a reference walker with every optimization switched off.</description>
    </item>
    <item>
      <title>Parsanol 1.3.52: The Ruby and Rust Packages Ship Together</title>
      <link>https://www.parsanol.org/news/ruby-1.3.52-ruby-rust-native/</link>
      <guid isPermaLink="true">https://www.parsanol.org/news/ruby-1.3.52-ruby-rust-native/</guid>
      <pubDate>Wed, 23 Sep 2026 18:00:00 GMT</pubDate>
      <description>The Ruby gem and the Rust crate now expose one engine across every supported runtime. This post enumerates the supported formats, archives, runtimes, and platforms.</description>
    </item>
    <item>
      <title>1.3.52: A Vendored C Library in Every Platform Gem</title>
      <link>https://www.parsanol.org/news/ruby-1.3.52-cdylib-platform-gems/</link>
      <guid isPermaLink="true">https://www.parsanol.org/news/ruby-1.3.52-cdylib-platform-gems/</guid>
      <pubDate>Wed, 23 Sep 2026 10:00:00 GMT</pubDate>
      <description>Each prebuilt platform gem now carries its own pure-portable cdylib next to the extension — the ffi tier works everywhere from MRI fallback to TruffleRuby — while the source gem stays binary-free.</description>
    </item>
    <item>
      <title>Exact Tree Parity: CanFlatten, Dynamic Capture Writes, TreeDiff</title>
      <link>https://www.parsanol.org/news/tree-parity-canflatten/</link>
      <guid isPermaLink="true">https://www.parsanol.org/news/tree-parity-canflatten/</guid>
      <pubDate>Mon, 21 Sep 2026 10:00:00 GMT</pubDate>
      <description>Both engines now produce byte-identical parslet trees — the CanFlatten fold is ported exactly, dynamic blocks can read AND write captures across the FFI boundary, and TreeDiff.why explains any divergence in one call.</description>
    </item>
    <item>
      <title>Engine Modernization: Bytecode VM, SIMD Scanning, Incremental Reparse</title>
      <link>https://www.parsanol.org/news/engine-modernization/</link>
      <guid isPermaLink="true">https://www.parsanol.org/news/engine-modernization/</guid>
      <pubDate>Tue, 15 Sep 2026 10:00:00 GMT</pubDate>
      <description>parsanol-rs 0.6–0.8 ships a bytecode VM with lead-byte dispatch and selective rule memoization, SIMD scan kernels, compiled-program artifact caching, and tree-sitter-style incremental parsing sessions.</description>
    </item>
    <item>
      <title>Parsanol 1.3: The Native-First Era</title>
      <link>https://www.parsanol.org/news/ruby-1.3-native-first/</link>
      <guid isPermaLink="true">https://www.parsanol.org/news/ruby-1.3-native-first/</guid>
      <pubDate>Thu, 20 Aug 2026 10:00:00 GMT</pubDate>
      <description>Native Rust parsing is now the default on every mode — cause-tree errors, prefix and reporter parsing, incremental sessions — with a pure-Ruby engine always underneath as the portable floor.</description>
    </item>
    <item>
      <title>Parsanol 0.4.0: Unified API and Lazy Line/Column</title>
      <link>https://www.parsanol.org/news/0.4.0/</link>
      <guid isPermaLink="true">https://www.parsanol.org/news/0.4.0/</guid>
      <pubDate>Thu, 19 Mar 2026 10:00:00 GMT</pubDate>
      <description>Single parse() API, zero-overhead position info, Ruby 4.0 support, and WASM build fixes.</description>
    </item>
    <item>
      <title>Parsanol Ruby 1.2.2: FFI Captures, Scopes, and Dynamic Atoms</title>
      <link>https://www.parsanol.org/news/ruby-1.2.2/</link>
      <guid isPermaLink="true">https://www.parsanol.org/news/ruby-1.2.2/</guid>
      <pubDate>Sat, 07 Mar 2026 10:00:00 GMT</pubDate>
      <description>Ruby bindings now support native capture extraction, isolated scopes, and context-sensitive parsing via FFI callbacks.</description>
    </item>
    <item>
      <title>Parsanol 0.3.0: Captures, Scopes, and Dynamic Atoms</title>
      <link>https://www.parsanol.org/news/0.3.0/</link>
      <guid isPermaLink="true">https://www.parsanol.org/news/0.3.0/</guid>
      <pubDate>Sat, 07 Mar 2026 09:30:00 GMT</pubDate>
      <description>Major release adding capture extraction, isolated scopes, and context-sensitive parsing.</description>
    </item>
    <item>
      <title>Parsanol Ruby 1.1.0: Slice Support and Performance</title>
      <link>https://www.parsanol.org/news/ruby-1.1.0/</link>
      <guid isPermaLink="true">https://www.parsanol.org/news/ruby-1.1.0/</guid>
      <pubDate>Thu, 05 Mar 2026 16:00:00 GMT</pubDate>
      <description>Added Slice objects for lazy extraction and streaming parser support for large files.</description>
    </item>
    <item>
      <title>Parsanol 0.2.0: Backend Abstraction and Bytecode VM</title>
      <link>https://www.parsanol.org/news/0.2.0/</link>
      <guid isPermaLink="true">https://www.parsanol.org/news/0.2.0/</guid>
      <pubDate>Thu, 05 Mar 2026 14:00:00 GMT</pubDate>
      <description>Introduced backend abstraction with trait-based selection, Bytecode VM for faster parsing, and pre-commit hooks.</description>
    </item>
    <item>
      <title>Parsanol Ruby 1.0.2: Release Infrastructure</title>
      <link>https://www.parsanol.org/news/ruby-1.0.2/</link>
      <guid isPermaLink="true">https://www.parsanol.org/news/ruby-1.0.2/</guid>
      <pubDate>Tue, 03 Mar 2026 14:00:00 GMT</pubDate>
      <description>Improved release infrastructure with automated gem builds and cross-platform support.</description>
    </item>
    <item>
      <title>Parsanol Ruby 1.0.0: Initial Release</title>
      <link>https://www.parsanol.org/news/ruby-1.0.0/</link>
      <guid isPermaLink="true">https://www.parsanol.org/news/ruby-1.0.0/</guid>
      <pubDate>Tue, 03 Mar 2026 10:00:00 GMT</pubDate>
      <description>First release of Parsanol Ruby bindings with native extension support and Parslet-compatible API.</description>
    </item>
    <item>
      <title>Parsanol 0.1.0: Initial Release</title>
      <link>https://www.parsanol.org/news/0.1.0/</link>
      <guid isPermaLink="true">https://www.parsanol.org/news/0.1.0/</guid>
      <pubDate>Fri, 20 Feb 2026 09:00:00 GMT</pubDate>
      <description>First public release of Parsanol, a modern parser combinator library for Rust and Ruby.</description>
    </item>
  </channel>
</rss>