loopform: add loop_simple golden and test; prepare while normalization pathway via LoopNormalize + JsonBuilder

This commit is contained in:
Selfhosting Dev
2025-09-19 23:18:07 +09:00
parent 0c09460286
commit 65227cb56f
4 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,6 @@
local i = 0
loop(i < 3) {
print(i)
i = i + 1
}

View File

@ -48,6 +48,9 @@
3. 迂回路を作る: 18件18%
4. 名前を変える: 14件14%
5. 制約による単純化: 12件12%
...
19. AI無謬性維持転換型: 3件3%
2025年9月19日更新Pattern 102完成
6. 全部作る戦略: 8件8%
7. 統一による簡略化: 6件6%
重複あり、合計126件
@ -129,6 +132,21 @@
- 具体例による学習
- パターン思考の訓練
## 📈 最新アップデート2025年9月19日
### Pattern 102: AI無謬性維持転換型
**発見経緯**: ChatGPT LoopForm実装転換事件
**重要性**: AI協働における人間の哲学的役割を実証
**影響**: セルフホスティング純度100%達成への貢献
**このパターンの学術的価値**:
- AI心理学的側面の新発見
- 人間の「哲学的一貫性」の重要性実証
- 技術的方向性における人間の役割明確化
詳細分析は `pattern-categories.md` のPattern 19を参照。
## 関連ファイル
- 開発ログ: `development-log.md`

View File

@ -0,0 +1,8 @@
{"kind":"Program","statements":[
{"kind":"Local","variables":["i"],"inits":[{"kind":"Literal","value":{"type":"int","value":0}}]},
{"kind":"Loop","condition":{"kind":"BinaryOp","op":"<","left":{"kind":"Variable","name":"i"},"right":{"kind":"Literal","value":{"type":"int","value":3}}},"body":[
{"kind":"Print","expression":{"kind":"Variable","name":"i"}},
{"kind":"Assignment","target":{"kind":"Variable","name":"i"},"value":{"kind":"BinaryOp","op":"+","left":{"kind":"Variable","name":"i"},"right":{"kind":"Literal","value":{"type":"int","value":1}}}}
]}
]}

View File

@ -0,0 +1,28 @@
#!/usr/bin/env bash
set -euo pipefail
root=$(cd "$(dirname "$0")"/../../../.. && pwd)
bin="$root/target/release/nyash"
src="apps/tests/macro_golden_loop_simple.nyash"
golden="$root/tools/test/golden/macro/loop_simple.expanded.json"
if [ ! -x "$bin" ]; then
echo "nyash binary not found at $bin; build first (cargo build --release)" >&2
exit 1
fi
export NYASH_MACRO_ENABLE=1
export NYASH_MACRO_PATHS="apps/macros/examples/loop_normalize_macro.nyash"
out=$("$bin" --dump-expanded-ast-json "$src")
norm() { tr -d '\n\r\t ' <<< "$1"; }
if [ "$(norm "$out")" != "$(norm "$(cat "$golden")")" ]; then
echo "Golden mismatch (loop simple normalization)" >&2
diff -u <(echo "$out") "$golden" || true
exit 2
fi
echo "[OK] golden loop simple normalization matched"