← Back to all sparks
O

ore

INFRA · APIS
Velocity0.0

An R Interface to the Onigmo Regular Expression Library

A stable Oniguruma binding for R that ships correctness fixes and little else.

r-packageregexmaintenancebug-fixescran
Current state
ore wraps the Oniguruma regex engine for R, and its recent history is entirely about making that binding safe rather than richer. The last three releases fix an infinite-loop hazard on zero-length matches, a named-group propagation bug, and locale detection at startup. The user-facing API has not moved since 1.7.1, when ore_file() began recording whether a file was read as binary.
Where it's heading
This is a package in maintenance, not development. The changes cluster around C-level hygiene — memory leaks, buffer overruns, sprintf() removal, compiler warnings — which reads as keeping CRAN checks green rather than pursuing new capability. Releases arrive in pairs separated by minutes or in gaps of two years, a cadence typical of a package touched only when something breaks or a CRAN policy shifts.
Prediction
The next release is most likely another correctness or toolchain fix rather than new regex functionality; the README's note about CRAN and mainline diverging suggests the two versions may be reconciled at some point, though the entries do not say when.

Recent moves

  1. 1y ago

    Zero-length regex matches can no longer loop forever

    The match loop now refuses a second zero-length match at the same offset and advances the cursor instead, closing an infinite-loop path. This is a semantics change rather than a patch — patterns that previously hung now terminate — and it fits the package's pattern of hardening the binding rather than extending it.

    View source ↗
  2. 2y ago

    Named groups now reach match matrices without pre-compiling

    Named capture groups were only propagated to match matrices when the regex had been pre-compiled with ore(); that inconsistency is gone. Paired with a resolved printf format warning, this is the maintenance work that has defined the package's recent releases.

    View source ↗
  3. 2y ago

    Startup detects plain UTF-8 locales; sprintf() dropped

    Startup now recognises a bare locale string like "UTF-8", and the C code drops sprintf() along with several prototype warnings. Released seconds before 1.7.4, it is part of the same CRAN-hygiene pass rather than a separate line of work.

    View source ↗
  4. 4y ago

    Memory leaks plugged; README documents the CRAN split

    Small memory leaks are fixed and the README now spells out how the CRAN build diverges from mainline. Nothing changes for callers, but the README note is the clearest signal in the whole history that the package maintains two tracks.

    View source ↗
  5. 4y ago

    ore_file() records its binary flag; es() gets faster

    ore_file() now stores its binary argument as an attribute, and ore_search() reads that attribute to decide whether returning file contents as a string is safe — a real behavioural fix for binary input containing embedded nulls. A performance tweak to es() and a buffer-overrun fix ship alongside it. This is the last release to change the API surface.

    View source ↗
  6. 4y ago

    CRAN tagging release for 1.7.1

    A tag cut for the CRAN submission of 1.7.1, carrying no code changes of its own. It marks the boundary between the mainline and CRAN versions the README describes.

    View source ↗