🚨 AI協調開発の危機回避事例を論文化(paper-09)
「ん?大丈夫?」の一言がPython特化ハードコーディングを防いだ事例を記録。
Everything is Box哲学 vs 技術的正しさの綱渡りからの生還を分析。
- docs/research/paper-09-ai-collaboration-pitfall/ を新規作成
- incident-analysis.md: Lowerer特殊化危機の詳細分析
- ai-collaboration-lessons.md: AI協調開発の教訓
- intuition-in-engineering.md: エンジニアの直感の価値
- summary.md: 綱渡りからの生還まとめ
- 研究論文の1論文1フォルダ原則に従い整理
- Python統合関連の実装修正とビルド成功確認
🛡️ Generated with Claude Code
This commit is contained in:
39
examples/aot_math_sqrt_full.nyash
Normal file
39
examples/aot_math_sqrt_full.nyash
Normal file
@ -0,0 +1,39 @@
|
||||
// Full math.sqrt with import/getattr/call
|
||||
static box Main {
|
||||
main() {
|
||||
local py, math, sqrt_func, sixteen, result, console, msg1, msg2
|
||||
|
||||
// Create console
|
||||
console = new ConsoleBox()
|
||||
|
||||
// Create Python runtime
|
||||
py = new PyRuntimeBox()
|
||||
|
||||
// Print start message (text only)
|
||||
msg1 = new StringBox("Starting calculation")
|
||||
console.log(msg1)
|
||||
|
||||
// Import math module
|
||||
local math_name
|
||||
math_name = new StringBox("math")
|
||||
math = py.import(math_name)
|
||||
|
||||
// Get sqrt function
|
||||
local sqrt_name
|
||||
sqrt_name = new StringBox("sqrt")
|
||||
sqrt_func = py.getattr(math, sqrt_name)
|
||||
|
||||
// Create argument
|
||||
sixteen = new IntegerBox(16)
|
||||
|
||||
// Call sqrt(16)
|
||||
result = py.call(sqrt_func, sixteen)
|
||||
|
||||
// Print done message (text only)
|
||||
msg2 = new StringBox("Calculation complete")
|
||||
console.log(msg2)
|
||||
|
||||
// Return result (should be 4.0)
|
||||
return result
|
||||
}
|
||||
}
|
||||
27
examples/aot_math_sqrt_simple.nyash
Normal file
27
examples/aot_math_sqrt_simple.nyash
Normal file
@ -0,0 +1,27 @@
|
||||
// Simplest math.sqrt example with ConsoleBox output
|
||||
static box Main {
|
||||
main() {
|
||||
local py, code, result, console, msg1, msg2
|
||||
|
||||
// Create console
|
||||
console = new ConsoleBox()
|
||||
|
||||
// Create Python runtime
|
||||
py = new PyRuntimeBox()
|
||||
|
||||
// Print start text
|
||||
msg1 = new StringBox("Calculating sqrt(16)...")
|
||||
console.log(msg1)
|
||||
|
||||
// Use eval for math.sqrt (since import/getattr not available)
|
||||
code = new StringBox("__import__('math').sqrt(16)")
|
||||
result = py.eval(code)
|
||||
|
||||
// Print done text
|
||||
msg2 = new StringBox("Result calculated!")
|
||||
console.log(msg2)
|
||||
|
||||
// Return the result (should be 4.0 as FloatBox with NYASH_PY_AUTODECODE=1)
|
||||
return result
|
||||
}
|
||||
}
|
||||
12
examples/console_native_simple.nyash
Normal file
12
examples/console_native_simple.nyash
Normal file
@ -0,0 +1,12 @@
|
||||
// ConsoleBox native build test - simplest version
|
||||
// Build native:
|
||||
// ./tools/build_aot.sh examples/console_native_simple.nyash console_simple
|
||||
|
||||
static box Main {
|
||||
main() {
|
||||
local c
|
||||
c = new ConsoleBox()
|
||||
c.println("Hello Nyash Native!")
|
||||
return 0
|
||||
}
|
||||
}
|
||||
17
examples/console_native_test.nyash
Normal file
17
examples/console_native_test.nyash
Normal file
@ -0,0 +1,17 @@
|
||||
// ConsoleBox native build test - minimal example
|
||||
// Build native:
|
||||
// cargo build --release --features cranelift-jit
|
||||
// ./tools/build_aot.sh examples/console_native_test.nyash console_app
|
||||
|
||||
static box Main {
|
||||
greet(name) {
|
||||
local c
|
||||
c = new ConsoleBox()
|
||||
c.println("Hello, " + name + "!")
|
||||
return 0
|
||||
}
|
||||
|
||||
main() {
|
||||
return me.greet("Nyash Native")
|
||||
}
|
||||
}
|
||||
6
examples/native_test_minimal.nyash
Normal file
6
examples/native_test_minimal.nyash
Normal file
@ -0,0 +1,6 @@
|
||||
// Minimal test for native build
|
||||
static box Main {
|
||||
main() {
|
||||
return 42
|
||||
}
|
||||
}
|
||||
6
examples/simple_return.nyash
Normal file
6
examples/simple_return.nyash
Normal file
@ -0,0 +1,6 @@
|
||||
// Simplest possible example for native build
|
||||
static box Main {
|
||||
main() {
|
||||
return 42
|
||||
}
|
||||
}
|
||||
18
examples/test_py_context_sharing.nyash
Normal file
18
examples/test_py_context_sharing.nyash
Normal file
@ -0,0 +1,18 @@
|
||||
// Test context sharing between import and eval
|
||||
static box Main {
|
||||
main() {
|
||||
local py, r
|
||||
|
||||
// Create Python runtime
|
||||
py = new PyRuntimeBox()
|
||||
|
||||
// Import math module
|
||||
py.import("math")
|
||||
|
||||
// Try to use math in eval
|
||||
r = py.eval("math.sqrt(16)")
|
||||
|
||||
// Return result (VM prints final result summary)
|
||||
return r
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user