测试/回收编码。测试。豫
yuyan · 468 行 · 29701 字节 · 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 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字节串」之书。
寻观「编译器核心」之「网页汇编核心」之「二进制生成」之书。
寻观「编译器核心」之「网页汇编核心」之「回收模块」之书。
寻观「编译器核心」之「网页汇编核心」之「回收编码」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「回收值桥接」之书。
「:
文言:验回收网页汇编之编码:以结构书数模块,编之,与标准汇编器(Wasmtime 之 wat2wasm)所成之字节逐一相校,名段除外。所期之字节录于此篇,不赖外器。
汉语:验证 WasmGC 编码器:用结构化表示写出几个模块并编码,与标准汇编器(Wasmtime 的 wat2wasm)对同一 WAT 组装的结果逐字节比较(不含名字段)。期望字节直接写在本文件里,运行时不依赖外部工具。
:」
「十六进制位值」乃化「整数」而「整数」也。
「十六进制位值」者会「码」而
若「小于」于「码」于「五八」则
「减」于「码」于「四八」
否则
「减」于「码」于「八七」
也。
「十六进制字节串」乃化「字符串」而「字节串」也。
「十六进制字节串」者会「文」而
虑「串」者「字符串转字节串」于「文」而
虑「数」者「除以」于(「字节串长度」于「串」)于「二」而
「网页拼字节」
于(「态射」授以「整数」授以「字节串」
于(「整数范围」于「零」于「数」)
于(会「位」而
虑「高」者
「十六进制位值」于(「字节串取字节」于「串」于(「乘」于「位」于「二」))而
虑「低」者
「十六进制位值」于(「字节串取字节」于「串」于(「加」于(「乘」于「位」于「二」)于「一」))
而
「单字节串」于(「加」于(「乘」于「高」于「一六」)于「低」)))
也。
「首个不同位」乃化「字节串」而化「字节串」而「整数」也。
「首个不同位」者会「甲」而会「乙」而
虑「甲长」者「字节串长度」于「甲」而
虑「乙长」者「字节串长度」于「乙」而
递归虑「找」其化「整数」而「整数」者会「位」而
若「或者」于(「等于」于「位」于「甲长」)于(「等于」于「位」于「乙长」)
则
(若「等于」于「甲长」于「乙长」则「减」于「零」于「一」否则「位」)
否则
若「等于」于(「字节串取字节」于「甲」于「位」)于(「字节串取字节」于「乙」于「位」)
则
「找」于(「加」于「位」于「一」)
否则
「位」
而
「找」于「零」
也。
「核对编码」乃化「字符串」而化「回收项串」而化「字符串」而「有」也。
「核对编码」者会「名」而会「模块」而会「期望文」而
虑「实际」者「回收模块编码」于「模块」而
虑「无」者
「文件系统」之「写文件字节串」于(『yy回收编码测试』附「名」附『.wasm』)于「实际」而
虑「位」者
「首个不同位」于「实际」于(「十六进制字节串」于「期望文」)而
若「小于」于「位」于「零」
则
「打印行」于(「名」附『:与标准汇编器逐字节相同』)
否则
「发生事故」授以「有」
于(「名」附『:自第 』附(「整数表示」于「位」)附『 字节起不同,实际共 』附(「整数表示」
于(「字节串长度」于「实际」))附『 字节』)
也。
「零串」乃化「整数」而「字符串」也。
「零串」者会「数」而
若「等于」于「数」于「零」则
『』
否则
『0』附(「零串」于(「减」于「数」于「一」))
也。
「无参无果」者「回收型内联」于(「罄」授以「回收值型」)
于(「罄」授以「回收值型」)
也。
「:文言:甲:显式之型依声明之序;内书之型匹配后声明之显式型;无同型者追加于末。汉语:用例甲:显式类型按声明顺序;内联类型可匹配后面才声明的显式类型;没有相同类型的追加到末尾。:」
「用例甲」者
「回收项列」
于(「列」【
「回收类型项」于『$a』于(「回收函数型」于(「列」【「回收整三二」】)于(「罄」授以「回收值型」)),
「回收函数项」
于『$f』
于(「回收型内联」于(「列」【「回收整六四」】)于(「列」【「回收整六四」】))
于(「列」【『$x』】)
于(「罄」授以「回收局部」)
于(「回收单令」于(「回收局部取」于『$x』)),
「回收类型项」于『$b』于(「回收函数型」于(「列」【「回收整六四」】)于(「列」【「回收整六四」】)),
「回收函数项」
于『$g』
于(「回收型内联」于(「列」【「回收整三二」】)于(「罄」授以「回收值型」))
于(「列」【『$y』】)
于(「罄」授以「回收局部」)
于(「回收单令」于「回收空操作」),
「回收函数项」
于『$h』
于(「回收型内联」于(「列」【「回收浮六四」】)于(「罄」授以「回收值型」))
于(「列」【『$z』】)
于(「罄」授以「回收局部」)
于(「回收单令」于「回收空操作」)
】)
也。
「核对编码」
于『甲』于「用例甲」于
『0061736d01000000010e0360017f0060017e017e60017c000304030100020a0e03040020000b0300010b0300010b』。
「:文言:乙:局部之组、引用之型、小数之位、数据计数、表与元素、被动数据。汉语:用例乙:局部变量分组、引用类型、各种 f64 常量、数据计数段、表与元素段、被动数据段。:」
「最大小数文」者
『179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368』
也。
「微小数文」者
『000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004940656458412465441765687928682213723651』
也。
「用例乙」者
「回收项列」
于(「列」【
「回收类型项」于『$bytes』于(「回收数组型」于(「阳」与「回收存八」)),
「回收函数项」
于『$f0』
于(「回收型内联」于(「列」【「回收等引用」】)于(「列」【「回收等引用」】))
于(「列」【『$p』】)
于(「列」【
『$a』与「回收整三二」,
『$b』与「回收整三二」,
『$c』与「回收整六四」,
『$d』与「回收整三二」,
『$e』与(「回收名引用」于『$bytes』)
】)于(「回收令列」
于(「列」【
「回收浮六四常」于『3』于『14』,
「回收弃」,
「回收浮六四常」于『0』于『』,
「回收弃」,
「回收浮六四常」于『12345678』于『5』,
「回收弃」,
「回收浮六四常」于『0』于『000001』,
「回收弃」,
「回收浮六四常」于「最大小数文」于『』,
「回收弃」,
「回收浮六四常」于『0』于「微小数文」,
「回收弃」,
「回收整三二常」于「零」,
「回收整三二常」于「三」,
「回收数组新数据」于『$bytes』于『$d0』,
「回收弃」,
「回收整三二常」于(「整数操作」之「理解整数」于『4294967295』),
「回收弃」,
「回收整六四常」于(「减」
于(「减」于「零」于(「整数操作」之「理解整数」于『9223372036854775807』))
于「一」),
「回收弃」,
「回收局部取」于『$p』
】)),
「回收表项」于『』于「三」,
「回收元素项」
于『』
于(「回收单令」于(「回收整三二常」于「零」))
于(「列」【『$f0』,『$f0』】),
「回收数据项」于『$d0』于(「字符串转字节串」于『豫』)
】)
也。
「核对编码」
于『乙』
于「用例乙」
于『0061736d010000000109025e780160016d016d030201010404017000030908010041000b0200000c01010a63016104027f017e017f016400441f85eb51b81e09401a4400000000000000001a44000000d0298c67411a448dedb5a0f7c6b03e1a44ffffffffffffef7f1a4400c84e676dc18b001a41004103fb0900001a417f1a428080808080808080807f1a20000b0b06010103e8b1ab』。
「:文言:丙:导入、结构与数组、若与否则、块与环之标号、多果之块、试表与抛、标签、全局、导出。汉语:用例丙:导入、结构体与数组、if/else、块与循环的标号、多结果块、try_table 与 throw、标签、全局变量、导出。:」
「用例丙」者
「回收项列」
于(「列」【
「回收导入函数项」
于『yuyan:gc-host/v1』
于『call』
于『$host』
于(「回收型内联」于(「列」【「回收等引用」,「回收等引用」】)于(「列」【「回收等引用」】)),
「回收类型项」于『$big』于(「回收结构型」于(「列」【「阴」与(「回收存值」于「回收整六四」)】)),
「回收类型项」于『$tuple』于(「回收数组型」于(「阳」与(「回收存值」于「回收等引用」))),
「回收类型项」于『$bytes』于(「回收数组型」于(「阳」与「回收存八」)),
「回收函数项」
于『$box』
于(「回收型内联」于(「列」【「回收整六四」】)于(「列」【「回收等引用」】))
于(「列」【『$n』】)
于(「罄」授以「回收局部」)
于(「回收令列」
于(「列」【
「回收局部取」于『$n』,
「回收整六四常」于(「减」于「零」于(「整数操作」之「理解整数」于『1073741824』)),
「回收整六四有符号大等」,
「回收局部取」于『$n』,
「回收整六四常」于(「整数操作」之「理解整数」于『1073741823』),
「回收整六四有符号小等」,
「回收整三二与」,
「回收若」于『』于(「回收块单果」于「回收等引用」),
「回收局部取」于『$n』,
「回收整六四截三二」,
「回收转小整」,
「回收否则」,
「回收局部取」于『$n』,
「回收结构新」于『$big』,
「回收结束」
】)),
「回收函数项」
于『$unbox』
于(「回收型内联」于(「列」【「回收等引用」】)于(「列」【「回收整六四」】))
于(「列」【『$v』】)
于(「罄」授以「回收局部」)
于(「回收令列」
于(「列」【
「回收局部取」于『$v』,
「回收引用测」于「阴」于「回收堆小整」,
「回收若」于『』于(「回收块单果」于「回收整六四」),
「回收局部取」于『$v』,
「回收引用转」于「阴」于「回收堆小整」,
「回收小整取有符号」,
「回收整三二有符号扩六四」,
「回收否则」,
「回收局部取」于『$v』,
「回收引用转」于「阴」于(「回收堆名」于『$big』),
「回收结构取」于『$big』于「零」,
「回收结束」
】)),
「回收标签项」
于『$escape』
于(「回收型内联」于(「列」【「回收等引用」,「回收等引用」】)于(「罄」授以「回收值型」)),
「回收全局项」
于『$exception』
于「回收等引用」
于「阳」
于(「回收单令」于(「回收引用空」于「回收堆等」)),
「回收全局项」
于『$counter』
于「回收整三二」
于「阳」
于(「回收单令」于(「回收整三二常」于「零」)),
「回收函数项」
于『$int_string』
于(「回收型内联」于(「列」【「回收等引用」】)于(「列」【「回收等引用」】))
于(「列」【『$v』】)
于(「列」【
『$n』与「回收整六四」,
『$rest』与「回收整六四」,
『$negative』与「回收整三二」,
『$length』与「回收整三二」,
『$position』与「回收整三二」,
『$out』与(「回收名引用」于『$bytes』)
】)于(「回收令列」
于(「列」【
「回收局部取」于『$v』,
「回收调用」于『$unbox』,
「回收局部暂存」于『$n』,
「回收整六四常」于「零」,
「回收整六四有符号小于」,
「回收局部存」于『$negative』,
「回收局部取」于『$negative』,
「回收若」于『』于「回收块无果」,
「回收整六四常」于「零」,
「回收局部取」于『$n』,
「回收整六四减」,
「回收局部存」于『$n』,
「回收结束」,
「回收局部取」于『$n』,
「回收局部存」于『$rest』,
「回收整三二常」于「一」,
「回收局部存」于『$length』,
「回收块」于『$counted』于「回收块无果」,
「回收循环」于『$count』于「回收块无果」,
「回收局部取」于『$rest』,
「回收整六四常」于「一零」,
「回收整六四无符号小于」,
「回收条件跳」于(「回收名标」于『$counted』),
「回收局部取」于『$rest』,
「回收整六四常」于「一零」,
「回收整六四无符号除」,
「回收局部存」于『$rest』,
「回收局部取」于『$length』,
「回收整三二常」于「一」,
「回收整三二加」,
「回收局部存」于『$length』,
「回收跳」于(「回收名标」于『$count』),
「回收结束」,
「回收结束」,
「回收局部取」于『$length』,
「回收局部取」于『$negative』,
「回收整三二加」,
「回收局部暂存」于『$position』,
「回收数组新默认」于『$bytes』,
「回收局部存」于『$out』,
「回收循环」于『$digits』于「回收块无果」,
「回收局部取」于『$position』,
「回收整三二常」于「一」,
「回收整三二减」,
「回收局部存」于『$position』,
「回收局部取」于『$out』,
「回收局部取」于『$position』,
「回收局部取」于『$n』,
「回收整六四常」于「一零」,
「回收整六四无符号余」,
「回收整六四截三二」,
「回收整三二常」于「四八」,
「回收整三二加」,
「回收数组存」于『$bytes』,
「回收局部取」于『$n』,
「回收整六四常」于「一零」,
「回收整六四无符号除」,
「回收局部暂存」于『$n』,
「回收整六四常」于「零」,
「回收整六四不等」,
「回收条件跳」于(「回收名标」于『$digits』),
「回收结束」,
「回收局部取」于『$negative』,
「回收若」于『』于「回收块无果」,
「回收局部取」于『$out』,
「回收整三二常」于「零」,
「回收整三二常」于「四五」,
「回收数组存」于『$bytes』,
「回收结束」,
「回收局部取」于『$out』
】)),
「回收函数项」
于『$catcher』
于(「回收型内联」于(「列」【「回收等引用」】)于(「列」【「回收等引用」】))
于(「列」【『$a』】)
于(「列」【『$r』与「回收等引用」】)
于(「回收令列」
于(「列」【
「回收块」
于『$l0』
于(「回收块单果」于「回收等引用」),
「回收块」
于『$l1』
于(「回收块多果」于(「列」【「回收等引用」,「回收等引用」】)),
「回收试表」
于『』
于(「回收块单果」于「回收等引用」)
于(「列」【「回收捕标签」于『$escape』于(「回收名标」于『$l1』)】),
「回收局部取」于『$a』,
「回收局部取」于『$a』,
「回收抛」于『$escape』,
「回收结束」,
「回收跳」于(「回收名标」于『$l0』),
「回收结束」,
「回收弃」,
「回收结束」,
「回收局部存」于『$r』,
「回收局部取」于『$r』,
「回收局部取」于『$r』,
「回收调用」于『$host』
】)),
「回收全局项」
于『$yy_tuple』
于(「回收名引用」于『$tuple』)
于「阴」
于(「回收单令」于(「回收数组新定」于『$tuple』于「零」)),
「回收导出项」
于『yy_tuple』于「回收出全局」于『$yy_tuple』,
「回收全局项」
于『$yy_big』
于(「回收名引用」于『$big』)
于「阴」
于(「回收令列」于(「列」【「回收整六四常」于「零」,「回收结构新」于『$big』】))
,
「回收导出项」
于『yy_big』于「回收出全局」于『$yy_big』,
「回收函数项」
于『$_start』
于「无参无果」
于(「罄」授以「字符串」)
于(「罄」授以「回收局部」)
于(「回收令列」于(「列」【「回收全局取」于『$counter』,「回收弃」】)),
「回收导出项」
于『_start』
于「回收出函数」于『$_start』
】)
也。
「核对编码」
于『丙』
于「用例丙」
于『0061736d01000000012d0a5f017e005e6d015e780160026d6d016d60017e016d60016d017e60026d6d0060016d016d6000026d6d60000002190110797579616e3a67632d686f73742f76310463616c6c000303060504050707090d03010006061c046d01d06d0b7f0141000b640100fb0801000b6400004200fb00000b071e030879795f7475706c6503020679795f6269670303065f737461727400050af401052300200042808080807c59200042ffffffff035771046d2000a7fb1c052000fb00000b0b1c002000fb146c047e2000fb166cfb1dac052000fb1600fb0200000b0b870103027e037f016402200010022201420053210320030440420020017d21010b2001210241012104024003402002420a540d012002420a802102200441016a21040c000b0b200420036a2205fb070221060340200541016b2105200620052001420a82a741306afb0e022001420a8022014200520d000b2003044020064100412dfb0e020b20060b2201016d026d02081f6d010000002000200008000b0c010b1a0b21012001200110000b050023011a0b』。
「:文言:丁:次正规之数、下溢为零、舍入。汉语:用例丁:非规格化数、下溢为零、十进制到二进制的舍入。:」
「用例丁」者
「回收项列」
于(「列」【
「回收函数项」
于『$s』
于「无参无果」
于(「罄」授以「字符串」)
于(「罄」授以「回收局部」)
于(「回收令列」
于(「列」【
「回收浮六四常」于『0』于((「零串」于「三二三」)附『5』),
「回收弃」,
「回收浮六四常」于『0』于((「零串」于「三一零」)附『123456789』),
「回收弃」,
「回收浮六四常」于『0』于((「零串」于「四零零」)附『1』),
「回收弃」,
「回收浮六四常」于『1』于『』,
「回收弃」,
「回收浮六四常」于『0』于『1』,
「回收弃」,
「回收浮六四常」于『9007199254740993』于『』,
「回收弃」
】))
】)
也。
「核对编码」
于『丁』
于「用例丁」
于『0061736d01000000010401600000030201000a40013e004401000000000000001a44c1c6aecb450200001a4400000000000000001a44000000000000f03f1a449a9999999999b93f1a4400000000000040431a0b』。
「:文言:戊:杂令之填内存,双道之常(负数依补码),非自然之对齐,车道之取换。汉语:用例戊:0xFC 前缀的 memory.fill、i64x2 向量常量(负数按补码,含最小与最大 i64)、非自然对齐的 v128.store、车道的取出与替换。:」
「六四最大」者「九二二三三七二零三六八五四七七五八零七」也。
「用例戊」者
「回收项列」
于(「列」【
「回收内存项」于『$m』于「一」于(「可无」授以「整数」),
「回收函数项」
于『$v』
于(「回收型内联」于(「列」【「回收整三二」】)于(「罄」授以「回收值型」))
于(「列」【『$p』】)
于(「罄」授以「回收局部」)
于(「回收令列」
于(「列」【
「回收局部取」于『$p』,
「回收整六四双常」于「五」于(「减」于「零」于「三」),
「回收向量内存码」于「一一」于(「三」与「一六」),
「回收局部取」于『$p』,
「回收整三二常」于「零」,
「回收整三二常」于「六四」,
「回收内存填」,
「回收局部取」于『$p』,
「回收整六四常」于「七」,
「回收整六四双铺」,
「回收整六四常」于「九」,
「回收整六四双换道」于「一」,
「回收整六四双常」
于(「减」于(「减」于「零」于「六四最大」)于「一」)
于「六四最大」,
「回收整六四双减」,
「回收整六四双取道」于「零」,
「回收整六四存」于「零」
】))
】)
也。
「核对编码」
于『戊』
于「用例戊」
于『0061736d0100000001050160017f000302010005030100010a4c014a002000fd0c0500000000000000fdfffffffffffffffd0b03102000410041c000fc0b0020004207fd124209fd1e01fd0c0000000000000080ffffffffffffff7ffdd101fd1d003703000b』。
「:文言:己:宿主之值桥,与旧文 值桥接.wat 经标准汇编器所成者同,兼验八位之取存。汉语:用例己:节点与浏览器宿主的值桥模块,须与删除前的 值桥接.wat 经标准汇编器组装的结果逐字节相同,同时覆盖 i32.load8_u 与 i32.store8。:」
「核对编码」
于『己』
于「回收值桥接」
于『0061736d0100000001450e5f017e005e6d015f017c005e780160016d017f60016d017e60017e016d60016d017c60017c01640260026d7f016d60036d7f6d0060017f01640160016d0060017f016403030d0c040506070804090a0b040c0d05030100010788010d066d656d6f72790200046b696e64000003696e740001076e65775f696e74000205666c6f61740003096e65775f666c6f61740004097475706c655f6c656e0005097475706c655f6765740006097475706c655f7365740007096e65775f7475706c6500080962797465735f6c656e00090962797465735f6f7574000a0862797465735f696e000b0aba020c43002000d1044041000f0b2000fb146c044041010f0b2000fb1403044041020f0b2000fb1401044041030f0b2000fb1400044041040f0b2000fb1402044041050f0b000b1c002000fb146c047e2000fb166cfb1dac052000fb1600fb0200000b0b2300200042808080807c59200042ffffffff035771046d2000a7fb1c052000fb00000b0b0b002000fb1602fb0202000b07002000fb00020b09002000fb1601fb0f0b0c002000fb16012001fb0b010b0e002000fb160120012002fb0e010b07002000fb07010b09002000fb1603fb0f0b3402016403027f2000fb16032201fb0f210202400340200320024f0d01200320012003fb0d033a0000200341016a21030c000b0b0b3202016403017f2000fb0703210102400340200220004f0d012001200220022d0000fb0e03200241016a21020c000b0b20010b』。