Wire prepped and basics tested
This commit is contained in:
24
AGENTS.md
24
AGENTS.md
@@ -4,35 +4,19 @@
|
||||
|
||||
## 1. Build & Test
|
||||
|
||||
**`nix build .#` always runs tests.** This is the primary and only way to build and validate.
|
||||
|
||||
```bash
|
||||
# Full build + tests (this is the default)
|
||||
# Full build + tests
|
||||
nix build .#
|
||||
|
||||
# Build only (skip tests)
|
||||
nix build .#package
|
||||
|
||||
# Build the test-specific variant with doCheck enforced
|
||||
nix build .#test
|
||||
nix flake check
|
||||
|
||||
# Dev shell (includes ghcid, cabal-install, ghc, upx)
|
||||
nix develop .#
|
||||
```
|
||||
|
||||
### ⚠️ Never call `cabal` directly
|
||||
|
||||
This project uses a Nix flake that wraps `callCabal2nix` to produce the cabal package. All compilation, linking, and test execution are driven through Nix. Running `cabal build`, `cabal test`, `cabal repl`, or `cabal install` directly will use the system GHC (or `.stack-work`) and can produce artifacts that differ from the Nix-built ones — especially regarding `megaparsec` which is a project dependency.
|
||||
|
||||
> **Rule of thumb:** if it builds, links, or tests, it goes through `nix`.
|
||||
|
||||
## 2. Project Overview
|
||||
|
||||
**tricu** (pronounced "tree-shoe") is a programming-language experiment written in Haskell. It implements [Triage Calculus](https://olydis.medium.com/a-visual-introduction-to-tree-calculus-2f4a34ceffc2), an extension of Barry Jay's Tree Calculus, with lambda-abstraction sugar that gets eliminated back to pure tree calculus terms.
|
||||
|
||||
tricu is Lojban for "tree".
|
||||
|
||||
### Core types (in `src/Research.hs`)
|
||||
|
||||
| Type | Description |
|
||||
@@ -88,6 +72,8 @@ nix flake check # or: nix build .#test
|
||||
|
||||
You do not write or modify tests. The user writes tests to constrain your outputs. You must adhere your code to tests or suggest modifications to tests.
|
||||
|
||||
If the user gives you explicit permission to implement a test you may proceed.
|
||||
|
||||
## 4. tricu Language Quick Reference
|
||||
|
||||
```
|
||||
@@ -102,7 +88,6 @@ head (map f xs) → From lib/list.tri
|
||||
!import "./path.tri" NS → Import file under namespace
|
||||
|
||||
-- line comment
|
||||
|- block comment -|
|
||||
```
|
||||
|
||||
## 5. Output Formats
|
||||
@@ -166,8 +151,7 @@ tricu/
|
||||
|
||||
## 8. Development Tips
|
||||
|
||||
- **Quick iteration:** `nix develop` then `ghcid` (provided in the devShell) watches files and re-runs.
|
||||
- **REPL:** `nix run .#` starts the interactive REPL.
|
||||
- **REPL:** `nix run .#` starts the interactive tricu REPL.
|
||||
- **Evaluate files:** `nix run .# -- eval -f demos/equality.tri`
|
||||
- **GHC options:** `-threaded -rtsopts -with-rtsopts=-N` for parallel runtime. Use `-N` RTS flag for multi-core.
|
||||
- **Upx** is in the devShell for binary compression if needed.
|
||||
|
||||
Reference in New Issue
Block a user