豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 276 行 · 15016 字节 · UTF-8
§
寻观「标准库」之书。
寻观「编译器核心」之「网页汇编核心」之「模块结构」之书。
寻观「裸机后端」之「降级公用」之书。

「:文言:小叶函数之内联:降级之前,于整数网页汇编之层,凡调用无调用之小函数(指令至多四十,一结果)者,展其体于调用之处:实参依次弹入新局部,被调者之余局部补零,体包于一结果之块,局部之号整体平移,返回化为跳出此块(依当下之嵌套深度);体内原有之跳转深度不变,盖函数之级即此块也。可信之函数(号不小于导出“预编起号”者)与执行器之函数不相内联,免执行器之码失其界检。局部总数逾上限则不内联。执行器之小助函数(栈槽址、位图之算、且、爻整之类)调用极频,其序言与尾声之费甚于其体。汉语:小叶函数内联:降级之前,在整数 Wasm 层面,把对“不再调用其他函数、指令不超过 40 条、有 1 个结果”的函数的调用展开成函数体:实参依次弹进新分配的局部变量,被调函数自己的局部变量补零,函数体包进一个带 1 个结果的块,局部变量号整体平移,返回改成跳出这个块(按当前嵌套深度);函数体里原有的跳转深度不用改,因为函数级的块就是这个块。可信函数(函数号不小于导出“预编起号”的预编函数)与执行器函数之间不互相内联,免得执行器代码失去边界检查。局部变量总数会超过上限时不内联。执行器的小助手函数(栈槽址、位图计算、且、爻整等)调用极其频繁,序言与尾声的开销比函数体还大。:」
「内联指令上限」者「四零」也。

「内列转数组」乃
  承「甲」而
  化「甲」而
  化(「列」于「甲」)而
  (「数组引用类」于「甲」)
也。
「内列转数组」者受「甲」而会「初」而会「项」而
  虑「表」者
    「新数组引用」授以「甲」
    于「初」
    于(若「大于」于(「长度」授以「甲」于「项」)于「零」则「长度」授以「甲」于「项」否则「一」)而
  递归虑「填」其化(「列」于「甲」)而化「整数」而「有」者会「余」而会「位」而
    鉴「余」而
      有「罄」则「元」
      或有「缀」于「首」于「尾」则
        ((「写数组引用」授以「甲」于「表」于「位」于「首」);
          「填」于「尾」于(「加」于「位」于「一」))
  而
  虑「无」者「填」于「项」于「零」而
  「表」
也。

「是调用令」乃化「网页指令」而「爻」也。
「是调用令」者会「令」而
  鉴「令」而
    有「网页调用」于「号」则「阳」
    或有「其他」则「阴」
也。

「:文言:叶函可内联否:无调用,指令至多上限,结果为一。汉语:函数能否内联:函数体里没有调用、指令条数不超过上限、签名的结果个数为 1。:」
「叶函可内联」乃化(「数组引用类」于「网页签名」)而化「网页函数」而「爻」也。
「叶函可内联」者会「签们」而会「函」而
  虑「签」者「读数组引用」授以「网页签名」于「签们」于(「函」中「零」)而
  「且」
    于(「等于」于(「签」中「一」)于「一」)
    于(「且」
      于(「不大于」于(「长度」授以「网页指令」于(「函」中「二」))于「内联指令上限」)
      于(「非」于(「存在吗」授以「网页指令」于「是调用令」于(「函」中「二」))))
也。

「:文言:转写被调者之体:局部平移,返回化为跳出,逆序积之。深者,当下于被调体内之嵌套深度。汉语:改写被调函数体:局部变量号加上基数,返回改成跳到包裹块(深度为当前在函数体内的嵌套深度);结果按逆序累积。:」
「内联转体」乃
  化「整数」而
  化(「列」于「网页指令」)而
  化「整数」而
  化(「列」于「网页指令」)而
  (「列」于「网页指令」)
也。
「内联转体」者会「基」而会「令们」而会「深」而会「逆」而
  鉴「令们」而
    有「罄」则「逆」
    或有「缀」于「令」于「余」则
      虑「新深」者
        (
          鉴「令」而
            有「网页块」于「数」则
              「加」于「深」于「一」
            或有「网页循环」于「数」则
              「加」于「深」于「一」
            或有「网页条件」于「数」则
              「加」于「深」于「一」
            或有「网页结束」则
              「减」于「深」于「一」
            或有「其他」则「深」
        )
      而
      虑「新令」者
        (
          鉴「令」而
            有「网页返回」则「网页跳转」于「深」
            或有「网页局部读取」于「号」则
              「网页局部读取」
                于(「加」于「基」于「号」)
            或有「网页局部写入」于「号」则
              「网页局部写入」
                于(「加」于「基」于「号」)
            或有「网页局部暂存」于「号」则
              「网页局部暂存」于(「加」于「基」于「号」)
            或有「其他」则「令」
        )
      而
      「内联转体」于「基」于「余」于「新深」于(「缀」于「新令」于「逆」)
也。

「:文言:展一调用:实参逆序弹入局部,余局部补零,体包于块。汉语:展开一次调用:实参按逆序写进新局部(栈顶是最后一个参数),其余局部清零,函数体包进一个带 1 个结果的块。:」
「内联展开」乃
  化「整数」而
  化「整数」而
  化「整数」而
  化「网页函数」而
  (「列」于「网页指令」)
也。
「内联展开」者会「基」而会「参数数」而会「局数」而会「函」而
  虑「弹参」者
    「态射」授以「整数」授以「网页指令」
    于(「整数范围」于「零」于「参数数」)
    于(会「序」而「网页局部写入」于(「加」于「基」于(「减」于(「减」于「参数数」于「一」)于「序」)))
  而
  虑「清局」者
    「串联」授以「网页指令」
    于(「态射」授以「整数」授以(「列」于「网页指令」)
    于(「整数范围」于「零」于「局数」)
    于(会「序」而「列」【「网页常量」于「零」,「网页局部写入」于(「加」于「基」于(「加」于「参数数」于「序」))】))
  而
  「串联」授以「网页指令」
    于(「列」【
      「弹参」,
      「清局」,
      「列」【「网页块」于「一」】,
      「反转」授以「网页指令」于(「内联转体」于「基」于(「函」中「二」)于「零」于(「罄」授以「网页指令」)),
      「列」【「网页结束」】
    】)
也。

「:文言:改写一函数之体:遇可内联之调用则展之。诸展开之局部同居一段(自基起),盖展开之体用毕即死,前后不相叠,各于其首自清其局部;段长取诸展开所需之最大。逾上限者不展。汉语:改写一个函数体:遇到可以内联的调用就展开。所有展开共用同一段新局部(从基数起):展开体用完即死,前后不会重叠,每次展开开头自己把用到的局部清零;段长取各次展开所需的最大值,免得序言清零的局部越积越多。局部总数会超过上限的调用不展开。返回(新指令列,段长)。:」
「内联改写段」乃
  化(「数组引用类」于「网页签名」)而
  化(「数组引用类」于「网页函数」)而
  化(「数组引用类」于「爻」)而
  化「整数」而
  化「整数」而
  化「爻」而
  化「整数」而
  化「整数」而
  化「整数」而
  化(「列」于「网页指令」)而
  化(「列」于「网页指令」)而
  ((「列」于「网页指令」)合「整数」)
也。
「内联改写段」者
  会「签们」而
  会「函们」而
  会「可们」而
  会「导入数」而
  会「信任起」而
  会「己信」而
  会「上限」而
  会「基」而
  会「最大」而
  会「令们」而
  会「逆」而
  鉴「令们」而
    有「罄」则(「反转」授以「网页指令」于「逆」)与「最大」
    或有「缀」于「令」于「余」则
      鉴「令」而
        有「网页调用」于「号」则
          若「且」
            于(「不小于」于「号」于「导入数」)
            于(「且」
              于(「读数组引用」授以「爻」于「可们」于「号」)
              于(「等于」于(若「己信」则「一」否则「零」)于(
                若「不小于」于「号」于「信任起」则「一」否则「零」)))则
            虑「函」者
              「读数组引用」授以「网页函数」
              于「函们」
              于(「减」于「号」于「导入数」)
            而
            虑「签」者
              「读数组引用」授以「网页签名」于「签们」于(「函」中「零」)
            而
            虑「需」者「加」于(「签」中「零」)于(「函」中「一」)
            而
            若「大于」于(「加」于「基」于「需」)于「上限」则
              「内联改写段」
                于「签们」
                于「函们」
                于「可们」
                于「导入数」
                于「信任起」
                于「己信」
                于「上限」于「基」于「最大」于「余」
                于(「缀」于「令」于「逆」)
            否则
              「内联改写段」
                于「签们」
                于「函们」
                于「可们」
                于「导入数」
                于「信任起」
                于「己信」
                于「上限」
                于「基」
                于(若「大于」于「需」于「最大」则「需」否则「最大」)
                于「余」
                于(「附加」授以「网页指令」
                  于(「反转」授以「网页指令」
                    于(「内联展开」于「基」于(「签」中「零」)于(「函」中「一」)于「函」))
                    于「逆」)
          否则
            「内联改写段」
              于「签们」
              于「函们」
              于「可们」
              于「导入数」
              于「信任起」
              于「己信」
              于「上限」
              于「基」于「最大」于「余」
              于(「缀」于「令」于「逆」)
        或有「其他」则
          「内联改写段」
            于「签们」
            于「函们」
            于「可们」
            于「导入数」
            于「信任起」
            于「己信」
            于「上限」于「基」于「最大」于「余」
            于(「缀」于「令」于「逆」)
也。

「内联信任起」乃化(「列」于「网页导出」)而「整数」也。
「内联信任起」者会「导出们」而
  鉴「导出们」而
    有「罄」则「二一四七四八三六四七」
    或有「缀」于「首」于「尾」则
      若「串相等」于(「首」中「零」)于『预编起号』则「首」中「一」否则「内联信任起」于「尾」
也。

「:文言:内联小叶函数于一模块。上限者,每函数局部(含参数)之至多。汉语:对整个模块做小叶函数内联。上限是每个函数局部变量(含参数)的最多个数(降级器的栈帧槽上限)。返回新模块(签名、导入、导出不变)。:」
「内联小叶函数」乃化「网页模块」而化「整数」而「网页模块」也。
「内联小叶函数」者会「模」而会「上限」而
  虑「签们」者
    「内列转数组」授以「网页签名」于(「零」与「零」)于(「模」中「零」)而
    虑「导入数」者「长度」授以「网页导入」于(「模」中「一」)而
    虑「函列」者「模」中「二」而
    虑「函们」者
      「内列转数组」授以「网页函数」
      于(「零」与「零」与(「罄」授以「网页指令」))于「函列」而
      虑「函数数」者「长度」授以「网页函数」于「函列」而
      虑「可们」者
        「新数组引用」授以「爻」
        于「阴」
        于(「加」于「导入数」于(「加」于「函数数」于「一」))而
        虑「无」者
          「态射序号」授以「网页函数」授以「有」
          于(会「序」而会「函」而
            「写数组引用」授以「爻」
            于「可们」
            于(「加」于「导入数」于「序」)
            于(「叶函可内联」于「签们」于「函」))
            于「函列」
        而
        虑「信任起」者「内联信任起」于(「模」中「三」)而
        虑「新函们」者
          「态射序号」授以「网页函数」授以「网页函数」
          于(会「序」而会「函」而
          虑「签」者
            「读数组引用」授以「网页签名」于「签们」于(「函」中「零」)而
            虑「基」者「加」于(「签」中「零」)于(「函」中「一」)而
            虑「果」者
              「内联改写段」
                于「签们」
                于「函们」
                于「可们」
                于「导入数」
                于「信任起」
                于(「不小于」于(「加」于「导入数」于「序」)于「信任起」)
                于「上限」
                于「基」
                于「零」
                于(「函」中「二」)
                于(「罄」授以「网页指令」)
            而
            (「函」中「零」)与(「加」于(「函」中「一」)于(「果」中「一」))与(「果」中「零」))
            于「函列」
        而
        (「模」中「零」)与(「模」中「一」)与「新函们」与(「模」中「三」)
也。