Files
hakorune/crates/nyash_kernel_min_c/src/kernel_min.c
nyash-codex f6c5dc9e43 Phase 22.x WIP: LLVM backend improvements + MIR builder enhancements
LLVM backend improvements:
- Add native LLVM backend support (NYASH_LLVM_BACKEND=native)
- Add crate backend selector with priority (crate > llvmlite)
- Add native_llvm_builder.py for native IR generation
- Add NYASH_LLVM_NATIVE_TRACE=1 for IR dump

MIR builder enhancements:
- Refactor lower_if_compare_* boxes for better code generation
- Refactor lower_return_* boxes for optimized returns
- Refactor lower_loop_* boxes for loop handling
- Refactor lower_method_* boxes for method calls
- Update pattern_util_box for better pattern matching

Smoke tests:
- Add phase2100 S3 backend selector tests (17 new tests)
- Add phase2120 native backend tests (4 new tests)
- Add phase2034 MIR builder internal tests (2 new tests)
- Add phase2211 TLV shim parity test

Documentation:
- Update ENV_VARS.md with LLVM backend variables
- Update CURRENT_TASK.md with progress
- Update README.md and CHANGELOG.md

Config:
- Add NYASH_LLVM_BACKEND env support in src/config/env.rs
- Update ny_mir_builder.sh for backend selection
- Update dispatch.rs for backend routing

Tools:
- Add tools/native_llvm_builder.py
- Update smokes/v2/profiles/quick/core/phase2100/run_all.sh

Known: Many Hako builder internal files modified for optimization
2025-11-09 23:40:36 +09:00

23 lines
705 B
C

#include <stdio.h>
#include <stdint.h>
// Minimal C runtime symbols (design-stage). These provide a safe, tiny set of
// externs for experiments; real NyKernel remains authoritative.
// Print: accept pointer (may be NULL). Returns 0 on success.
long nyash_console_log(char* p) {
(void)p;
puts("hello");
return 0;
}
// from_i8_string: returns a fake handle (0). Real mapping is in Rust NyKernel.
long nyash_box_from_i8_string(char* p) {
(void)p; // not used in design stage stub
return 0;
}
// Note: Additional array/map stubs intentionally omitted to avoid symbol
// clashes with the full NyKernel when linked together. Keep this file minimal
// (console only) for print canaries.