From 5ba327c37323c596de4822571e53748d71d6d046 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 27 Oct 2026 15:44:44 +0000 Subject: [PATCH] Prepare for public release: LICENSE (MIT), CONTRIBUTING, README status Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_0117BoWKkZX6NhLD3FphvtGZ --- CONTRIBUTING.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ LICENSE | 21 +++++++++++++++++++++ README.md | 8 ++++++++ 3 files changed, 75 insertions(+) create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..cb9ab9f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,46 @@ +# Contributing + +ReactiveScript is an early-stage language design. The spec is the product; +the reference implementation in `ref/` exists to check it. + +## How claims are made + +Every behaviour claim is either a numbered rule (`E-n`, `H-n`, `AC-n`, …; +see the README's *Rule IDs*) or a scenario under `scenarios/` +(program → actions → frames → verdict). A change to the language comes +with the rule it adds or amends and at least one scenario that shows it. +`scenarios/TEMPLATE.md` is the starting point for a new one. + +Decisions recorded in the spec as *ruled* with a date are settled; please +open an issue rather than a PR to revisit one. Decisions marked *taken by +default* are still open to change. + +Semantics follow Solid 2.0 (`solidjs/solid@next`, pinned in +`ref/SOLID_NEXT`). An open question in Solid's +`packages/signals/docs/RULES-FUNDAMENTALS.md` is open here too. Where this +spec diverges from Solid, the divergence is recorded as a `DV-n` in +`spec/05-holds.md` or `spec/10-server.md`. + +## Running the suite + +Solid is built from its `next` branch at the pinned commit (needs pnpm and a +Rust toolchain): + +```sh +sh ref/scripts/solid-next.sh # checks out and builds ../solid-next +cd ref && npm install +npm test # interpreter over every scenario +npm run oracle # the same scenarios lowered onto Solid +npm run compiled # compiled modules +npm run ssr # streamed SSR + hydration in Chromium +npm run types # TSX projection checked by TypeScript +``` + +`ref/README.md` describes each runner. Please run the suite before opening a +pull request and note any scenario whose result changed. + +## Issues + +Bug reports and questions are welcome as GitHub issues. For a semantics +question, a small `.rx` program and the frames you expected is the most +useful form. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d0e0b7d --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Ryan Carniato + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 651d23b..3f30318 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,10 @@ semantics: equations by default, writes confined to imperative scope, ownership and async (pending, holds, lanes) as things the compiler checks rather than the runtime warns about. +> **Status:** early design work. The spec, its scenarios and the reference +> implementation change often, and nothing here is released. See +> [CONTRIBUTING.md](CONTRIBUTING.md) to run the suite or propose a change. + This repository is the **spec** and its **reference implementation**. The production compiler is a separate Rust crate over Solid's own `solidjs-compiler` (`spec/11-compiler.md`): ReactiveScript parses, checks @@ -88,3 +92,7 @@ Scenario IDs: `S--n` for the areas above (`S-core`, `S-region`, - *Superset of `.tsx`, no SFCs* — superseded: expressions and JSX are TS's verbatim and a file is a module (07 §1); declarations are keywords (`source`, `x = e`), as 07 rules. + +## License + +[MIT](LICENSE)