入口。豫
yuyan · 317 行 · 18154 字节 · UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317
寻观「底层库」之书。
寻观「客体二号」之「布局」之书。
寻观「客体二号」之「林系统」之书。
寻观「客体二号」之「平台」之书。
寻观「客体二号」之「基础」之书。
寻观「客体二号」之「实例」之书。
寻观「客体二号」之「模块」之书。
寻观「客体二号」之「控制」之书。
寻观「客体二号」之「堆」之书。
寻观「客体二号」之「对象」之书。
寻观「客体二号」之「异常」之书。
寻观「客体二号」之「运算」之书。
寻观「客体二号」之「访存」之书。
寻观「客体二号」之「裸机底层句柄」之书。
寻观「客体二号」之「裸机底层文件」之书。
寻观「客体二号」之「裸机底层终端」之书。
寻观「客体二号」之「裸机底层网络」之书。
寻观「客体二号」之「裸机底层进程」之书。
寻观「客体二号」之「块设备」之书。
寻观「客体二号」之「文件系统」之书。
寻观「客体二号」之「宿主对象」之书。
寻观「客体二号」之「主机名」之书。
寻观「客体二号」之「主机文件」之书。
寻观「客体二号」之「主机任务」之书。
寻观「客体二号」之「主机」之书。
寻观「客体二号」之「调用」之书。
寻观「客体二号」之「解释」之书。
寻观「客体二号」之「初始化」之书。
寻观「客体二号」之「软浮点」之书。
寻观「客体二号」之「浮点指令」之书。
寻观「客体二号」之「链接」之书。
寻观「客体二号」之「装载」之书。
寻观「客体二号」之「林启动」之书。
寻观「客体二号」之「林底层」之书。
寻观「客体二号」之「原生系统」之书。
寻观「客体二号」之「原生底层」之书。
寻观「客体二号」之「原生子进程」之书。
寻观「客体二号」之「苹系统」之书。
寻观「客体二号」之「苹启动」之书。
寻观「客体二号」之「原生文件原语」之书。
寻观「客体二号」之「原生装载」之书。
寻观「客体二号」之「预编接口」之书。
「:文言:客体执行器二号之门:底层模式之豫言所写,解释普通豫言所出之 WasmGC 程序。汉语:客体执行器二号入口(底层模式)。宿主把客体模块放在 0x10000 起的窗口、长度写到 0x408,再调用导出的 启动:解析模块、建立各区、初始化全局与元素与数据、挂载持久文件系统,然后运行测试约定的导出函数(名字在 0x2400,缺省为 _start;参数在 0x2440 起)并打印结果。:」
「:文言:内存之上限约二千兆字节(三万二千七百六十七页),任其按需而长;取此而不取四千兆者,使址皆小于二之三十一次方,有号之比较无误。裸机之内核唯供五百一十二页,故页上限依平台而定。汉语:线性内存上限声明为约 2 GiB(32767 页,按需增长),让原生宿主能运行编译器这类大程序(1 GiB 时预编编译器并行编译曾“堆内存不足”);不取 4 GiB,是为了让地址都小于 2^31,执行器里的有符号比较不出错。裸机内核只提供 512 页(降级按裸机上限截断),所以堆用的页上限(决定标记位图大小)按平台取:原生 32767,裸机 512。:」
「内存」者(「声明内存」于「八」于「三二七六七」)也。
「数据区」者(「声明数据区」于「字面串基」于「参数区」)也。
「解析模块」乃化「有」而「有」也。
「解析模块」者会「无」而
虑「大」者「不等于」于(「读四」于「状态_主程序大」)于「零」而
虑「无」者
(「写四」于「状态_模块址」于(「选择」于「大」于「区域起」于「模块基」))而
虑「无」者
(「写四」
于「状态_区域顶」
于(「选择」
于「大」
于(「位与」
于(「加」于「区域起」于(「加」于(「读四」于「状态_模块长」)于「七」))
于(「减」于「零」于「八」))于「区域起」))而
虑「无」者
(「写四」于「状态_页数」于(「内存页数」于「元」))而
虑「无」者
(「写四」于「状态_页上限」于(「选择」于(「是原生」于「元」)于「三二七六七」于「五一二」))
而
「解析各段」于「元」
也。
「挂载磁盘」乃化「有」而「有」也。
「挂载磁盘」者会「无」而
「:文言:原生之系统无块设备,文件皆经底层接口至宿主之文件系统。汉语:原生系统(Linux、macOS)上没有 Virtio 块设备,不挂载执行器内的文件系统(文件经底层接口直达宿主文件系统)。:」
若「是原生」于「元」则
「元」
否则若「块就绪」于「元」
则
虑「果」者「文件系统挂载」于「元」而
若「且」于(「等」于「果」于「错_未挂载」)于(「不等于」于(「读四」于「状态_自动格式化」)于「零」)
则
(虑「无」者「文件系统格式化」于「元」而「元」)
否则
「元」
否则
「元」
也。
「:文言:请求之办:解释循环因请求而退出,入口于此代办,办毕自所存之现场续行。汉语:驱动循环:办请求(加载模块:读实例号写回占位槽;装箱结果:把调用导出的返回值装箱写回占位槽,无结果者补一个装箱的零);处理请求们:解释循环退出后若有请求,就办理、再用 状态_续* 里存的现场重新进入解释循环,直到没有请求(最外层函数真正返回,或续行指令针为零)为止。:」
「装箱返回值」乃化「整数」而化「整数」而「整数」也。
「装箱返回值」者会「钩」而会「栈针」而
若「等」于「钩」于「三」
则
虑「新栈针」者「加」于「栈针」于「八」而
虑「无」者(「写四」于「状态_栈针」于「新栈针」)而
虑「无」者
(「置栈槽」于「新栈针」于「一」于(「装箱整」于「零」)于「零」)
而
「新栈针」
否则
虑「低」者「读四」于(「减」于「栈针」于「八」)而
虑「高」者「读四」于(「减」于「栈针」于「四」)而
虑「引用」者
(若「等」于「钩」于「一」则「装箱整」于「低」否则「装箱」于「低」于「高」)
而
虑「无」者(「置栈槽」于「栈针」于「一」于「引用」于「零」)而
「栈针」
也。
「办请求」乃化「整数」而化「整数」而「整数」也。
「办请求」者会「请求」而会「栈针」而
虑「无」者(「写四」于「状态_栈针」于「栈针」)而
若「等」于「请求」于「请求_加载」
则
虑「实例」者
「加载实例」于(「读四」于「状态_请求参一」)于(「读四」于「状态_请求参二」)而
虑「无」者
(「置栈槽」于「栈针」于「一」于(「装箱整」于「实例」)于「零」)
而
「栈针」
否则
(若「等」于「请求」于「请求_装箱结果」
则
「装箱返回值」于(「读四」于「状态_请求参一」)于「栈针」
否则
「栈针」)
也。
「处理请求们」乃化「整数」而「整数」也。
「处理请求们」者会「栈针」而
虑「请求」者「读四」于「状态_请求」而
若「等零」于「请求」则
「栈针」
否则
虑「无」者(「写四」于「状态_请求」于「零」)而
虑「续」者「办请求」于「请求」于(「读四」于「状态_续栈针」)而
若「等零」于(「读四」于「状态_续指令针」)
则
「续」
否则
虑「新栈」者
「解释循环」
于(「读四」于「状态_续指令针」)
于(「读四」于「状态_续帧针」)
于(「边偏」于(「读四」于「状态_函」))于「续」
而
「处理请求们」于「新栈」
也。
「压测试参数」乃化「整数」而化「整数」而化「整数」而「整数」也。
「压测试参数」者会「位」而会「个数」而会「栈针」而
若「小于」于「位」于「个数」
则
((「宽存」于「栈针」于(「读四」于(「加」于「测试参数」于(「乘」于「位」于「四」)))于「零」);
「压测试参数」于(「加」于「位」于「一」)于「个数」于(「加」于「栈针」于「八」))
否则
「栈针」
也。
「打印结果们」乃化「整数」而化「整数」而化「整数」而「有」也。
「打印结果们」者会「位」而会「个数」而会「栈针」而
若「小于」于「位」于「个数」
则
((「打印数」于(「读四」于(「减」于(「加」于「栈针」于(「乘」于「位」于「八」))
于(「乘」于「个数」于「八」))));
(「写字节」于「一零」);
「打印结果们」于(「加」于「位」于「一」)于「个数」于「栈针」)
否则
「元」
也。
「:文言:启动一次:解析模块、建诸区、初始化、挂载磁盘,行所约之导出函数而印其果;若本任务已被换成新程序(待重启)或为子任务,则不印果。凡以取区域取常驻之区者(底层句柄之表、原生后端之暂存),皆须在初始化堆之前,盖堆起即区域之顶,其后取区域则与堆相叠。汉语:启动一次:完整走一遍启动流程。凡是用 取区域 取常驻缓冲的初始化(底层句柄表、原生后端暂存区)都必须放在 初始化堆 之前:初始化堆 把区域顶设成堆的起点,之后再 取区域 会与堆对象重叠。子任务不打印函数结果;解释循环因待重启退出后,直接返回交给启动循环。:」
「启动一次」乃化「有」而「有」也。
「启动一次」者会「无」而
虑「无」者「解析模块」于「元」而
虑「无」者「初始化区域」于「元」而
虑「无」者「文件系统初始化」于「元」而
虑「无」者「继承当前目录」于「元」而
虑「无」者
(若「是原生」于「元」则「原生继承当前目录」于「元」否则「元」)而
虑「无」者「底柄_初始化」于「元」而
虑「无」者
(若「是原生」于「元」则「原底_初始化」于「元」否则「元」)
而
虑「无」者
(若「是原生」于「元」则「原生异步初始化」于「元」否则「元」)
而
虑「无」者「初始化堆」于「元」而
虑「无」者「初始化全局」于「元」而
虑「无」者「发现宿主类型」于「元」而
虑「无」者「初始化元素」于「元」而
虑「无」者「初始化数据」于「元」而
虑「无」者「挂载磁盘」于「元」而
虑「无」者「加载输入文件」于「元」而
虑「函数号」者
「查导出」于(「选择」于(「不等于」于(「读一」于「测试名」)于「零」)于「测试名」于「串_启动」)
而
虑「无」者
(「若则致命」于(「小于」于「函数号」于「零」)于「一三四」于(「静态串」于『找不到导出函数』))
而
虑「参数栈」者
「压测试参数」于「零」于(「读四」于「测试参数数」)于(「读四」于「状态_值栈基」)
而
虑「终栈一」者「运行或预编」于「函数号」于「参数栈」而
虑「终栈」者「处理请求们」于「终栈一」而
若「或者」
于(「不等于」于(「读四」于「状态_待重启」)于「零」)
于(「不等于」于(「读四」于「状态_是子任务」)于「零」)
则
「元」
否则
「打印结果们」
于「零」
于(「读字段」于(「函数条」于「函数号」)于「函数条_结果数」)
于「终栈」
也。
「:文言:启动之循环:启动一次毕,若待重启则清状态格而再启动,直至无待重启。汉语:启动循环:每次 启动一次 返回后检查 状态_待重启(新程序长度):非零则做 重启准备(清状态格、写回模块长度)再启动一次;这是子进程“换成新程序”的落脚处。:」
「启动循环」乃化「有」而「有」也。
「启动循环」者会「无」而
虑「无」者「启动一次」于「元」而
虑「长」者「读四」于「状态_待重启」而
若「不等于」于「长」于「零」
则
((「重启准备」于「长」);
「启动循环」于「元」)
否则
「元」
也。
「导出:启动:0:0」乃化「有」而「有」也。
「导出:启动:0:0」者会「无」而
虑「无」者
(
若「是林」于「元」则「林装启动」于「元」
否则
若「是苹」于「元」则「苹装启动」于「元」否则「元」
)而
虑「无」者
(若「是原生」于「元」则「原生装载程序」于「元」否则「元」)
而
虑「无」者「启动循环」于「元」而
「捕获冲刷」于「元」
也。
「:文言:浮点指令之测:以合成之值栈召 执行浮点 或 浮饱和截断。汉语:Wasm 浮点指令自检:把甲、乙放到测试栈(浮槽_测栈)上,按操作码是一元还是二元决定栈针,调 执行浮点(运算 = 256 + Wasm 操作码,例如 f64.add 0xA0 传 416)或 浮饱和截断(运算 = 512 + 0xFC 子操作码),把结果槽拷到 浮槽_果。陷阱以退出码 125 结束(宿主夹具捕获)。:」
「浮点指令自检」乃
化「整数」而
化「整数」而
化「整数」而
化「整数」而
化「整数」而
「有」
也。
「浮点指令自检」者会「运算」而会「甲低」而会「甲高」而会「乙低」而会「乙高」而
虑「栈基」者「浮槽_测栈」而
虑「无」者(「宽存」于「栈基」于「甲低」于「甲高」)而
虑「无」者
(「宽存」于(「加」于「栈基」于「八」)于「乙低」于「乙高」)而
若「有符号大等」于「运算」于「五一二」
则
(
虑「新栈」者
「浮饱和截断」于(「减」于「运算」于「五一二」)于「零」
于(「加」于「栈基」于「八」)
而
「拷槽」于「浮槽_果」于(「减」于「新栈」于「八」)
)
否则
(
虑「操作码」者「减」于「运算」于「二五六」
而
虑「二元」者
「或者」
于(「无符号小于」于(「减」于「操作码」于「九一」)于「一二」)
于(「或者」
于(「无符号小于」于(「减」于「操作码」于「一四六」)于「七」)
于(「无符号小于」于(「减」于「操作码」于「一六零」)于「七」))
而
虑「新栈」者
「执行浮点」于「操作码」于(「加」于「栈基」于(「选择」于「二元」于「一六」于「八」))
而
「拷槽」于「浮槽_果」于(「减」于「新栈」于「八」)
)
也。
「:文言:软浮点之测:宿主可直召此门以校双精度之算。汉语:软浮点自检入口(Node 夹具随机对照 V8 的双精度用;裸机不用):运算 0 加、1 减、2 乘、3 除(甲、乙为双精度的低高字),4 整数转浮点(甲为 64 位整数),5 浮点转整数(甲为双精度),结果在 浮槽_果(0x2590)起的 8 字节;7 字符串转小数(甲为串址,乙为串长),6 小数转定点六位串(甲为双精度),串在 浮串缓冲,长度在 浮槽_果 低字;运算 ≥ 256:Wasm 浮点指令(256 加操作码,512 加 0xFC 子操作码),见 浮点指令自检。:」
「导出:浮点运算:5:0」乃
化「整数」而
化「整数」而
化「整数」而
化「整数」而
化「整数」而
「有」
也。
「导出:浮点运算:5:0」者会「运算」而会「甲低」而会「甲高」而会「乙低」而会「乙高」而
虑「无」者(「宽存」于「浮槽_甲」于「甲低」于「甲高」)而
虑「无」者(「宽存」于「浮槽_乙」于「乙低」于「乙高」)而
鉴「运算」而
有「零」则
「浮加减」于「浮槽_果」于「浮槽_甲」于「浮槽_乙」于「零」
或有「一」则
「浮加减」于「浮槽_果」于「浮槽_甲」于「浮槽_乙」于「一」
或有「二」则
「浮乘」于「浮槽_果」于「浮槽_甲」于「浮槽_乙」
或有「三」则
「浮除」于「浮槽_果」于「浮槽_甲」于「浮槽_乙」
或有「四」则
「整转浮」于「浮槽_果」于「浮槽_甲」
或有「五」则
「浮转整」于「浮槽_果」于「浮槽_甲」
或有「六」则
「宽存」于「浮槽_果」于(「浮转定点串」于「浮槽_甲」)于「零」
或有「七」则
「析浮点」于「甲低」于「乙低」于「浮槽_果」
或有「其他」则
「浮点指令自检」于「运算」于「甲低」于「甲高」于「乙低」于「乙高」
也。