docs: generate STDLIB.md / BUILTINS.md from structured doc-comments instead of hand-writing them
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
- issue の種類
- ドキュメント
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- c
調査の方向性
Examine the existing hand-written docs in docs/STDLIB.md and docs/BUILTINS.md, and the source files in lib/*.eigs and the C registration sites for builtins. Understand the current drift gate in tools/stdlib_index_check.sh and the executed-fence machinery in tests/test_doc_examples.py. The goal is to design a structured doc-comment convention, implement a generator, and integrate it into the build process to auto-generate the documentation tables.
索引モデルが issue の本文から書いたものです。
説明
Problem. docs/STDLIB.md (1,851 lines) and docs/BUILTINS.md (986) are hand-written. A drift gate (tools/stdlib_index_check.sh) catches mismatches, but a person still types every entry, and the lib/*.eigs headers are free-form comments (e.g. lib/json.eigs's "How to use:" block), not structured doc-comments.
What mature languages do. The API reference is generated from the source: rustdoc from ///, go doc / pkg.go.dev from comments, Sphinx autodoc, ExDoc from @doc. The reference cannot drift, because it is the code.
Bar.
- A structured doc-comment convention for
lib/*.eigspublic functions (signature, one-line summary, args, return, an example that runs), documented indocs/STDLIB.md's preamble or CONTRIBUTING. - A C-side description for every builtin at its registration site (where
eigenscript --apialready enumerates the surface). - A generator produces the module/function tables of STDLIB.md and BUILTINS.md. Hand-written prose sections may stay, fenced off from the generated regions.
- The drift gate becomes "regenerate and diff": a new function without a doc-comment fails by name, and so does an edited generated region.
- The doc examples extracted from doc-comments run under the existing executed-fence machinery (
tests/test_doc_examples.py).
Ranked #2 of the docs follow-ups (2026-09-22 comparison with other languages).
Done when
- Decision recorded in a comment here: generate the API reference from source (structured doc-comments in
lib/*.eigs+ a description at each builtin's C registration site, with a generator writing the tables ofdocs/STDLIB.mdanddocs/BUILTINS.md), or keep hand-written tables guarded by the existingtools/stdlib_index_check.shdrift gate. Name the chosen option and why. - If adopted: the doc-comment convention (signature, one-line summary, args, return, a runnable example) is written in
docs/STDLIB.md's preamble or CONTRIBUTING, and every publiclib/*.eigsfunction and every builtineigenscript --apilists carries one. - If adopted: a generator in
tools/runs in CI, and the generated regions ofdocs/STDLIB.mdanddocs/BUILTINS.mdare byte-identical to its output; prose outside the fenced generated regions stays hand-written. Planted once: a new function with no doc-comment fails by name, and a hand edit inside a generated region fails. - If adopted: the examples taken from doc-comments run under
tests/test_doc_examples.py, and the executed count printed by that test goes up by the number of extracted examples. - If rejected: close with the reason, and state which gate keeps STDLIB.md/BUILTINS.md honest instead.
- 主要言語
- C
- スター
- 3
- フォーク
- 7
- 平均マージ
- 4時間 7分
- マージ済み PR(30日)
- 112
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
InauguralSystems/EigenScript のほかの issue
-
area:embed kind:silent-wrong
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
InauguralSystems/EigenScript#1387 ·
メンテナーはふだん 1 日以内に返信
-
area:stdlib kind:silent-wrong
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
InauguralSystems/EigenScript#1378 ·
メンテナーはふだん 1 日以内に返信
-
area:gates kind:gate-defect
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
InauguralSystems/EigenScript#1374 ·
メンテナーはふだん 1 日以内に返信
-
Error carets pad multi-byte UTF-8 byte-for-byte, so the ^ lands right of the token on a terminalオープンarea:lint-tooling kind:silent-wrong
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
InauguralSystems/EigenScript#1373 ·
メンテナーはふだん 1 日以内に返信
-
area:gates kind:docs-drift
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
InauguralSystems/EigenScript#1372 ·
メンテナーはふだん 1 日以内に返信
InauguralSystems/EigenScript の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
BasedHardware/omi#19711 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
microsoft/ebpf-for-windows#5604 ·
メンテナーはふだん 3 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
trezor/trezor-firmware#7985 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 2 日以内に返信