Skip to content

Commit cdb8a66

Browse files
simontreanorclaude
andcommitted
Release v0.0.8; roadmap: track verification gaps explicitly
First wheel to ship the Jupyter kernel (`pyfun-lang[jupyter]` extra + `pyfun kernel-engine`), plus the Tree-sitter grammar and the Neovim/Helix/Emacs/PyCharm editor docs. ROADMAP.md gains a "Verification gaps" section: surfaces that shipped with tested cores but were never run on the real third-party program (no nvim/hx/emacs/JetBrains IDE on the dev machine; kernel install.py not yet executed outside the dev kernelspec) — one listed check closes each; delete the line when it passes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SoP7DMAgjNCihZHsdBagYr
1 parent 4a028b1 commit cdb8a66

3 files changed

Lines changed: 30 additions & 2 deletions

File tree

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "pyfun"
3-
version = "0.0.7"
3+
version = "0.0.8"
44
edition = "2024"
55
rust-version = "1.96"
66
description = "An F#-inspired, functional-first language that compiles to readable Python."

ROADMAP.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,34 @@ Keep this a *forward-looking* backlog — do not let it grow back into a changel
3030
measured on a decode-dominated workload; dynamic shapes (`andThen`, decoder-as-value) keep the
3131
interpreter.)
3232

33+
## Verification gaps (things shipped but not exercised locally — missing program, not missing code)
34+
35+
Everything here has a tested core (compiler-side tests, protocol tests, or upstream-docs fidelity);
36+
what's missing is a run on the real third-party surface, because the program isn't installed on the
37+
dev machine. Close each by running the listed check once; delete its line when it passes.
38+
39+
- **Neovim** (no `nvim`): the `editors/nvim/` regex syntax + ftdetect/ftplugin have never been loaded,
40+
and the `vim.lsp.config` / `vim.lsp.start` snippets in `editors/README.md` are unexercised. Check:
41+
open a `.pyfun` file, confirm highlighting + hover. Likewise the **nvim-treesitter** parser
42+
registration (compiles `src/parser.c` + `scanner.c` via `:TSInstall pyfun`).
43+
- **Helix** (no `hx`): the `languages.toml` entry, the `[[grammar]] source = { git, subpath }` fetch
44+
of `editors/tree-sitter-pyfun`, and the runtime-queries copy are untested. Check: `hx --grammar
45+
fetch && hx --grammar build`, open a file, `:log-open` for LSP.
46+
- **Emacs** (not installed): the eglot and lsp-mode snippets are unexercised.
47+
- **PyCharm/IntelliJ** (not installed): the LSP4IJ user-defined-server steps and the TextMate-bundle
48+
import of `editors/vscode/` are transcribed from LSP4IJ's docs, not clicked through.
49+
- **Zed**: named as a Tree-sitter beneficiary but no Zed extension exists — that's a small authored
50+
artifact (extension.toml + grammar ref), not just a config; unscoped.
51+
- **Tree-sitter rendering**: captures are validated with `tree-sitter query`, but no themed
52+
highlight render (`tree-sitter highlight` needs a configured theme) and no `test/corpus/` golden
53+
trees — the gate is the zero-ERROR parse sweep + compiler-validated `test/stress.pyfun`.
54+
- **Jupyter kernel**: verified end-to-end via `jupyter_client` on Windows/CPython 3.14, but (a)
55+
`python -m pyfun_kernel.install` itself has never run (the e2e wrote its own dev kernelspec), (b)
56+
no real JupyterLab/Notebook UI session yet, (c) the engine-death replay path in `kernel.py` is
57+
code-reviewed only, (d) KeyboardInterrupt during a long cell untested, (e) macOS/Linux untested.
58+
The pip-installed `[jupyter]` extra + `install.py` path should be checked against the first wheel
59+
that ships the kernel (v0.0.8).
60+
3361
## Non-goals (decided against — with the reason, so they're not re-litigated)
3462

3563
- **Type annotations (`let x : T`, `(x: T)`, return types)** — annotation-free code is a selling point,

0 commit comments

Comments
 (0)