豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 345 行 · 18891 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字节串」之书。
寻观「癸象工具」之「总集」之书。
寻观「癸象工具」之「癸象访问」之书。
寻观「云工宿主」之「核心」之书。

「:文言:一条目至多一千六百万字节,出至多一亿二千八百万字节,皆宿主值桥与内存所限。汉语:输入不得超过宿主值桥的 16 MiB 交换上限;最大输出不得超过 128 MiB。:」
「输入上限」乃「整数」也。
「输入上限」者「一六七七七二一六」也。

「输出上限」乃「整数」也。
「输出上限」者「一三四二一七七二八」也。

「:文言:由整数之列造字节串,小数据用。汉语:把小整数列表逐项转成单字节并连接,只用于十字节以内的固定头尾。:」
「造字节串」乃化(「列」于「整数」)而「字节串」也。
「造字节串」者会「诸」而
  鉴「诸」而
    有「罄」则(「空字节串」于「元」)
    或有(「缀」于「首」于「余」)则(「拼接字节串」于(「单字节串」于「首」)于(「造字节串」于「余」))
也。

「:文言:栈顶为最新,新块入栈,若其下者不逾其倍则并之,使总复制量为 n log n。汉语:输出块按到达顺序压栈;栈顶是最新块,只要栈顶不超过新块的两倍就与新块合并,保证总复制量为 O(n log n),避免逐块整体复制。:」
「压入合并」乃化(「列」于「字节串」)而化「字节串」而(「列」于「字节串」)也。
「压入合并」者会「栈」而会「新」而
  鉴「栈」而
    有「罄」则(「缀」授以「字节串」于「新」于「罄」)
    或有(「缀」于「顶」于「下」)则(
      若「大于」于(「字节串长度」于「顶」)于(「乘」于(「字节串长度」于「新」)于「二」)
      则
        (「缀」授以「字节串」于「新」于「栈」)
      否则
        (「压入合并」于「下」于(「拼接字节串」于「顶」于「新」))
    )
也。

「折叠合并」乃化(「列」于「字节串」)而化「字节串」而「字节串」也。
「折叠合并」者会「栈」而会「积」而
  鉴「栈」而
    有「罄」则「积」
    或有(「缀」于「顶」于「下」)则(「折叠合并」于「下」于(「拼接字节串」于「顶」于「积」))
也。

「取消读取」乃化「字符串」而「有」也。
「取消读取」者会「读器」而
  虑「无」者
    「云工调用方法安全」于「读器」于『cancel』于『["解压输出超过上限"]』
  而
  「元」
也。

「收尾读取」乃化「字符串」而「有」也。
「收尾读取」者会「读器」而
  虑「无」者「云工调用方法安全」于「读器」于『releaseLock』于『[]』而
  「云工释放句柄」于「读器」
也。

「:文言:逐块取解压之出,先验其长再取其字,逾限即取消而止;流败为二,尽读为零。汉语:逐块读取输出,先读块长度再决定是否复制进 Wasm;累计超过最大输出立即取消读取并返回 1,流出错返回 2,读完返回 0 与全部输出。:」
「读尽解压流」乃化「字符串」而化「整数」而(「整数」合「字节串」)也。
「读尽解压流」者会「读器」而
  会「最大」而
    递归虑「循」其化(「列」于「字节串」)而化「整数」而(「整数」合「字节串」)者会「栈」而会「总」而
    虑「果」者「云工读取流块安全」于「读器」而
    若「非」于(「果」中「零」)则「二」与(「空字节串」于「元」)否则
      虑「解析」者「癸象解析」于(「果」中「一」)
      而
      若「癸象字段爻」于「解析」于『已终』于「阴」则
        「零」与(「折叠合并」于「栈」于(「空字节串」于「元」))
      否则
        虑「号」者「癸象字段字符串」于「解析」于『字节句柄』于『』
        而
        若「串相等」于「号」于『』则
          「发生事故」授以(「整数」合「字节串」)于『解压流块缺少字节句柄』
        否则
          虑「长」者
            「理解整数」于(「云工读取属性」于「号」于『byteLength』)
          而
          若「大于」于「长」于「输入上限」则(
            虑「无」者「云工释放句柄」于「号」
            而
            虑「无」者「取消读取」于「读器」而
            「发生事故」授以(「整数」合「字节串」)
            于『宿主解压流的单块超过值桥 16 MiB 交换上限』
          )否则
            若「大于」于(「加」于「总」于「长」)于「最大」则
              (虑「无」者「云工释放句柄」于「号」而虑「无」者「取消读取」于「读器」而「一」与(「空字节串」于「元」))
            否则
              (
                虑「块」者「云工句柄取字节」于「号」
                而
                虑「无」者「云工释放句柄」于「号」而
                「循」
                  于(「压入合并」于「栈」于「块」)
                  于(「加」于「总」于「长」)
              )
    而
    「循」于(「罄」授以「字节串」)于「零」
也。

「:文言:数据入 Blob,由 Blob 流经原生解压流;用毕即释诸柄。汉语:把数据 Blob 的流接到原生 DecompressionStream,读尽或超限后释放读取器、输出流、转换流和源流句柄;数据 Blob 句柄由调用者释放。:」
「解压数据流」乃
  化「字符串」而
  化「字符串」而
  化「整数」而
  (「整数」合「字节串」)
也。
「解压数据流」者会「数据号」而会「格式」而会「最大」而
  虑「源流」者「云工物字流」于「数据号」而
  虑「转换」者「云工解压流创建」于「格式」而
  虑「输出流」者「云工流接转换」于「源流」于「转换」而
  虑「读器」者「云工打开可读流」于「输出流」而
  虑「果」者「读尽解压流」于「读器」于「最大」而
  虑「无」者「收尾读取」于「读器」而
  虑「无」者「云工释放句柄」于「输出流」而
  虑「无」者「云工释放句柄」于「转换」而
  虑「无」者「云工释放句柄」于「源流」而
  「果」
也。

「:文言:最大输出限一至一亿二千八百万。汉语:校验最大输出范围,越界抛出豫言异常。:」
「校最大输出」乃化「整数」而「有」也。
「校最大输出」者会「最大」而
  若「或者」于(「小于」于「最大」于「一」)于(「大于」于「最大」于「输出上限」)则
    「发生事故」授以「有」于『解压最大输出须在 1 至 134217728 字节之间』
  否则
    「元」
也。

「校输入长度」乃化「字节串」而「有」也。
「校输入长度」者会「数据」而
  若「大于」于(「字节串长度」于「数据」)于「输入上限」则
    「发生事故」授以「有」于『解压输入超过 16 MiB』
  否则
    「元」
也。

「解压原始压缩」乃化「字节串」而化「整数」而(「整数」合「字节串」)也。
「解压原始压缩」者会「数据」而会「最大」而
  虑「无」者「校最大输出」于「最大」而
  虑「无」者「校输入长度」于「数据」而
  虑「数据号」者「云工物字造字节」于「数据」于『』而
  虑「果」者「解压数据流」于「数据号」于『deflate-raw』于「最大」而
  虑「无」者「云工释放句柄」于「数据号」而
  「果」
也。

「:文言:四字节小端,值先限于零至二之三十二次方减一。汉语:把 0 至 4294967295 的整数写成 4 字节小端。:」
「小端四字节」乃化「整数」而「字节串」也。
「小端四字节」者会「值」而
  虑「甲」者
    「减」于「值」于(「乘」于(「除以」于「值」于「二五六」)于「二五六」)而
    虑「余一」者「除以」于「值」于「二五六」而
    虑「乙」者
      「减」于「余一」于(「乘」于(「除以」于「余一」于「二五六」)于「二五六」)而
      虑「余二」者「除以」于「余一」于「二五六」而
      虑「丙」者
        「减」于「余二」于(「乘」于(「除以」于「余二」于「二五六」)于「二五六」)而
        虑「丁」者「除以」于「余二」于「二五六」而
        「造字节串」于(「列」【「甲」,「乙」,「丙」,「丁」】)
也。

「:文言:存储块之首五字节:末标、长、长之反,皆小端。汉语:deflate 存储块头:BFINAL 与 BTYPE=00 合成一字节,随后是 LEN 与 NLEN(各两字节小端)。:」
「存储块头」乃化「爻」而化「整数」而「字节串」也。
「存储块头」者会「末」而会「长」而
  虑「补」者「减」于「六五五三五」于「长」而
  虑「长高」者「除以」于「长」于「二五六」而
  虑「补高」者「除以」于「补」于「二五六」而
  「造字节串」于(「列」【
    (若「末」则「一」否则「零」),
    (「减」于「长」于(「乘」于「长高」于「二五六」)),
    「长高」,
    (「减」于「补」于(「乘」于「补高」于「二五六」)),
    「补高」
  】)
也。

「:文言:存储条目分块(每块至多六万五千五百三十五字节),块头为小 Blob,块体为数据 Blob 之切片,累积句柄反序。汉语:把存储方法的数据拆成存储块:块头是新建的小 Blob,块体是原数据 Blob 的切片,全部在宿主内完成;返回按逆序累积的句柄列表,空数据也产生一个末块。:」
「存储块部件」乃
  化「字符串」而
  化「整数」而
  化「整数」而
  化(「列」于「字符串」)而
  (「列」于「字符串」)
也。
「存储块部件」者会「数据号」而会「总长」而会「偏移」而会「积」而
  虑「余」者「减」于「总长」于「偏移」而
  虑「长」者
    若「大于」于「余」于「六五五三五」则「六五五三五」否则「余」而
    虑「末」者「等于」于「余」于「长」而
    虑「头号」者
      「云工物字造字节」于(「存储块头」于「末」于「长」)于『』
    而
    虑「头积」者「缀」授以「字符串」于「头号」于「积」而
    虑「体积」者
      若「等于」于「长」于「零」则
        「头积」
      否则
        (「缀」授以「字符串」
          于(「云工物字切片」于「数据号」于「偏移」于(「加」于「偏移」于「长」)于『』)
          于「头积」)
    而
    若「末」则
      「体积」
    否则
      (「存储块部件」于「数据号」于「总长」于(「加」于「偏移」于「长」)于「体积」)
也。

「:文言:十字节 gzip 首。汉语:gzip 固定头:1f 8b 08 00、四字节修改时零、XFL 零、OS 未知(ff)。:」
「压缩包头」乃化「有」而「字节串」也。
「压缩包头」者会「无」而
  「造字节串」于(「列」【「三一」,「一三九」,「八」,「零」,「零」,「零」,「零」,「零」,「零」,「二五五」】)
也。

「部件引用们」乃化(「列」于「字符串」)而(「列」于「字符串」)也。
「部件引用们」者会「诸号」而
  (「态射」授以「字符串」授以「字符串」于「诸号」于(会「号」而「云工句柄引用文」于「号」))
也。

「释放诸柄」乃化(「列」于「字符串」)而「有」也。
「释放诸柄」者会「诸号」而
  鉴「诸号」而
    有「罄」则「元」
    或有(「缀」于「首」于「余」)则(虑「无」者「云工释放句柄」于「首」而「释放诸柄」于「余」)
也。

「:文言:以首、体、尾造 gzip 容器;首与尾为本函所造,用毕即释,体部件由调用者管理。汉语:把 gzip 头、deflate 体部件列表和 CRC-32 加 ISIZE 尾拼成一个宿主 Blob,返回容器句柄;只释放本函自己创建的头、尾句柄,体部件句柄归调用者。:」
「造归档容器」乃化(「列」于「字符串」)而化「整数」而化「整数」而「字符串」也。
「造归档容器」者会「体部件」而会「校验」而会「大小」而
  虑「头号」者「云工物字造字节」于(「压缩包头」于「元」)于『』而
  虑「尾号」者
    「云工物字造字节」于(「拼接字节串」于(「小端四字节」于「校验」)于(「小端四字节」于「大小」))于『』而
    虑「诸部」者
      「附加」授以「字符串」
      于(「缀」授以「字符串」于「头号」于「体部件」)
      于(「缀」授以「字符串」于「尾号」于(「罄」授以「字符串」))而
      虑「容器」者
        「云工物字造组合」
          于(『[』附(「间合」于『,』于(「部件引用们」于「诸部」))附『]』)
          于『{}』而
          虑「无」者「云工释放句柄」于「头号」而
          虑「无」者「云工释放句柄」于「尾号」而
          「容器」
也。

「:文言:存储之出即其入,长与限、与预期皆可径较,不必启流;deflate 者先以 gzip 之法一遍而验,败则以 raw 复解一遍,分二、三与一。汉语:存储方法的输出就是输入本身,长度与最大输出、预期大小可直接比较;deflate 方法先把条目包成 gzip 容器交给原生解压流,平台校验 CRC-32 与 ISIZE,成功为状态 0;失败时再用 raw deflate 复解一遍并按同一上限累计:超限为 1,流本身损坏为 2,流合法则为 3。这样无论宿主流是先交出块还是先报错,最终状态都相同。:」
「归档条目主流程」乃
  化「字节串」而
  化「整数」而
  化「整数」而
  化「整数」而
  化「整数」而
  (「整数」合「字节串」)
也。
「归档条目主流程」者会「数据」而会「方法」而会「校验」而会「预期」而会「最大」而
  虑「数据号」者「云工物字造字节」于「数据」于『』而
  虑「体部件」者
    (
      若「等于」于「方法」于「零」
      则
        (「反转」授以「字符串」于(「存储块部件」
          于「数据号」
          于(「字节串长度」于「数据」)于「零」
            于(「罄」授以「字符串」)))
      否则
        (「缀」授以「字符串」于「数据号」于(「罄」授以「字符串」))
    )而
    虑「容器号」者「造归档容器」于「体部件」于「校验」于「预期」而
    虑「无」者
      (若「等于」于「方法」于「零」则「释放诸柄」于「体部件」否则「元」)
    而
    虑「首果」者「解压数据流」于「容器号」于『gzip』于「最大」而
    虑「无」者「云工释放句柄」于「容器号」而
    虑「果」者
      (
        若「等于」于(「首果」中「零」)于「零」
        则
          (
            若「等于」于(「字节串长度」于(「首果」中「一」))于「预期」则「首果」否则「三」与(「空字节串」于「元」)
          )
        否则
          (
            若「等于」于(「首果」中「零」)于「二」
            则
              (
                若「等于」于「方法」于「零」
                则
                  「三」与(「空字节串」于「元」)
                否则
                  (
                    虑「原果」者
                      「解压数据流」于「数据号」于『deflate-raw』于「最大」
                    而
                    若「等于」于(「原果」中「零」)于「零」则「三」与(「空字节串」于「元」)否则「原果」
                  )
              )
            否则
              「首果」
          )
      )
    而
    虑「无」者「云工释放句柄」于「数据号」而
    「果」
也。

「解压归档条目」乃
  化「字节串」而
  化「整数」而
  化「整数」而
  化「整数」而
  化「整数」而
  (「整数」合「字节串」)
也。
「解压归档条目」者会「数据」而会「方法」而会「校验」而会「预期」而会「最大」而
  虑「无」者「校最大输出」于「最大」而
  虑「无」者「校输入长度」于「数据」而
  虑「无」者
    (
      若「且」于(「非」于(「等于」于「方法」于「零」))于(「非」于(「等于」于「方法」于「八」))则
        「发生事故」授以「有」于『归档条目方法须为 0(存储)或 8(deflate)』
      否则
        「元」
    )而
    虑「无」者
      (
        若「或者」于(「小于」于「校验」于「零」)于(「大于」于「校验」于「四二九四九六七二九五」)则
          「发生事故」授以「有」于『CRC-32 须在 0 至 4294967295 之间』
        否则
          「元」
      )
    而
    虑「无」者
      (
        若「或者」于(「小于」于「预期」于「零」)于(「大于」于「预期」于「最大」)则
          「发生事故」授以「有」于『预期解压大小须在 0 至最大输出之间』
        否则
          「元」
      )
    而
    若「且」于(「等于」于「方法」于「零」)于(「大于」于(「字节串长度」于「数据」)于「最大」)则
      「一」与(「空字节串」于「元」)
    否则
      若「且」于(「等于」于「方法」于「零」)于(「非」于(「等于」于(「字节串长度」于「数据」)于「预期」))则
        「三」与(「空字节串」于「元」)
      否则
        「归档条目主流程」于「数据」于「方法」于「校验」于「预期」于「最大」
也。