Fox is a programming language allowing modding of applications even after starting them.
Getting Started
·
Specification
·
Build Instructions
·
Discord
Inspect. Extend. Change while running.
Fox makes reflection and modding part of the language. Yes, deliberately.
Note
Source code in this repository is licensed under the MIT License. Files in assets/ are All Rights Reserved and are not covered by the MIT License.
Fox is a programming language with a fairly clear opinion: software should not turn into a sealed block once it starts. Instead of bolting modding onto already compiled artifacts as an after-the-fact plugin hack, Fox builds reflection, runtime changes, and hot code replacement directly into the language model, as long as programs run inside the intermediate-format runtime.
At the center is an intermediate format with its own specification. This is not just some backend detail everyone forgets later. It is the actual runtime representation of a Fox program. That representation preserves enough structure for code to remain recognizable as meaningful language constructs. That is exactly what lets reflection APIs and mod systems operate on the program's shape instead of on flattened binary leftovers stripped of meaning. Later compiler or transpiler targets are possible, but moddability will not remain available there in the same direct form.
Fox is also not locked to exactly one source syntax. Different syntaxes can be translated into the same intermediate representation. In addition, the format can carry metadata so higher-level concepts remain visible for reflection and tooling. Otherwise they would be discarded during translation. That would be stupid.
Contributions are welcome. The most useful ones are real bug fixes or extensions that genuinely improve the language, runtime, tooling, or specification.
Please keep changes small, clear, and reviewable. A merge request that rewrites half the universe is rarely as helpful as its author thinks.
The guidelines are in CONTRIBUTING.md.
The Fox runtime is currently implemented in Rust. Both the language and the runtime are built around a reflection-friendly intermediate format.
Honorable mentions for third-party stuff:
Every contribution counts. The laurel wreath and frame mark maintainers. They have to work through merge requests. Somebody has to do the job.
