2026-02-11 08:53:18 +01:00
# Fun Documentation Index
This file serves as an index of the documents in this directory. Links are relative and can be opened directly on Git hosting or locally.
## Overview
- [handbook.md ](./handbook.md ) — Comprehensive handbook for the Fun language and VM: install/build, configuration flags, usage, and full feature overview.
- [types.md ](./types.md ) — Core types (numbers, strings, arrays, maps, nil/bool), common operations, patterns, and interop notes.
2026-02-17 14:59:39 +01:00
- [numbers.md ](./numbers.md ) — Working with integers and floats: arithmetic, conversions, clamping, bitwise ops, and patterns.
- [strings.md ](./strings.md ) — Working with strings: literals/escaping, concatenation, substr/find, split, and conversions.
2026-02-17 14:46:35 +01:00
- [arrays.md ](./arrays.md ) — Working with arrays: creation, indexing/slicing, iteration patterns, helpers, and idioms.
- [maps.md ](./maps.md ) — Working with maps: construction, lookup/update, merging, iteration, and common patterns.
2026-02-11 08:53:18 +01:00
- [includes.md ](./includes.md ) — Using local vs. system includes, FUN_LIB_DIR, DEFAULT_LIB_DIR, and namespaced includes with `as` .
- [repl.md ](./repl.md ) — REPL guide: how to build/launch, editing and history, completions, REPL‑ on‑ error, and tips.
- [opcodes.md ](./opcodes.md ) — VM opcodes overview grouped by domain with brief behavior/stack notes.
- [internals.md ](./internals.md ) — Implementation details: bytecode format, VM architecture, stacks/frames, parser, and dispatch.
- [rust.md ](./rust.md ) — Writing Rust‑ backed opcodes and wiring them into the C VM; build/setup notes.
2026-02-11 17:34:24 +01:00
- [examples.md ](./examples.md ) — How to run the examples and the interactive showcase script, with environment tips.
- [testing.md ](./testing.md ) — How to build and run tests/targets with CMake/CTest, and where to add new tests.
- [troubleshooting.md ](./troubleshooting.md ) — Common issues and quick fixes for build, includes, and REPL usage.
2026-02-11 08:53:18 +01:00
2026-02-18 17:39:10 +01:00
## New and supplemental guides
- [build.md ](./build.md ) — How to build Fun with CMake, available targets, and build options (FUN_DEBUG, FUN_USE_MUSL, FUN_WITH_CPP, FUN_WITH_RUST).
- [cli.md ](./cli.md ) — Command‑ line usage of the `fun` executable: synopsis, options, exit codes, includes and library paths.
- [contributing.md ](./contributing.md ) — How to contribute: project structure, coding style, running tests, and PR guidelines.
- [style-guide.md ](./style-guide.md ) — Coding conventions for C and Fun (indentation, naming, idioms).
- [stdlib.md ](./stdlib.md ) — Overview of the standard library modules under ./lib with one‑ line summaries.
- [embedding.md ](./embedding.md ) — Embedding the VM from C/Rust, lifecycle, and host integration tips.
- [errors-and-diagnostics.md ](./errors-and-diagnostics.md ) — Understanding parser/runtime errors and enabling diagnostics.
- [performance.md ](./performance.md ) — Build/runtime tuning tips and patterns for better performance.
- [security-and-sandboxing.md ](./security-and-sandboxing.md ) — Trust boundaries, I/O expectations, and capability restrictions.
- [faq.md ](./faq.md ) — Frequently asked questions and quick answers.
- [writing-tests.md ](./writing-tests.md ) — How to author new tests for Fun and opcode components.
- [bytecode-format.md ](./bytecode-format.md ) — Reference for the bytecode format (split out from internals for convenience).
- [roadmap.md ](./roadmap.md ) — High‑ level direction, planned features, and pointers to issues.
2026-02-11 08:53:18 +01:00
## Tips
- When building from the repo without installing, set `FUN_LIB_DIR` to the local `./lib` directory so examples and the REPL can locate the stdlib.
- For a broader project overview and quickstart, see the repository root [README.md ](../README.md ).