feat: Phase 15.5-A 予約型保護解除完了+StringBox問題調査
🎯 **Phase 15.5 Phase A実装完了** - ✅ is_reserved_type()修正: 環境変数による条件付きバイパス実装 - ✅ NYASH_USE_PLUGIN_BUILTINS=1 + NYASH_PLUGIN_OVERRIDE_TYPES対応 - ✅ ビルド確認: エラーなしでコンパイル成功 - ✅ プラグインロード確認: 予約型拒否エラーなし 🔍 **StringBox問題完全調査** - 問題特定: get()/set()が空文字を返す(length=4で内部データあり) - 全バックエンド影響: VM/プラグイン/コア すべて同じ問題 - MIRレベル正常: newbox/boxcall正しく生成 - 調査資料: /tmp/stringbox_test_results.md完備 📂 **変更ファイル** - src/box_factory/mod.rs: 予約型保護条件付き解除 - docs/phase-15.5: Phase A完了ドキュメント更新 - nyash.toml: StringBox/IntegerBoxプラグイン設定追加 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
335
nyash.toml.backup2
Normal file
335
nyash.toml.backup2
Normal file
@ -0,0 +1,335 @@
|
||||
[env]
|
||||
# Put environment defaults used by tools or examples if needed
|
||||
# Enable using resolver by default (can be disabled with NYASH_SKIP_TOML_ENV=1)
|
||||
NYASH_ENABLE_USING = "1"
|
||||
# Enable dev sugar preexpand for @ local alias (line-head) during parsing
|
||||
NYASH_DEV_AT_LOCAL = "1"
|
||||
|
||||
[using]
|
||||
paths = ["apps", "lib", "."]
|
||||
|
||||
[modules]
|
||||
# Map logical namespaces to Nyash source paths (consumed by runner)
|
||||
selfhost.compiler.debug = "apps/selfhost/compiler/boxes/debug_box.nyash"
|
||||
selfhost.compiler.parser = "apps/selfhost/compiler/boxes/parser_box.nyash"
|
||||
selfhost.compiler.emitter = "apps/selfhost/compiler/boxes/emitter_box.nyash"
|
||||
selfhost.compiler.mir = "apps/selfhost/compiler/boxes/mir_emitter_box.nyash"
|
||||
selfhost.vm.json_cur = "apps/selfhost/vm/boxes/json_cur.nyash"
|
||||
selfhost.vm.json = "apps/selfhost/common/json_adapter.nyash"
|
||||
selfhost.vm.core = "apps/selfhost/vm/boxes/mini_vm_core.nyash"
|
||||
selfhost.vm.scan = "apps/selfhost/common/mini_vm_scan.nyash"
|
||||
selfhost.vm.binop = "apps/selfhost/common/mini_vm_binop.nyash"
|
||||
selfhost.vm.compare = "apps/selfhost/common/mini_vm_compare.nyash"
|
||||
selfhost.vm.prints = "apps/selfhost/vm/boxes/mini_vm_prints.nyash"
|
||||
selfhost.vm.seam = "apps/selfhost/vm/boxes/seam_inspector.nyash"
|
||||
|
||||
# Temporary alias keys (migration aid; keys kept stable)
|
||||
selfhost.common.json = "apps/selfhost/common/json_adapter.nyash"
|
||||
selfhost.common.scan = "apps/selfhost/common/mini_vm_scan.nyash"
|
||||
selfhost.common.binop = "apps/selfhost/common/mini_vm_binop.nyash"
|
||||
selfhost.common.compare = "apps/selfhost/common/mini_vm_compare.nyash"
|
||||
|
||||
# v2 Plugin libraries (loader reads these for TypeBox ABI)
|
||||
[libraries]
|
||||
[libraries."libnyash_filebox_plugin.so"]
|
||||
boxes = ["FileBox"]
|
||||
path = "plugins/nyash-filebox-plugin/target/release/libnyash_filebox_plugin.so"
|
||||
|
||||
[libraries."libnyash_filebox_plugin.so".FileBox]
|
||||
type_id = 6
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_filebox_plugin.so".FileBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
open = { method_id = 1 }
|
||||
read = { method_id = 2 }
|
||||
write = { method_id = 3 }
|
||||
close = { method_id = 4 }
|
||||
exists = { method_id = 5 }
|
||||
copyFrom = { method_id = 7 }
|
||||
cloneSelf = { method_id = 8 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_path_plugin.so"]
|
||||
boxes = ["PathBox"]
|
||||
path = "plugins/nyash-path-plugin/target/release/libnyash_path_plugin.so"
|
||||
|
||||
[libraries."libnyash_path_plugin.so".PathBox]
|
||||
type_id = 55
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_path_plugin.so".PathBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
join = { method_id = 1 }
|
||||
dirname = { method_id = 2 }
|
||||
basename = { method_id = 3 }
|
||||
extname = { method_id = 4 }
|
||||
isAbs = { method_id = 5 }
|
||||
normalize = { method_id = 6 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_math_plugin.so"]
|
||||
boxes = ["MathBox", "TimeBox"]
|
||||
path = "plugins/nyash-math-plugin/target/release/libnyash_math_plugin.so"
|
||||
|
||||
[libraries."libnyash_math_plugin.so".MathBox]
|
||||
type_id = 50
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_math_plugin.so".MathBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
sqrt = { method_id = 1 }
|
||||
sin = { method_id = 2 }
|
||||
cos = { method_id = 3 }
|
||||
round = { method_id = 4 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_math_plugin.so".TimeBox]
|
||||
type_id = 51
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_math_plugin.so".TimeBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
now = { method_id = 1 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_regex_plugin.so"]
|
||||
boxes = ["RegexBox"]
|
||||
path = "plugins/nyash-regex-plugin/target/release/libnyash_regex_plugin.so"
|
||||
|
||||
[libraries."libnyash_regex_plugin.so".RegexBox]
|
||||
type_id = 52
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_regex_plugin.so".RegexBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
compile = { method_id = 1 }
|
||||
isMatch = { method_id = 2 }
|
||||
find = { method_id = 3 }
|
||||
replaceAll = { method_id = 4 }
|
||||
split = { method_id = 5 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_net_plugin.so"]
|
||||
boxes = ["ClientBox", "ResponseBox", "RequestBox", "ServerBox", "SockServerBox", "SockClientBox", "SockConnBox"]
|
||||
path = "plugins/nyash-net-plugin/target/release/libnyash_net_plugin.so"
|
||||
|
||||
[libraries."libnyash_net_plugin.so".ClientBox]
|
||||
type_id = 23
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_net_plugin.so".ClientBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
get = { method_id = 1 }
|
||||
post = { method_id = 2 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_net_plugin.so".ResponseBox]
|
||||
type_id = 22
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_net_plugin.so".ResponseBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
setStatus = { method_id = 1 }
|
||||
setHeader = { method_id = 2 }
|
||||
write = { method_id = 3 }
|
||||
readBody = { method_id = 4 }
|
||||
getStatus = { method_id = 5 }
|
||||
getHeader = { method_id = 6 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_net_plugin.so".RequestBox]
|
||||
type_id = 21
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_net_plugin.so".RequestBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
path = { method_id = 1 }
|
||||
readBody = { method_id = 2 }
|
||||
respond = { method_id = 3 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_net_plugin.so".ServerBox]
|
||||
type_id = 20
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_net_plugin.so".ServerBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
start = { method_id = 1 }
|
||||
stop = { method_id = 2 }
|
||||
accept = { method_id = 3 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_net_plugin.so".SockServerBox]
|
||||
type_id = 30
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_net_plugin.so".SockServerBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
start = { method_id = 1 }
|
||||
stop = { method_id = 2 }
|
||||
accept = { method_id = 3 }
|
||||
acceptTimeout = { method_id = 4 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_net_plugin.so".SockClientBox]
|
||||
type_id = 32
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_net_plugin.so".SockClientBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
connect = { method_id = 1 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_net_plugin.so".SockConnBox]
|
||||
type_id = 31
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_net_plugin.so".SockConnBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
send = { method_id = 1 }
|
||||
recv = { method_id = 2 }
|
||||
close = { method_id = 3 }
|
||||
recvTimeout = { method_id = 4 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_encoding_plugin.so"]
|
||||
boxes = ["EncodingBox"]
|
||||
path = "plugins/nyash-encoding-plugin/target/release/libnyash_encoding_plugin.so"
|
||||
|
||||
[libraries."libnyash_encoding_plugin.so".EncodingBox]
|
||||
type_id = 53
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_encoding_plugin.so".EncodingBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
toUtf8Bytes = { method_id = 1 }
|
||||
fromUtf8Bytes = { method_id = 2 }
|
||||
base64Encode = { method_id = 3 }
|
||||
base64Decode = { method_id = 4 }
|
||||
hexEncode = { method_id = 5 }
|
||||
hexDecode = { method_id = 6 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_json_plugin.so"]
|
||||
boxes = ["JsonDocBox", "JsonNodeBox"]
|
||||
path = "plugins/nyash-json-plugin/target/release/libnyash_json_plugin.so"
|
||||
|
||||
[libraries."libnyash_json_plugin.so".JsonDocBox]
|
||||
type_id = 70
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_json_plugin.so".JsonDocBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
parse = { method_id = 1 }
|
||||
root = { method_id = 2 }
|
||||
error = { method_id = 3 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_json_plugin.so".JsonNodeBox]
|
||||
type_id = 71
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_json_plugin.so".JsonNodeBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
kind = { method_id = 1 }
|
||||
get = { method_id = 2 }
|
||||
size = { method_id = 3 }
|
||||
at = { method_id = 4 }
|
||||
str = { method_id = 5 }
|
||||
int = { method_id = 6 }
|
||||
bool = { method_id = 7 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_toml_plugin.so"]
|
||||
boxes = ["TOMLBox"]
|
||||
path = "plugins/nyash-toml-plugin/target/release/libnyash_toml_plugin.so"
|
||||
|
||||
[libraries."libnyash_toml_plugin.so".TOMLBox]
|
||||
type_id = 54
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_toml_plugin.so".TOMLBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
parse = { method_id = 1 }
|
||||
get = { method_id = 2 }
|
||||
toJson = { method_id = 3 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
# Python (v2 TypeBox) plugins
|
||||
[libraries."libnyash_python_plugin.so"]
|
||||
boxes = ["PyRuntimeBox", "PyObjectBox"]
|
||||
path = "plugins/nyash-python-plugin/target/release/libnyash_python_plugin.so"
|
||||
|
||||
[libraries."libnyash_python_plugin.so".PyRuntimeBox]
|
||||
type_id = 40
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_python_plugin.so".PyRuntimeBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
eval = { method_id = 1 }
|
||||
import = { method_id = 2 }
|
||||
evalR = { method_id = 11 }
|
||||
importR = { method_id = 12 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_python_plugin.so".PyObjectBox]
|
||||
type_id = 41
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_python_plugin.so".PyObjectBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
getattr = { method_id = 1 }
|
||||
call = { method_id = 2 }
|
||||
str = { method_id = 3 }
|
||||
callKw = { method_id = 5 }
|
||||
getattrR = { method_id = 11 }
|
||||
callR = { method_id = 12 }
|
||||
callKwR = { method_id = 15 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_python_parser_plugin.so"]
|
||||
boxes = ["PythonParserBox"]
|
||||
path = "plugins/nyash-python-parser-plugin/target/release/libnyash_python_parser_plugin.so"
|
||||
|
||||
[libraries."libnyash_python_parser_plugin.so".PythonParserBox]
|
||||
type_id = 60
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_python_parser_plugin.so".PythonParserBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
parse = { method_id = 1 }
|
||||
fini = { method_id = 4294967295 }
|
||||
|
||||
[libraries."libnyash_python_compiler_plugin.so"]
|
||||
boxes = ["PythonCompilerBox"]
|
||||
path = "plugins/nyash-python-compiler-plugin/target/release/libnyash_python_compiler_plugin.so"
|
||||
|
||||
[libraries."libnyash_python_compiler_plugin.so".PythonCompilerBox]
|
||||
type_id = 61
|
||||
abi_version = 1
|
||||
singleton = false
|
||||
|
||||
[libraries."libnyash_python_compiler_plugin.so".PythonCompilerBox.methods]
|
||||
birth = { method_id = 0 }
|
||||
compile = { method_id = 1 }
|
||||
fini = { method_id = 4294967295 }
|
||||
Reference in New Issue
Block a user