|
1 | 1 | <p align="center"> |
2 | | - <img height="320" src="https://github.com/user-attachments/assets/66089ca0-96b9-45e3-a423-0261b2ff7ba1" /> |
| 2 | + <img height="320" src="img/organization-logo.png" alt="Unleashed Pascal" /> |
3 | 3 | </p> |
4 | 4 |
|
5 | | -# FPC Unleashed |
| 5 | +<h1 align="center">Unleashed Pascal</h1> |
6 | 6 |
|
7 | | -A fork of the Free Pascal Compiler that adds modern language features behind opt-in modeswitches. Inline variables, pattern matching, tuples, `defer` / `autofree`, flexible arrays, multiline strings, RTTI stripping, and more. |
| 7 | +<p align="center"> |
| 8 | + <b>Modern Pascal, today.</b><br /> |
| 9 | + A community-driven toolchain exploring where the language can go next - built on top of the Free Pascal ecosystem. |
| 10 | +</p> |
| 11 | + |
| 12 | +<p align="center"> |
| 13 | + <a href="https://unleashedpascal.org/">Website</a> · |
| 14 | + <a href="https://github.com/unleashedpascal/freepascal/blob/main/unleashed/docs/README.md">Documentation</a> · |
| 15 | + <a href="https://github.com/unleashedpascal/installer/releases">Downloads</a> |
| 16 | +</p> |
| 17 | + |
| 18 | +--- |
| 19 | + |
| 20 | +## What this is |
| 21 | + |
| 22 | +Unleashed Pascal is an umbrella for a set of forks and tools that explore what Pascal can look like: a compiler, an IDE, an installer, and whatever else the language needs next. It is a playground for ideas that are easier to try in a fork than in a stable, widely-deployed toolchain - built, documented, and shipped here so they can be used in practice rather than argued about in the abstract. |
| 23 | + |
| 24 | +The whole ecosystem shares one rule: **everything is opt-in**. Existing Pascal code keeps compiling untouched. New behaviour turns on per file with a single directive, or per feature with a single modeswitch. |
| 25 | + |
| 26 | +```pascal |
| 27 | +{$mode unleashed} |
| 28 | +``` |
| 29 | + |
| 30 | +## Principles |
| 31 | + |
| 32 | +- **Backward compatibility is non-negotiable.** No feature may break code that compiles today. |
| 33 | +- **Opt-in, always.** Per file, or per individual feature - never global, never implicit. |
| 34 | +- **Documented on arrival.** Every feature ships with grammar, semantics, edge cases, and a runnable demo. |
| 35 | +- **Ship it.** Working code in `main` beats a design discussion that runs for years. |
| 36 | +- **Open.** Same licenses as upstream, same freedom to fork again. |
| 37 | + |
| 38 | +## Projects |
| 39 | + |
| 40 | +| Repository | What it is | |
| 41 | +| --- | --- | |
| 42 | +| [**freepascal**](https://github.com/unleashedpascal/freepascal) | The compiler and runtime - a fork of Free Pascal carrying the Unleashed language features | |
| 43 | +| [**lazarus**](https://github.com/unleashedpascal/lazarus) | The IDE - a fork of Lazarus that understands the language as it actually compiles | |
| 44 | +| [**installer**](https://github.com/unleashedpascal/installer) | Cross-platform installer that builds compiler and IDE into a self-contained directory. Every install is fully isolated, so any number of them can coexist side by side - including a stock FPC / Lazarus setup - without interfering with each other | |
| 45 | + |
| 46 | +## Getting started |
| 47 | + |
| 48 | +Grab the installer for your host from the [latest release](https://github.com/unleashedpascal/installer/releases), pick a target directory, click **Install**. It fetches the sources and builds the compiler, the runtime, any cross targets you ticked, and the IDE - without touching the registry, `PATH`, or an existing FPC install. |
8 | 49 |
|
9 | | -Existing FPC / Lazarus code compiles unchanged - new features turn on per file with `{$mode unleashed}` or per feature with a specific `{$modeswitch}`. |
| 50 | +Prefer to build by hand? Each repository carries its own build instructions in its README. |
10 | 51 |
|
11 | | -## Repos |
| 52 | +## Contributing |
12 | 53 |
|
13 | | -- **[freepascal](https://github.com/fpc-unleashed/freepascal)** - compiler and runtime |
14 | | -- **[lazarus](https://github.com/fpc-unleashed/lazarus)** - companion fork of the Lazarus IDE |
15 | | -- **[installer](https://github.com/fpc-unleashed/installer)** - bundle installer for compiler, RTL, and IDE |
| 54 | +Issues and pull requests are welcome in whichever repository they belong to. A bug report with a minimal reproducer is worth more than a long description. New language features are expected to arrive with documentation and tests, and to be gated behind a modeswitch. |
16 | 55 |
|
17 | | -## Documentation |
| 56 | +## License |
18 | 57 |
|
19 | | -Per-feature pages with grammar, examples, and modeswitch info: [`unleashed/docs/README.md`]([https://github.com/fpc-unleashed/freepascal/tree/main/unleashed/docs](https://github.com/fpc-unleashed/freepascal/blob/main/unleashed/docs/README.md)). |
| 58 | +Each repository keeps the license of the project it forked from. See the `LICENSE` / `COPYING` files in the individual repositories. |
0 commit comments