豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 102 行 · 6747 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字节串」之书。
寻观「编译器核心」之「网页汇编核心」之「模块结构」之书。
寻观「编译器核心」之「网页汇编核心」之「状态模块」之书。
寻观「裸机后端」之「机器编码」之书。
寻观「裸机后端」之「降级目标」之书。
寻观「裸机后端」之「存储镜像」之书。
寻观「裸机后端」之「马赫格式写出」之书。
寻观「裸机后端」之「整数降级」之书。
寻观「裸机后端」之「预编转译」之书。

「:文言:苹果之可执行:以苹果目标降其模块,代码入文本段;元数据、页数、线性内存入数据段,数据段距映像之始六十四兆字节;导入之槽由 dyld 绑之;附特设之签名。汉语:生成 macOS 可执行文件(Mach-O,位置无关,由 dyld 装载):以 macOS 目标把整数 Wasm 状态模块降级;代码放进 __TEXT;从元数据起的尾部(数据段描述、页数、初始线性内存)放进 __DATA,__DATA 固定在映像起址后 64 MiB,其内存长覆盖传参暂存、栈、导入槽与动态区(零填充)。导入槽按槽序绑定 libSystem 符号(第 0 个是 ___error)。零页取 4 GiB;文件带特设代码签名。臂为真生成 arm64(x86-64 尚未实现)。:」
「:文言:带尾块之苹果可执行:块置于签名之前(见马赫格式写出之尾块)。汉语:带尾块的 macOS 可执行文件(尾块放在签名之前,见 马赫格式写出 的尾块说明)。:」
「苹果导出名」乃化(「列」于「网页导出」)而化「整数」而「字符串」也。
「苹果导出名」者会「导出们」而会「号」而
  鉴「导出们」而
    有「罄」则『执行器函数』附(「整数表示」于「号」)
    或有「缀」于「首」于「尾」则
      若「且」于(「等于」于(「首」中「一」)于「号」)于(「非」于(「串相等」于(「首」中「零」)于『预编起号』))则
        「首」中「零」
      否则
        「苹果导出名」于「尾」于「号」
也。

「:文言:调试之符号:并入后之模块每函数一符;预编之函数取客体名段之名,冠以“客:”;余者取导出之名,无则“执行器函数N”。址取近连之符号表,换为文本段之虚址。唯供 sample、lldb 示名。汉语:调试符号:并入后模块的每个函数一个符号。预编函数用客体 name 段里的名字,加前缀“客:”;其余函数用导出名,没有导出名就叫“执行器函数N”。地址从最近一次连接的符号表里查函数标签,换算成 __text 里的虚址(代码虚址 + 标签地址 − 连接基址)。只供 sample、lldb 显示函数名。:」
「苹果调试符号们」乃
  化「降级目标」而
  化「网页状态模块」而
  (「列」于(「字节串」合「整数」))
也。
「苹果调试符号们」者会「标」而会「状态」而
  虑「表」者「读引用」授以「机器符号表」于「机器最近表」而
  虑「网模」者(「状态」中「零」)中「零」而
  虑「导出们」者「网模」中「三」而
  虑「总数」者
    「加」于(「长度」授以「网页导入」于(「网模」中「一」))
    于(「长度」授以「网页函数」于(「网模」中「二」))
  而
  虑「基」者「目标用户基址」于「标」而
  虑「码址」者「马赫代码虚址」于「四二九四九六七二九六」而
  「态射」授以「整数」授以(「字节串」合「整数」)
  于(「整数范围」于「零」于「总数」)
  于(会「号」而
  虑「客名」者「预编客名」于「号」而
  虑「名」者
    若「大于」于(「字节串长度」于「客名」)于「零」则
      「拼接字节串」于(「字符串转字节串」于『客:』)于「客名」
    否则
      「字符串转字节串」于(「苹果导出名」于「导出们」于「号」)
  而
  「名」与(「加」于「码址」于(「减」于(「机器表寻」于「表」于(「裸机函数名」于「号」))于「基」)))
也。

「生成苹果可执行带块」乃
  化「爻」而
  化「网页状态模块」而
  化「字节串」而
  「字节串」
也。
「生成苹果可执行带块」者会「臂」而会「状态」而会「块」而
  虑「标」者「苹果目标」于「臂」而
  虑「部」者「目标用户载荷部件」于「标」于「状态」于「阴」而
  虑「全局基址」者
    「加」于(「目标用户基址」于「标」)于(「部」中「一」)而
    虑「数起」者「苹果数据名义起址」于「标」于「全局基址」而
    虑「数据」者
      「拼接字节串」于(「零字节」于(「减」于「全局基址」于「数起」))
      于(「部」中「二」)而
      虑「数据内存」者
        「减」
          于(「加」于(「苹果动态基址」于「标」)于(「乘」于(「部」中「三」)于「六五五三六」))
          于「数起」
      而
      虑「网模」者(「状态」中「零」)中「零」而
      虑「符号们」者「苹果槽符号们」于「网模」而
      虑「导入们」者
        「滤」授以(「字符串」合「整数」)
        于(会「项」而「非」于(「串相等」于(「项」中「零」)于『』))
        于(「态射」授以「整数」授以(「字符串」合「整数」)
        于(「整数范围」于「零」于(「长度」授以「字符串」于「符号们」))
        于(会「序」而
          (「第N个」授以「字符串」于「序」于「符号们」)与(「减」于(「苹果导入槽址」于「标」于「序」)于「数起」)))
      而
      「生成马赫可执行带符号」
        于「臂」
        于「阳」
        于「四二九四九六七二九六」
        于(「部」中「零」)
        于「零」
        于「数据」
        于「数据内存」
        于「导入们」
        于『yuyan.native』
        于「苹果文本区」
        于「块」
        于(「苹果调试符号们」于「标」于「状态」)
也。

「生成苹果可执行」乃化「爻」而化「网页状态模块」而「字节串」也。
「生成苹果可执行」者会「臂」而会「状态」而
  「生成苹果可执行带块」于「臂」于「状态」于(「空字节串」于「元」)
也。