mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-23 18:21:13 +08:00
feat: VmHost trait 边界钉为单 realm 接口,跨 realm 值传递不挂 trait
This commit is contained in:
Generated
+18
-18
@@ -1160,7 +1160,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_builtins"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"fast-float",
|
||||
@@ -1185,7 +1185,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_bytecode"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"num-bigint",
|
||||
"oxide_log",
|
||||
@@ -1193,7 +1193,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_cfg"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"oxide_bytecode",
|
||||
"oxide_emit",
|
||||
@@ -1204,7 +1204,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_cli"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"ansi_term",
|
||||
"bumpalo",
|
||||
@@ -1225,7 +1225,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_code_cache"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"lru",
|
||||
"oxide_bytecode",
|
||||
@@ -1234,7 +1234,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_compiler"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"oxide_bytecode",
|
||||
"oxide_cfg",
|
||||
@@ -1253,7 +1253,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_dce"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"oxide_bytecode",
|
||||
"oxide_cfg",
|
||||
@@ -1267,7 +1267,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_emit"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"num-bigint",
|
||||
"oxc_allocator",
|
||||
@@ -1282,7 +1282,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_ir"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"oxide_bytecode",
|
||||
"oxide_log",
|
||||
@@ -1291,7 +1291,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_kernel"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"bumpalo",
|
||||
"dashmap",
|
||||
@@ -1306,7 +1306,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_liveness"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"oxide_bytecode",
|
||||
"oxide_cfg",
|
||||
@@ -1318,7 +1318,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_log"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"tracing",
|
||||
"tracing-appender",
|
||||
@@ -1327,7 +1327,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_parser"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"oxc_allocator",
|
||||
"oxc_ast",
|
||||
@@ -1342,7 +1342,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_regalloc"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"oxide_bytecode",
|
||||
"oxide_cfg",
|
||||
@@ -1358,7 +1358,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_runtime_api"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"num-bigint",
|
||||
"num-traits",
|
||||
@@ -1370,7 +1370,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_test262"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"oxide_bytecode",
|
||||
"oxide_compiler",
|
||||
@@ -1387,7 +1387,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_types"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"bumpalo",
|
||||
"hashbrown 0.14.5",
|
||||
@@ -1399,7 +1399,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "oxide_vm"
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
dependencies = [
|
||||
"bumpalo",
|
||||
"chrono",
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ members = [
|
||||
]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.8.65"
|
||||
version = "0.8.66"
|
||||
edition = "2021"
|
||||
license = "MIT"
|
||||
rust-version = "1.80"
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
//! 为 well-known 符号映目标 realm 同 local_index、用户符号经描述重新 intern。
|
||||
//!
|
||||
//! 边界:
|
||||
//! - 两函数为独立函数,刻意不挂 `VmHost` trait:trait 是单 realm 接口,跨 realm
|
||||
//! 值传递不挂 trait(见 trait 文档边界条款),免污染单 realm 接口。
|
||||
//! - `MessageValue` 是树形(无共享引用间接),值图内循环引用报 DataCloneError;
|
||||
//! 共享引用(有向无环)复制为多份。
|
||||
//! - 装箱对象(Boolean/Number/String 盒、BigInt 包装)传递时解箱为原始值。
|
||||
|
||||
@@ -10,6 +10,13 @@ use oxide_types::value::JsValue;
|
||||
///
|
||||
/// 方法签名是 `Vm` 上同名固有方法的逐字节拷贝;`impl VmHost for Vm` 委托给
|
||||
/// 它们。trait 刻意保持扁平且非对象安全——builtins 始终接受 `&mut impl VmHost`。
|
||||
///
|
||||
/// 边界:本 trait 是单 realm 接口——所有方法只作用于所属 VM 的当前 realm,
|
||||
/// 不含跨 realm(跨线程)值传递方法。跨 realm 值传递由
|
||||
/// `oxide_builtins::message_value` 的独立函数实现(源 realm 侧 `detach_message`、
|
||||
/// 目标 realm 侧 `rehydrate_message`,经 `MessageValue` 中间表示),不挂本 trait,
|
||||
/// 免污染单 realm 接口。trait 亦无 realm 查找方法:`realm_id` 只用于符号编码
|
||||
/// (符号身份 = (realm 编号, 局部下标) 的 realm 维度),不用于查找他 realm 对象。
|
||||
pub trait VmHost {
|
||||
// 寄存器访问
|
||||
fn reg(&self, idx: u8) -> JsValue;
|
||||
|
||||
Reference in New Issue
Block a user