paws
  • Python 38.3%
  • Verilog 30.2%
  • C 20.9%
  • JavaScript 3.1%
  • Scala 2.5%
  • Other 4.9%
Find a file
Beugul 5acb6d84f5
Some checks failed
CI / Python test suite (push) Has been cancelled
CI / Native C-VM test suite (push) Has been cancelled
Merge branch 'feat/random-ops'
2026-08-23 06:04:15 -07:00
.github/workflows ci: make python gate raylib-free; fix c-vm raylib build (CMake) 2026-08-16 16:41:56 -07:00
apps feat(felix): boot animation program with sprite setup and compose loop 2026-07-10 16:50:44 -07:00
docs Merge branch 'feat/random-ops' 2026-08-23 06:04:15 -07:00
examples test(random): gate randi error message across backends 2026-08-23 05:00:35 -07:00
hdl fix(soc): align SpinalSim read path with arbiter registered return 2026-08-22 06:50:35 -07:00
os feat(life): add seed presets, restart, and cycle detection 2026-07-08 21:00:17 -07:00
planning docs(planning): clarify SoC status — Phases 0-1 complete, Phase 2 not started 2026-08-23 01:01:40 -07:00
scripts feat(soc): Phase 0 scaffold — Spinal, Odin golden, frozen MMIO (#6) 2026-07-17 00:32:41 +02:00
src/paws fix(c-compiler): render float list elements with %.6g 2026-08-23 05:03:29 -07:00
std Remove leftover (owo) delimiters from os.paws and math.paws. 2026-06-29 22:12:21 -07:00
tests test(random): gate randi error message across backends 2026-08-23 05:00:35 -07:00
tools fix(soc): align SpinalSim read path with arbiter registered return 2026-08-22 06:50:35 -07:00
vm fix(vm): accept wrapped forms in P-format parser 2026-08-23 04:53:57 -07:00
web build(web): update Makefile.web for refactored VM source files 2026-07-09 09:51:47 -07:00
.gitignore chore: ignore .worktrees for isolated plan execution 2026-07-13 21:42:21 -07:00
AGENTS.md docs: fix AGENTS.md VM session-test count (17 → 11) 2026-08-16 15:06:54 -07:00
LICENSE docs: comprehensive audit, cleanup, and accuracy fixes 2026-07-01 21:00:59 -07:00
pyproject.toml test: add pythonpath to pytest config and convert meowcore tests to parametrize 2026-08-16 14:41:35 -07:00
README.md fix(vm): align Makefile session-test targets with existing test files 2026-08-16 14:32:50 -07:00
SKILL.md feat: Phase 6 plan — Felix the Sphinx on FPGA (boot animation, screensaver, interactive companion, Yocto Linux) 2026-07-06 21:19:00 -07:00

🐾 Paws

A programming language made of animal noises.

Paws is a stack-based language where every operation is an animal sound. Write programs that read like a conversation between cats and dogs — in clean, Lisp-style S-expression syntax.

# Compute the nth Fibonacci number

(meow fib (n)
        (uwu (stare n 0)
             0)
        (uwu (stare n 1)
             1)
        (purr a 0)
        (purr b 1)
        (purr idx (swat n 1))
        (woof (snarl idx 0)
              (purr tmp (pounce a b))
              (purr a b)
              (purr b tmp)
              (purr idx (swat idx 1)))
        b)

(stalk fib 10 yip)
#  55

Quick Start

Install

pip install -e .    # from the repository root

Run

paws examples/fib.paws              # Run a file (plisp syntax, .paws extension)
paws repl                          # Interactive REPL
paws repl -l                       # Lisp-style REPL
echo '(42 yip)' | paws             # Pipe from stdin
paws compile examples/fib.paws     # Compile to Python

Native VM (C Runtime)

cd vm && make
./paws_vm ../examples/fib.paws

Documentation

Doc What it covers
Getting Started Install, first program, REPL
Syntax S-expression syntax guide
Syntax Reference Complete operator reference
Prerequisites (Linux) Build requirements: gcc, raylib, etc.
Architecture Project layout, backends, tests
Native VM Standalone C runtime
Web Playground Wasm playground — build and run locally
Tooling Formatter, linter, LSP server

Full docs index: docs/INDEX.md

Examples

Basics (examples/)

File What it does
hello.paws Hello, World!
fib.paws Fibonacci with nested conditionals
factorial.paws Factorial using recursion
sum.paws Sum 1 to n with a while loop
conditionals.paws Classify positive/negative/zero
guess.paws Number guessing game
string.paws String ops: rub, scratch, nip, paw
array.paws Array ops: paw, scratch, mark, trail
spit.paws Error handling with spit
check.paws Assertions with check
math.paws Math module (import test)
arithmetic.paws Arithmetic and comparison operators
list.paws List ops: map, filter, reduce

Legacy postfix versions live in examples/legacy/.

Graphics Demos (examples/demo/)

Demo What it exercises
plasma.paws Float math, pixel buffer, sine waves
mandelbrot.paws Nested loops, complex arithmetic
particles.paws Orbital motion, trig functions
wireframe-cube.paws 3D rotation, perspective projection
kaleidoscope.paws Symmetry, color math

Test Status

Runtime Status
Python (interpreter + compiler) All green
Native VM (C, 11 session tests: 18, 11, 17, 18) All green

Cross-Backend Parity

All 4 backends produce identical output for core example files:

Backend Status
Python interpreter Reference
Paws→Python compiler Verified
Paws→C compiler Verified
Native VM Verified

Roadmap

See planning/INDEX.md for the full roadmap with phase status and links.

Completed: Phases 110 — Native OS, Web Playground, Debugger & Profiler Current: FPGA Phase 5 VGA — Steps 14 complete (VGA, draw ops, FX math, text console w/ scroll + string bark) — Step 5 (Integration demos) next 🔧


Made with 🐾 by cats and dogs, together.