S7
S7: a new OO system for R. Contribute to RConsortium/S7 development by creating an account on GitHub.
S7 has stopped adding surface and started proving it holds up against R itself.
◆Recent moves
- 3mo ago
Internal fixes for R-devel 4.6 compatibility
A four-PR maintenance release with no user-facing change — purely internal adjustments so S7 keeps working against R-devel 4.6. The second release in a row whose only content is tracking the host language.
View source ↗ - 9mo ago
Property setters gain an opt-out from validation
`props<-()` and `set_props()` pick up `check`/`.check` arguments so callers can set properties without triggering `validate()`. A small but real escape hatch for code that sets several properties in sequence and only wants the object checked once at the end.
View source ↗ - 1y ago
Constructor rework and pre-4.3 support for @ access
⚡ SPARKThe release where S7's shape was settled: the default constructor was rewritten to handle lazy property defaults and dynamic properties, base-class coverage widened, and a compatibility mechanism made `@` usable on older R. Everything after it has been maintenance, which marks this as the end of the design phase.
View source ↗ - 2y ago
Per-property validators and better S3 method registration
Consolidation ahead of the 0.2.0 rework: `new_property()` gains a `validator` argument, S3 methods register correctly for S7 objects in packages, and validation now runs after custom setters rather than before. Mostly correctness work on the property and validation path that later releases kept refining.
View source ↗ - 2y ago
First release: unions, set_props, and S4 virtual dispatch
The initial public release, written as a running log across roughly eighteen months of pre-1.0 development. Establishes the fundamentals later releases refine — class unions via `|`, `set_props()`, single-pass validation per hierarchy level, and correct dispatch on S4 virtual classes.
View source ↗