From d14191df8a5e74a5fbc4d23d9cfa11b2ede15830 Mon Sep 17 00:00:00 2001 From: "peng.li24" <734991033@qq.com> Date: Sun, 16 Aug 2026 09:41:15 +0000 Subject: [PATCH] =?UTF-8?q?refactor:=20rwir=20=E7=AD=BE=E5=90=8D=E5=8E=BB?= =?UTF-8?q?=20runtime=20=E6=AE=B5=EF=BC=88/lib/{runtime}/=20?= =?UTF-8?q?=E2=86=92=20/lib/=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude --- cmd/kvlang/run.go | 3 +-- keytree/sys.go | 5 ----- rwir/builtin/rwirs.go | 11 ++++------- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/cmd/kvlang/run.go b/cmd/kvlang/run.go index cb81de89..799de799 100644 --- a/cmd/kvlang/run.go +++ b/cmd/kvlang/run.go @@ -5,7 +5,6 @@ import ( "flag" "fmt" "os" - "path/filepath" "strings" "time" @@ -72,7 +71,7 @@ func executeEntry(kv kvspace.KVSpace, entryName string, debug bool) { vtid := vthread.AllocVtid(kv) kv.DelTree(keytree.VThread(vtid)) kvspace.MkIndexRecursive(kv, keytree.VThread(vtid)+"/") - builtin.WriteRwir(kv, filepath.Base(os.Args[0])) + builtin.WriteRwir(kv) if !noterm { term.Register(kv) go term.Serve(kv) diff --git a/keytree/sys.go b/keytree/sys.go index a5a67f62..31d77b74 100644 --- a/keytree/sys.go +++ b/keytree/sys.go @@ -4,8 +4,3 @@ package keytree const RwirRoot = LibRoot func Rwir(opcode string) string { return RwirRoot + PathSegSep + opcode } - -// RwirRuntime 返回 /lib/{runtime}/{opcode}。{runtime} 反射自可执行文件名。 -func RwirRuntime(runtime, opcode string) string { - return RwirRoot + PathSegSep + runtime + PathSegSep + opcode -} diff --git a/rwir/builtin/rwirs.go b/rwir/builtin/rwirs.go index 37a8d8db..17ddb8fb 100644 --- a/rwir/builtin/rwirs.go +++ b/rwir/builtin/rwirs.go @@ -64,17 +64,14 @@ func countSigParams(sig string) (reads, writes int32) { return } -// WriteRwir 将所有已注册的 native rwir 签名写入 /rwir/{runtime}/。 -// rwir 是空函数体(无指令体,仅签名),只能落在 /rwir/{runtime}/,不进 /lib/。 -// {runtime} 反射自可执行文件名(如 kvlang),使多个 runtime 共存于同一 kvspace 不冲突。 -func WriteRwir(kv kvspace.KVSpace, runtime string) { +// WriteRwir 将所有已注册的 native rwir 签名写入 /lib/(kind=rwir,空函数体仅签名)。 +func WriteRwir(kv kvspace.KVSpace) { pairs := make([]kvspace.KVPair, 0, len(rwirregistry)) for opcode, op := range rwirregistry { - if op.sig == "" { continue } - if strings.Contains(opcode, "/") { continue } + if op.sig == "" || strings.Contains(opcode, "/") { continue } reads, writes := countSigParams(op.sig) pairs = append(pairs, kvspace.KVPair{ - Key: keytree.RwirRuntime(runtime, opcode), + Key: keytree.Rwir(opcode), Val: kvspace.NewRwir(int32(reads), int32(writes), string(op.sig)), }) }