95 lines
2.9 KiB
Markdown
95 lines
2.9 KiB
Markdown
---
|
|
title: "Documentation"
|
|
description: "ƿit language documentation"
|
|
type: "docs"
|
|
---
|
|
|
|

|
|
|
|
ƿit is an actor-based scripting language for building concurrent applications. It combines a familiar C-like syntax with the actor model of computation, optimized for low memory usage and simplicity.
|
|
|
|
## Key Features
|
|
|
|
- **Actor Model** — isolated memory, message passing, no shared state
|
|
- **Immutability** — `stone()` makes values permanently frozen
|
|
- **Prototype Inheritance** — objects without classes
|
|
- **C Integration** — seamlessly extend with native code
|
|
- **Cross-Platform** — deploy to desktop, web, and embedded
|
|
|
|
## Quick Start
|
|
|
|
```javascript
|
|
// hello.ce - A simple actor
|
|
print("Hello, ƿit!")
|
|
$stop()
|
|
```
|
|
|
|
```bash
|
|
pit hello
|
|
```
|
|
|
|
## Language
|
|
|
|
- [**ƿit Language**](/docs/language/) — syntax, types, and operators
|
|
- [**Actors and Modules**](/docs/actors/) — the execution model
|
|
- [**Requestors**](/docs/requestors/) — asynchronous composition
|
|
- [**Packages**](/docs/packages/) — code organization and sharing
|
|
- [**Shop Architecture**](/docs/shop/) — module resolution, compilation, and caching
|
|
|
|
## Reference
|
|
|
|
- [**Built-in Functions**](/docs/functions/) — intrinsics reference
|
|
- [text](/docs/library/text/) — text conversion and manipulation
|
|
- [number](/docs/library/number/) — numeric conversion and operations
|
|
- [array](/docs/library/array/) — array creation and manipulation
|
|
- [object](/docs/library/object/) — object creation, prototypes, and serialization
|
|
|
|
## Standard Library
|
|
|
|
Modules loaded with `use()`:
|
|
|
|
- [blob](/docs/library/blob/) — binary data
|
|
- [time](/docs/library/time/) — time and dates
|
|
- [math](/docs/library/math/) — trigonometry and math
|
|
- [json](/docs/library/json/) — JSON encoding/decoding
|
|
- [random](/docs/library/random/) — random numbers
|
|
|
|
## Tools
|
|
|
|
- [**Command Line**](/docs/cli/) — the `pit` tool
|
|
- [**Semantic Index**](/docs/semantic-index/) — index and query symbols, references, and call sites
|
|
- [**Testing**](/docs/testing/) — writing and running tests
|
|
- [**Compiler Inspection**](/docs/compiler-tools/) — dump AST, mcode, and optimizer reports
|
|
- [**Writing C Modules**](/docs/c-modules/) — native extensions
|
|
|
|
## Architecture
|
|
|
|
ƿit programs are organized into **packages**. Each package contains:
|
|
|
|
- **Modules** (`.cm`) — return a value, cached and frozen
|
|
- **Actors** (`.ce`) — run independently, communicate via messages
|
|
- **C files** (`.c`) — compiled to native libraries
|
|
|
|
Actors never share memory. They communicate by sending messages, which are automatically serialized. This makes concurrent programming safe and predictable.
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
# Clone and bootstrap
|
|
git clone https://gitea.pockle.world/john/cell
|
|
cd cell
|
|
make bootstrap
|
|
```
|
|
|
|
The ƿit shop is stored at `~/.pit/`.
|
|
|
|
## Development
|
|
|
|
After making changes, recompile with:
|
|
|
|
```bash
|
|
make
|
|
```
|
|
|
|
Run `cell --help` to see all available CLI flags.
|