This commit is contained in:
2026-02-08 08:25:48 -06:00
parent bae4e957e9
commit a4f3b025c5
27 changed files with 2044 additions and 8 deletions

View File

@@ -26,5 +26,15 @@ pit hello
<div class="home-links">
<a href="/start/">Get Started</a>
<a href="/docs/">Documentation</a>
<a href="/manual/">Language Manual</a>
</div>
<div class="donate-section">
## Support ƿit
ƿit is free and open source. If you find it useful, consider supporting its development.
Donation options coming soon.
</div>

View File

@@ -0,0 +1,175 @@
---
title: "Command Line Interface"
description: "The pit tool"
type: "standalone"
---
ƿit provides a command-line interface for managing packages, running scripts, and building applications.
## Basic Usage
```bash
pit <command> [arguments]
```
## Commands
### pit version
Display the ƿit version.
```bash
pit version
# 0.1.0
```
### pit install
Install a package to the shop.
```bash
pit install gitea.pockle.world/john/prosperon
pit install /Users/john/local/mypackage # local path
```
### pit update
Update packages from remote sources.
```bash
pit update # update all packages
pit update <package> # update specific package
```
### pit remove
Remove a package from the shop.
```bash
pit remove gitea.pockle.world/john/oldpackage
```
### pit list
List installed packages.
```bash
pit list # list all installed packages
pit list <package> # list dependencies of a package
```
### pit ls
List modules and actors in a package.
```bash
pit ls # list files in current project
pit ls <package> # list files in specified package
```
### pit build
Build the current package.
```bash
pit build
```
### pit test
Run tests.
```bash
pit test # run tests in current package
pit test all # run all tests
pit test <package> # run tests in specific package
```
### pit link
Manage local package links for development.
```bash
pit link add <canonical> <local_path> # link a package
pit link list # show all links
pit link delete <canonical> # remove a link
pit link clear # remove all links
```
### pit fetch
Fetch package sources without extracting.
```bash
pit fetch <package>
```
### pit upgrade
Upgrade the ƿit installation itself.
```bash
pit upgrade
```
### pit clean
Clean build artifacts.
```bash
pit clean
```
### pit help
Display help information.
```bash
pit help
pit help <command>
```
## Running Scripts
Any `.ce` file in the ƿit core can be run as a command:
```bash
pit version # runs version.ce
pit build # runs build.ce
pit test # runs test.ce
```
## Package Locators
Packages are identified by locators:
- **Remote**: `gitea.pockle.world/user/repo`
- **Local**: `/absolute/path/to/package`
```bash
pit install gitea.pockle.world/john/prosperon
pit install /Users/john/work/mylib
```
## Configuration
ƿit stores its data in `~/.pit/`:
```
~/.pit/
├── packages/ # installed packages
├── lib/ # compiled dynamic libraries
├── build/ # build cache
├── cache/ # downloaded archives
├── lock.toml # installed package versions
└── link.toml # local development links
```
## Environment
ƿit reads the `HOME` environment variable to locate the shop directory.
## Exit Codes
- `0` — Success
- Non-zero — Error (check output for details)

View File

@@ -0,0 +1,60 @@
---
title: "Contributing"
description: "How to contribute to ƿit"
type: "standalone"
---
ƿit is developed openly. Contributions of all kinds are welcome.
## Report Bugs
Found a problem? Open an issue on the [ƿit issue tracker](https://gitea.pockle.world/john/cell/issues). Include:
- What you expected to happen
- What actually happened
- A minimal reproduction (a short `.ce` or `.cm` file)
- Your platform and ƿit version (`pit version`)
## Submit Packages
Share your ƿit packages by hosting them on a Gitea instance. Any package with a valid `pit.toml` can be installed by others:
```bash
pit install gitea.example.com/you/your-package
```
See [Packages](/manual/#packages) for how to structure and publish packages.
## Contribute to the Runtime
The ƿit runtime is written in C. To build from source:
```bash
git clone https://gitea.pockle.world/john/cell
cd cell
make bootstrap
```
### Code Style
- C code uses 2-space indentation
- Functions and variables are `static` unless exported
- No headers between files in the same package
- Use `JS_NULL` / `JS_IsNull` — there is no `undefined`
- Objects over classes; limit prototype usage
### Submitting Patches
1. Fork the repository on Gitea
2. Create a branch for your change
3. Keep commits focused — one logical change per commit
4. Test your changes with `pit test all`
5. Open a pull request with a clear description
## Improve Documentation
Documentation lives in the `docs/` directory as Markdown files. Fixes for typos, unclear explanations, or missing examples are always appreciated.
## Code of Conduct
Be respectful. Communicate clearly. Assume good faith. Technical disagreements are fine; personal attacks are not.

View File

@@ -0,0 +1,5 @@
---
title: "Language Manual"
description: "Complete ƿit language reference"
type: "manual"
---

View File

@@ -0,0 +1,5 @@
---
title: "Language Specification"
description: "ƿit internals for language implementers"
type: "spec"
---

View File

@@ -148,7 +148,6 @@ Your package can now use `pit build`, `pit test`, and install dependencies.
## What's Next
- [**ƿit Language**](/docs/language/) — full syntax reference
- [**Actors and Modules**](/docs/actors/) — the execution model in depth
- [**Packages**](/docs/packages/) — code organization and sharing
- [**Standard Library**](/docs/library/) — built-in modules
- [**Language Manual**](/manual/) — full syntax reference, actors, packages, standard library
- [**CLI Reference**](/cli/) — all `pit` commands
- [**Language Spec**](/spec/) — internals for implementers