Skip to content

Begin the Great S4 Massacre - #17

Draft
isomorphisms wants to merge 6 commits into
irfrom
great-s4-massacre
Draft

Begin the Great S4 Massacre#17
isomorphisms wants to merge 6 commits into
irfrom
great-s4-massacre

Conversation

@isomorphisms

Copy link
Copy Markdown
Owner

What this adds

  • Great S4 massacre/fixtures/ with a reference S4 corpus covering construction/defaults, slot access, validity, inheritance, single dispatch, multiple dispatch, and coercion
  • Great S4 massacre/converter scripts/scan_s4.R to inventory S4 machinery without executing the source
  • Great S4 massacre/converter scripts/extract_contract.R to extract literal class/generic/method/coercion declarations into a conservative neutral migration contract
  • Great S4 massacre/tests/run_compliance.R with self-contained reference-R compliance checks
  • the requested README/manifesto framing S4 removal as architectural reworking rather than semantic amnesia

Design constraint

The scripts intentionally do not emit guessed IR object syntax yet. Unsupported/dynamic declarations remain visible instead of being silently mistranslated. Once the IR object surface is settled, the neutral contract can feed an emitter and the same fixtures can become differential compliance tests.

Verification

The branch is one commit ahead of ir and changes only the new Great S4 massacre/ tree. The R compliance runner still needs execution in an R-capable environment/CI before this should leave draft.

Add a reference S4 fixture, compliance checks, conservative S4 scanners, and the migration manifesto. Preserve observable semantics while leaving the future IR object surface unconstrained.

Copy link
Copy Markdown
Owner Author

Reference-R gate executed on the PR head in an R-capable GitHub Actions runner (R 4.6.1).

The first run isolated two mechanical defects: R 4.6.1 encoded spaces in the runner's --file= argument, and both converter walkers descended into missing-argument markers. Those were corrected without adding or choosing any IR object syntax. The gate now preserves Rscript's exit status through tee.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant