🐍 Python統合をAOTレベルまで完成(eval方式でunsupported=0達成)

- PyRuntimeBox.eval() で完全AOT対応(FloatBox返却)
- NYASH_PY_AUTODECODE=1 によるプリミティブ型自動変換
- ConsoleBox経由の出力もAOT対応
- 多数のPythonテストサンプル追加
- 論文「1ヶ月でインタープリターからネイティブまで」執筆開始

課題:
- import/getattr/callはプラグイン側の実装待ち
- importとevalの文脈共有は未対応

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Moe Charm
2025-08-30 07:47:21 +09:00
parent 0976326a6e
commit db265d7f29
41 changed files with 1899 additions and 14 deletions

View File

@ -0,0 +1,37 @@
// AOT Python math.sqrt with separate print calls
static box Main {
main() {
local py, math, sqrt_func, sixteen, result, console
// Create console for output
console = new ConsoleBox()
// Create Python runtime
py = new PyRuntimeBox()
// Print just text first
local msg1
msg1 = new StringBox("Starting calculation")
console.log(msg1)
// Import math module
math = py.import("math")
// Get sqrt function
sqrt_func = py.getattr(math, "sqrt")
// Create number
sixteen = new IntegerBox(16)
// Call sqrt(16)
result = py.call(sqrt_func, sixteen)
// Print just text again
local msg2
msg2 = new StringBox("Calculation done")
console.log(msg2)
// Return result (should be 4.0)
return result
}
}