🐍 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:
27
examples/aot_py_eval_console.nyash
Normal file
27
examples/aot_py_eval_console.nyash
Normal file
@ -0,0 +1,27 @@
|
||||
// AOT Python eval with ConsoleBox output
|
||||
static box Main {
|
||||
main() {
|
||||
local py, code, result, console, msg1, msg2
|
||||
|
||||
// Create console for output
|
||||
console = new ConsoleBox()
|
||||
|
||||
// Create Python runtime
|
||||
py = new PyRuntimeBox()
|
||||
|
||||
// Print start message
|
||||
msg1 = new StringBox("Starting calculation...")
|
||||
console.log(msg1)
|
||||
|
||||
// Eval-only approach for sqrt(16)
|
||||
code = new StringBox("(__import__('math').sqrt)(16)")
|
||||
result = py.eval(code)
|
||||
|
||||
// Print done message
|
||||
msg2 = new StringBox("Calculation complete!")
|
||||
console.log(msg2)
|
||||
|
||||
// Return result (should be 4.0)
|
||||
return result
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user