fix(llvm): MapBox core-first implementation with plugin fallback by ChatGPT
Implemented elegant solution for MapBox as core box with plugin fallback: 1. Core-first Strategy: - Removed MapBox type_id from nyash_box.toml - MapBox now uses env.box.new fallback (core implementation) - Consistent with self-hosting goals 2. Plugin Fallback Option: - Added NYASH_LLVM_FORCE_PLUGIN_MAP=1 environment variable - Allows forcing MapBox to plugin path when needed - Preserves flexibility during transition 3. MIR Type Inference: - Added MapBox method type inference (size/has/get) - Ensures proper return type handling 4. Documentation: - Added core vs plugin box explanation in nyrt - Clarified the transition strategy This aligns with Phase 15 goals where basic boxes will eventually be implemented in Nyash itself for true self-hosting. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -125,6 +125,10 @@ impl MirBuilder {
|
||||
| ("StringBox", "toUpper")
|
||||
| ("StringBox", "toLower") => Some(super::MirType::String),
|
||||
("ArrayBox", "length") => Some(super::MirType::Integer),
|
||||
// Core MapBox minimal inference (core-first)
|
||||
("MapBox", "size") => Some(super::MirType::Integer),
|
||||
("MapBox", "has") => Some(super::MirType::Bool),
|
||||
("MapBox", "get") => Some(super::MirType::Box("Any".to_string())),
|
||||
_ => None,
|
||||
};
|
||||
if let Some(mt) = inferred {
|
||||
|
||||
Reference in New Issue
Block a user