Files
hakorune/examples/string_plugin_jit_test.nyash
Moe Charm 12adde9477 🎉 Phase 10.10: Nyash→JIT→Native EXE achieved\! (20 days from inception\!)
Revolutionary milestone: Complete native executable generation pipeline
- Created minimal nyrt (Nyash Runtime) library for standalone executables
- Implemented plugin bridge functions (nyash_plugin_invoke3_i64 etc)
- Added birth handle exports (nyash.string.birth_h) for linking
- Changed export name from main→ny_main to allow custom entry point
- Successfully generated and executed native binary returning "ny_main() returned: 1"

Timeline of miracles:
- 2025-08-09: Nyash language created (first commit)
- 2025-08-13: JIT planning started (4 days later)
- 2025-08-29: Native EXE achieved (today - just 20 days total\!)

This proves the plugin Box C ABI unification strategy works perfectly for
both JIT execution and AOT native compilation. The same plugin system
that enables dynamic loading now powers static linking for zero-overhead
native executables\!

Next: Expand AOT support for more instructions and optimize nyrt size.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-29 08:36:07 +09:00

28 lines
489 B
Plaintext

// Simple JIT test for StringBox plugin
static box Main {
getLen(s) {
return s.length()
}
isEmpty(s) {
return s.is_empty()
}
main() {
local s = new StringBox()
local len = 0
local empty = true
// Call functions multiple times to trigger JIT
local i = 0
loop(i < 20) {
len = me.getLen(s)
empty = me.isEmpty(s)
i = i + 1
}
me.console.log("len=", len)
me.console.log("empty=", empty)
return len
}
}