Ctrl K
ComunidadGuías…

README.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Rove

<p align="left">
  <a href="https://justsomeone-e.github.io/RoveLang/studio.html"><img src="https://img.shields.io/badge/Rove%20Studio-learn%20%26%20inspect-22C55E?style=for-the-badge&amp;logoColor=0F172A&amp;labelColor=0E1318" alt="Open Rove Studio"></a>
  <a href="https://justsomeone-e.github.io/RoveLang/"><img src="https://img.shields.io/badge/interactive%20tour-try%20in%20browser-00F0FF?style=for-the-badge&amp;logoColor=05070A&amp;labelColor=0E1318" alt="Try Tour of Rove Online"></a>
  <a href="VERSION"><img src="https://img.shields.io/badge/version-5.0.3-0E1318?style=for-the-badge&amp;logoColor=00F0FF&amp;labelColor=05070A" alt="Version"></a>
  <a href="https://github.com/justsomeone-e/RoveLang/releases"><img src="https://img.shields.io/badge/status-source%20preview-0E1318?style=for-the-badge&amp;logoColor=00F0FF&amp;labelColor=05070A" alt="Rove source preview"></a>
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-0E1318?style=for-the-badge&amp;logoColor=00F0FF&amp;labelColor=05070A" alt="Apache 2.0 License"></a>
  <a href="#backends"><img src="https://img.shields.io/badge/platforms-linux%20%7C%20win%20%7C%20macos-0E1318?style=for-the-badge&amp;labelColor=05070A" alt="Platforms"></a>
</p>

## About Rove

> *Did you ever dream of watching the stars from the gardens of Elysium?*

Rove began as a small experiment by its developer: could
compiled programming become easier to approach without turning into a limited
toy language? There was no grand compiler platform at the beginning—only a
language, a growing collection of ideas, and the desire to see how far they
could be taken.

As native, JavaScript, Python, Rust, and WebAssembly targets were added, the
original direct AST-to-backend design could no longer guarantee that every
target understood a program in the same way. Rove now uses one checked
representation shared by its backends: **Typed HIR v1**.

Today, **Rove is a compiled, statically typed systems programming language
designed to keep source code approachable without hiding the machine
underneath it.**

A single compiler model lowers to native C++20, WebAssembly (WASM ABI v1), Node.js, and Python through an authoritative typed intermediate representation (**Typed HIR v1**) with byte-identical native self-hosting.

> [!IMPORTANT]
> `v5.0.3` "Daydream" is the last published tag; a Rove release has not been
> published yet. New projects use `.rove`, `rove.toml`, `rove.lock`, `rove`, and
> `rovec`. Existing source and ABI names remain supported as described in the
> [migration guide](docs/ROVE_MIGRATION.md).

<div align="center">
  <img src="assets/terminal_animated.svg?v=rove-preview-1" width="92%" alt="Rove interactive live execution"/>
</div>

<p align="left">
  <a href="https://justsomeone-e.github.io/RoveLang/"><b>TRY ONLINE (TOUR &amp; PLAYGROUND)</b></a> •
  <a href="#manifesto">MANIFESTO</a> •
  <a href="#language-tour">LANGUAGE TOUR</a> •
  <a href="#architecture">ARCHITECTURE</a> •
  <a href="#targets">TARGETS</a> •
  <a href="#bundle-abi">BUNDLE ABI</a> •
  <a href="#verification">VERIFICATION</a> •
  <a href="#install">INSTALL</a> •
  <a href="#tooling">TOOLING</a> • 
  <a href="#docs">DOCS</a>
</p>

---

<a id="manifesto"></a>

## `01` — The Engineering Manifesto

**Rove is a compiled, statically typed language for readable source code and explicit native targets.**

Rove keeps the source surface small while exposing target choices, generated code,
and runtime boundaries to the programmer.

```text
       High-Level Ergonomics                   Low-Level Machine Control
   ┌─────────────────────────────┐           ┌─────────────────────────────┐
   │ • Expression-bodied syntax  │           │ • Deterministic i64/f64     │
   │ • Values from if & match    │     ▲     │ • Zero-runtime cost defer   │
   │ • Linear pipe composition   │ ────┼──── │ • Deterministic scope exits │
   │ • First-class async Task<T> │     ▼     │ • Strict pointer-safe ABI   │
   │ • Unicode string transforms │           │ • No hidden GC stop-the-world│
   └─────────────────────────────┘           └─────────────────────────────┘
                                  ▲         ▲
                                  │         │
                       ONE UNIFIED COMPILER CONTRACT
```

Rove parses, type-checks, resolves modules, and lowers programs through one typed
intermediate representation (**Typed HIR v1**). Backends consume that checked
representation and report unsupported capabilities instead of silently changing
program semantics.

### Core Axioms

1. **Semantic Sovereignty**: The language semantics are established by the HIR v1 contract. Backends serve the specification; the specification never bends to target convenience.
2. **Correctness Before Feature Count**: A feature enters the language only after its lexer, parser, checker, HIR, verifier, backend, and differential tests pass:
   $$\text{Syntax} \longrightarrow \text{Lexer} \longrightarrow \text{Parser} \longrightarrow \text{Type Checker} \longrightarrow \text{HIR v1} \longrightarrow \text{Verifier} \longrightarrow \text{Backend} \longrightarrow \text{Differential Parity}$$
3. **No Leaky Boundaries**: When compiling to WebAssembly, memory and UTF-8 strings cross a versioned, pointer-free ABI without leaking raw pointers or allocator internals to host JavaScript/TypeScript.
4. **Reproducible Self-Hosting**: The production compiler compiles itself. A native stage-1 binary compiles stage 2, and stage 2 emits byte-identical stage-3 C++ output. Native `check`, `emit-cpp`, and `compile` work without Python; optional orchestration commands and the Python target still require it.
5. **Scope Discipline**: The v4 line intentionally decouples embedded microcontroller targets and focuses on native binaries (C++20), WebAssembly/Node.js, and Python/Rust tooling.

---

<a id="language-tour"></a>

## `02` — Language Tour

Rove supports top-level scripts and larger typed programs on the same language surface.

### Zero-Ceremony Scripting

For quick automation, pipelines, or algorithm prototyping, no `fn main()` or boilerplate wrapper is required. Top-level statements execute sequentially:

```rove
#target cpp

let base_freq: int = 5000
let multiplier: int = 2

// Direct top-level execution with pipelines
base_freq * multiplier |> print
```

### Functional Ergonomics & Value Semantics

Functions can be expression-bodied, branching produces values, and data flows naturally through forward-piping operators:

```rove
fn classify(code: int) -> string =
    match code {
        200 => "ok",
        404 => "not found",
        500 => "internal error",
        _   => "unknown"
    }

fn clamp_score(score: int) -> int =
    if score < 0 { 0 }
    else if score > 100 { 100 }
    else { score }

fn normalize_input(val: int) -> int =
    val * 2

fn main() {
    // Pipe composition with string interpolation
    let status = 200 |> classify
    let score  = 120 |> clamp_score |> normalize_input

    print($"Request status: {status} | Adjusted score: {score}")
}
```

### Systems Rigor: Safety, Scope, & Concurrency

When writing performance-critical systems code, Rove delivers structured safety without ceremony:

```rove
#target cpp

struct Build {
    name: string,
    score: int
}

trait Show {
    fn show(self) -> string
}

impl Show for Build {
    fn show(self) -> string {
        return $"{self.name}: {self.score}"
    }
}

// Typed, non-blocking Task primitive
async fn evaluate_metric(value: int) -> int {
    // Reject invalid input before the calculation
    guard value >= 0 else {
        throw "Metric value cannot be negative"
    }
    return value |> transform_metric
}

fn transform_metric(v: int) -> int = v * 2

async fn main() {
    let build = Build("production-host", 42)

    // LIFO scope cleanup (RAII semantics)
    defer print("[teardown] scope exited cleanly")

    // Concurrent task scheduling and resolution
    let task: Task<int> = evaluate_metric(build.score)
    let computed_score: int = await task

    // Explicit range iterations with loop control
    for pass in 1..4 {
        if pass == 2 { continue }
        print($"Running verification pass {pass}...")
    }

    let result = Build(build.name, computed_score)
    print($"Final artifact: {result.show()}")
}
```

Core v4 features: `let`/`var`/`const`, explicit `set`, `guard ... else`, `defer`, `match`, `if`/`elif`/`else`, `for` ranges, `while`, `loop`, `try`/`catch`/`throw`, `async`/`await`, `Task<T>`, pipelines (`|>`), structs, traits, implementations, in-file test blocks (`test "name" { assert(...) }`), null-safe navigation, string interpolation, and explicit `unsafe` boundaries. Complete grammar specification: [`docs/SYNTAX_SPEC.md`](docs/SYNTAX_SPEC.md).

> **Runnable Examples**: Check out the [`examples/`](examples/) directory for ready-to-run programs covering math scripts, DSP pipelines, null-safety, in-file test suites, memory inspectors, and foreign C++/Node.js/Python bindings.

---

<a id="architecture"></a>

## `03` — Compiler Architecture

The Rove toolchain operates through an authoritative, deterministic middle-end:

<div align="center">
  <img src="assets/pipeline_animated.svg?v=rove-preview-1" width="98%" alt="Rove compiler architecture pipeline"/>
</div>

```text
                      ROVE SOURCE CODE (.rove)
                               │
                               ▼
                   [ UTF-8 Lexer / Scanner ]
                               │
                               ▼
                   [ Canonical Syntax Parser ]
                               │
                               ▼
            [ Dependency Graph & Semantic Type Checker ]
                               │
                               ▼
                 ┌───────────────────────────┐
                 │    TYPED HIR v1 BOUNDARY   │  ◄── Single Source of Truth
                 │  (Canonical Deterministic) │
                 └───────────────────────────┘
                               │
            ┌──────────────────┼──────────────────┐
            ▼                  ▼                  ▼
     HIR Verifier     Dead-Code Elimination   Deterministic Passes
            │                  │                  │
            └──────────────────┼──────────────────┘
                               │
                               ▼
               [ Capability-Gated Backend Emitter ]
         ┌─────────────┬─────────────┬─────────────┬─────────────┐
         ▼             ▼             ▼             ▼             ▼
       C++20       Node.js       Python 3     WASM ABI v1     Rust 2021
      (Native)    (ES2022)      (Reference)    (Wat/Wasm)     (Preview)
```

### Reproducible Native Self-Hosting

Rove does not depend on a host runtime. The production toolchain compiles itself through a hermetic bootstrap cycle:

```text
stage-0 bootstrap (Python reference)
       │
       ▼
native rovec (stage 1) ──► generates stage-2 C++ ──► compiled to native stage 2
                                                         │
                                                         ▼
                                       emits byte-identical stage-3 C++
```

* **No Python Dependency**: The distributed `rovec` native compiler performs `check`, `emit-cpp`, `compile`, and targets queries independently.
* **Topological Module Resolution**: Handles diamond dependencies, eliminates module duplicates, detects circular imports, and resolves symbols deterministically.

---

<a id="targets"></a>
<a id="backends"></a>

## `04` — Compiler & Backend Matrix

Rove exposes multiple code-generation backends with explicit capability gating. Targets that cannot support a language feature fail at compile time with a clear diagnostic instead of silently producing deviant runtime behavior.

```text
┌─────────────┬──────────────────────────────┬──────────────┬───────────────┐
│ Target      │ Artifact                     │ Maturity     │ HIR Authority │
├─────────────┼──────────────────────────────┼──────────────┼───────────────┤
│ cpp         │ C++20 / Native Executable    │ Stable       │ Authoritative │
│ js          │ ES2022 / Node.js Module      │ Stable       │ Authoritative │
│ python      │ Python 3 Standalone / Script │ Stable       │ Authoritative │
│ wasm        │ WAT + WASM ABI v1            │ Beta         │ Authoritative │
│ rust        │ Rust 2021 Source / Crate     │ Beta         │ Authoritative │
│ react       │ React 19 TSX Module / Hook   │ Beta         │ Tooling-Level │
│ asm         │ x86_64 Assembly (Intel)      │ Beta         │ via C++       │
└─────────────┴──────────────────────────────┴──────────────┴───────────────┘
```

### Concrete Machine Contract

| Subsystem | Exact Compiler Guarantee |
| :-- | :-- |
| **Source Standard** | Strictly UTF-8 encoded `.rove` files with 44 canonical v4 keywords. |
| **Integer Semantics** | Signed `i64` with defined two's-complement overflow wrapping, integer division, and bitwise shifts. |
| **Floating-Point** | IEEE-754 `binary64` with canonical cross-platform formatting for `nan`, `inf`, and `-0.0`. |
| **String Architecture** | UTF-8 sequences with embedded `\0` safety, `\uXXXX` escapes, interpolation, and zero implicit normalization mutations. |
| **Compilation Gate** | Checked against Typed HIR v1 verifier; pass runs deterministically across all environments. |
| **Native Toolchain** | Zero-dependency emission compatible with standard Clang++ (≥14), GCC/G++ (≥11), or MSVC (≥2019/2022). |

---

<a id="bundle-abi"></a>

## `05` — Zero-Leak WebAssembly: Bundle ABI v1

Compiling for the web should not require manually orchestrating memory offsets, byte lengths, and pointer arithmetic in JavaScript. Rove packages complete WebAssembly modules with type-safe host wrappers in a single command:

```bash
rove bundle src/crypto.rove --output dist/crypto
rove bundle src/crypto.rove --output dist/crypto --react
rove bundle src/crypto.rove --output dist/crypto --package --react --vue --svelte
```

### Emitted Artifact Suite

| Generated Artifact | Purpose & Role |
| :-- | :-- |
| `<module>.wat` | Human-readable, auditable WebAssembly text representation |
| `<module>.wasm` | Valid, standalone `wasm32` binary payload |
| `<module>.mjs` | ES2022 loader with grow-safe views, typed marshalling, host imports, and Promise caching |
| `<module>.d.ts` | 100% pointer-free TypeScript declaration interface |
| `<module>.react.tsx` | Native React 19 client hook with Concurrent Mode / Suspense safety |
| `package.json` | Optional npm manifest with conditional exports and Rove ABI metadata |
| `<module>.{react,vue,svelte}.{mjs,d.ts}` | Optional framework adapters for React 19, Vue 3, and Svelte 5 |

### Memory Protocol

Bundle ABI v1 exports linear memory, allocation functions, and an ABI version.
Strings cross the boundary as a packed 64-bit scalar `(length << 32) | pointer`;
numeric arrays use borrowed `(pointer, length)` pairs. The generated JavaScript
layer refreshes views after heap growth, releases input buffers inside `finally`
blocks, and frees caller-owned return strings after decoding. Export names,
browser imports, versioning, and ownership rules are specified in the
[compatibility contract](docs/internals/COMPATIBILITY_CONTRACTS.md).

```tsx
'use client'

import { useRoveModule } from './crypto.react'

export function VerificationWidget() {
    const { hashToken } = useRoveModule()
    return <div>Digest: {hashToken("payload-secret")}</div>
}
```

*The generated Promise cache reuses the module instance under React Strict Mode.*

### Browser host API

`std/web` exposes typed opaque handles for DOM nodes, events, listeners, and
Canvas 2D operations. Rove code imports no browser globals directly; the
generated ESM loader supplies and validates host ABI v1. A complete keyboard
and animation-loop example lives in [`examples/web_pong`](examples/web_pong/README.md).

---

<a id="verification"></a>

## `06` — Verification

The repository checks language invariants across target boundaries with
focused suites. The Rove migration has targeted MIR legalization, self-host,
Bundle ABI, installer, editor, and documentation-site checks. The full
regression battery must be rerun before a Rove release is declared:

```bash
python tests/mir_legalization_suite.py
python tests/self_host_suite.py
python tests/docs_site_suite.py
python tests/run_all_tests.py
```

---

<a id="diagnostics"></a>

## `07` — Diagnostics v2

Compiler errors should instruct, not confuse. Rove diagnostics feature precise source spans, context snippets, and machine-actionable hints indexed in [`ERROR_REFERENCE.md`](ERROR_REFERENCE.md):

```text
error[E1302]: ambiguous symbol collision
  --> src/network/client.rove:24:9
   |
24 |     use protocol.packet
   |         ^^^^^^^^^^^^^^^
   |
   = note: symbol 'packet' is exported by both 'core::transport' and 'protocol'
   = help: qualify the import explicitly: 'use protocol::packet as WirePacket'
```

---

<a id="install"></a>

## `08` — Installation

Installers for Windows, Linux, and macOS are included in this source tree.
The Rove installer builds from this checkout until Rove release assets are
published. It creates the `rove` command (`rove.cmd` on Windows) alongside the
native `rovec` compiler.

### Windows (PowerShell)

```powershell
Set-ExecutionPolicy -Scope Process Bypass
.\install.ps1
```

### Linux & macOS (Bash)

```bash
chmod +x install.sh
./install.sh
```

### Toolchain Dependencies

| Target | Host Requirement |
| :-- | :-- |
| **`cpp` (Default)** | Any standard C++20 compiler: Clang++, GCC/G++, or MSVC `cl` |
| **`js`** | Node.js (≥18 LTS with ES2022 support) |
| **`python`** | Python 3.10+ |
| **`rust`** | `rustc` / Cargo (2021 edition) |
| **`wasm`** | None (Rove bundles its own binary WAT/WASM assembler) |

Run the built-in diagnostic doctor to verify your environment:

```bash
rove doctor
```

---

<a id="tooling"></a>

## `09` — Developer Tooling & VS Code

Rove's editor support covers diagnostics, navigation, and common build commands.

<div align="center">
  <img src="assets/features_animated.svg?v=4.0.0" width="98%" alt="rove features"/>
</div>

### Local Visual Studio Code Extension

The repository includes a zero-telemetry local VS Code extension:

* **Language Server Protocol**: Built-in JSON-RPC server powering syntax diagnostics, hover documentation, completion, and definition lookups.
* **Persistent Execution Console**: Windows executables run in an integrated persistent shell—never closing abruptly before you inspect output.
* **Commands**: **Run**, **Build**, **Check**, and **Doctor** shortcuts with configurable keybindings.

Package it from `vscode-extension` with `npm ci` and `npm run package`, then
install the resulting VSIX with VS Code. A Rove VSIX has not been published yet.

Use VS Code's **Extensions: Install from VSIX...** command for the packaged file.
The earlier editor extension does not register `.rove` files; install the Rove VSIX
even if that extension is already present. Full language-server IntelliSense
also needs the `rove` CLI from this checkout (or an explicit `rove.server.path`).

The Windows and Unix installers also register the bundled extension
automatically when VS Code, VS Code Insiders, or VSCodium is detected. Restart
the editor after installation; `.rove` files should display `Rove` as their
language mode.

---

<a id="workflow"></a>

## `10` — Command Line Workflow

```bash
# Initialize a new Rove project workspace
rove new telemetry_service
cd telemetry_service

# Run type checking and HIR semantic analysis
rove check src/main.rove

# Build and execute with the default native C++20 backend
rove run src/main.rove

# Compile an optimized standalone native release binary
rove build src/main.rove --target cpp --release

# Execute via the Node.js ES2022 backend
rove run src/main.rove --target js

# Emit standalone Intel-syntax x86_64 assembly (.s)
rove build src/main.rove --target asm

# Package for WebAssembly with TypeScript bindings
rove build src/main.rove --target wasm

# Choose an output directory and optionally emit the React 19 hook
rove bundle src/main.rove --output dist/bundle --react

# Run native self-hosting compiler commands directly
rovec check src/main.rove
rovec emit-cpp src/main.rove -o dist/main.cpp
rovec compile src/main.rove -o dist/main
```

---

<a id="roadmap"></a>

## `11` — Nirvana and the Road to v5

The Rove release lifecycle is bound to verifiable technical milestones rather than calendar estimates:

| Version | Codename | Conceptual Meaning | Core Architectural Milestone | Status |
| :-- | :-- | :-- | :-- | :-- |
| `v2.x` | — | — | Initial compiler pipeline, standard library, CLI baseline | Historical |
| `v3.x` | — | — | Bundle ABI, Unicode compliance, cross-backend parity | Historical |
| `v4.0.0-dev` | **Maya** | *Illusion / Appearance* | Microcontroller decoupling, typed HIR v1 expansion, self-hosting | Completed |
| `v4.0.0-rc.1` | **Samsara** | *Cycle of Existence* | First cross-platform release candidate, verification battery, VSIX | Published |
| `v4.0.0-rc.2` | **Bodhi** | *Awakening* | Browser host ABI, std/web, npm bundles, local dependencies | Published |
| `v4.0.0-rc.3` | **Moksha** | *Liberation* | Backend-parity development work incorporated into Nirvana | Not published separately |
| `v4.0.0` | **Nirvana** | *Stability* | Stable v4 language, toolchain, and ABI contract | Official Release |
| `v4.5.0` | **Ivory** | *Purity / Bridge* | Compatible tooling, library parity, package manager, and experimental C17/LLVM IR emitters | Release |
| `v5.0.0` | **Daydream** | *The next form imagined* | Direct LLVM pipeline, aggregate lowering, CLI integration, and preserved stable backend contracts | Official Release |
| `v5.0.1` | **Daydream** | *Reliability patch* | Windows installer resilience, native foreign imports, optional-null lowering, and corrected examples | Official Patch |
| `v5.0.2` | **Daydream** | *Checked compiler foundations* | MIR contracts, module/generic validation, backend pilots, installer hardening, and Tour learning path | Official Patch |
| `v5.0.3` | **Daydream** | *Studio maintenance* | Single-run browser preview, isolated Tour/Studio state, and documentation refresh | Tagged; Rove migration in source |
| `v6.0.0` | **Sepia** | *Memory / Preservation* | Future compiler milestone | Planned |
| `v7.0.0` | **Solace** | *Calm after complexity* | Future ecosystem milestone | Planned |
| `v8.0.0` | **Last Signal** | *The final transmission* | Long-term language-platform milestone | Long-term |

The [backend gates](docs/internals/ROADMAP_AND_BACKEND_GATES.md) keep maturity
claims explicit. New backends begin experimental; the v5 stable designation
does not promote LLVM or C17 beyond their documented capability contracts.

---

<a id="project-structure"></a>

## `12` — Project Structure

```text
rove/
├── compiler/          # Self-hosted compiler written in Rove (Frontend, HIR Lowerer, C++ Emitter)
├── src/
│   ├── core/          # Stage-0 Lexer, Parser, Type Checker, Module Resolution, Diagnostics
│   ├── ir/            # Typed HIR v1 definition, serialization passes, semantic verifier
│   ├── codegen/       # Target emitters (C++20, JS, Python, Rust, WASM, ASM), Native Linkers
│   ├── self_host/     # Stage reproducibility & bootstrap orchestration
│   ├── stdlib/        # Capability-gated standard library modules
│   └── cli.py         # Primary rove CLI entrypoint
├── vscode-extension/ # VS Code extension (LSP client, syntax, themes, snippets, task runners)
├── tests/             # Regression suites, backend parity, differential fuzzing, ABI tests
├── tools/             # Reproducible release packagers, SBOM generators, audit scripts
├── docs/              # Specifications, language references, and internal decision records
├── assets/            # Official visual identity assets and animated architecture diagrams
├── install.ps1        # Native Windows installer script
├── install.sh         # Native Linux / macOS installer script
└── VERSION            # Single source-of-truth version declaration
```

---

<a id="docs"></a>

## `13` — Documentation Index

| Resource | Scope |
| :-- | :-- |
| [`GETTING_STARTED.md`](GETTING_STARTED.md) | First project guide, basic workflows, and compiler flags |
| [`INSTALLATION.md`](INSTALLATION.md) | In-depth platform guide and native C++ compiler setup |
| [`LANGUAGE_REFERENCE.md`](LANGUAGE_REFERENCE.md) | Exhaustive language manual: types, ownership, and syntax |
| [`docs/SYNTAX_SPEC.md`](docs/SYNTAX_SPEC.md) | Formal EBNF grammar, expressions, types, and Task mechanics |
| [`CLI_REFERENCE.md`](CLI_REFERENCE.md) | Complete CLI documentation: flags, options, and commands |
| [`ERROR_REFERENCE.md`](ERROR_REFERENCE.md) | Comprehensive catalog of compiler diagnostic error codes |
| [`docs/internals/ROADMAP_AND_BACKEND_GATES.md`](docs/internals/ROADMAP_AND_BACKEND_GATES.md) | Architecture decision records, RFCs, and release gates |
| [`CHANGELOG.md`](CHANGELOG.md) | Chronological version history and migration notes |

---

<a id="contributing"></a>

## `14` — Contributing

We welcome contributions from systems engineers, compiler authors, and language enthusiasts.

Read [CONTRIBUTING.md](CONTRIBUTING.md) for the checkout, naming, testing, and
pull-request workflow. Report vulnerabilities through the process in
[SECURITY.md](SECURITY.md), without publishing exploit details in an issue.

---

<a id="license"></a>

## `15` — License & Commercial Freedom

The Rove compiler, standard library, and associated tooling are licensed under the **Apache License, Version 2.0**.

### Commercial Freedom & Trademark Protection

**Your code is your own.**

- **No Viral Restrictions**: You are 100% free to license, distribute, sell, or keep proprietary any software, binaries, libraries, or WebAssembly modules you create with Rove.
- **Trademark Protection (Section 6)**: The Apache 2.0 license explicitly protects the Rove name, logo, and brand against unauthorized commercial hijacking, misrepresentation, or false endorsement.
- **Patent Grant (Section 3)**: Grants an explicit, perpetual patent license covering contributor patents to protect users and downstream developers.


See [`LICENSE`](LICENSE) for full legal terms.