[T0] Generalize the REPL System
Breaking: remove the repl feature and expose execution interfaces on the Program
> [!NOTE]
>
> This is a **Breaking Change** planned for Mingling 0.5.0.
## Background
The current REPL is merely _usable_, but far from _user-friendly_. The `repl` feature locks a specific interactive front-end into the framework, while the underlying execution model is what actually provides value.
## Plan
- Remove the `repl` feature in 0.5.0.
- By default, expose more execution-related interfaces for the `Program`, so that users can extend functionality beyond the REPL by leveraging Mingling's execution model.
The goal is to separate the execution model from any particular interactive front-end, letting users build their own REPL (or other execution drivers) on top of Mingling's public interfaces.
## Tasks
- [ ] Audit the current `repl` implementation and identify which behaviors belong to the execution model vs. the interactive front-end
- [ ] Design and expose the execution-related interfaces on `Program` (e.g. per-input execution, result handling, exit semantics)
- [ ] Remove the `repl` feature from `mingling`, `mingling_core`, and `mingling_macros`
- [ ] Remove or migrate the built-in REPL front-end
- [ ] Update examples and docs that enable `repl`
## 🕘 Progress
- [ ] In Progress
- [ ] Complete
Written by @Weicao-CatilGrass