豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 194 行 · 11955 字节 · UTF-8
§
寻观「底层库」之书。
寻观「客体二号」之「布局」之书。
寻观「客体二号」之「基础」之书。
寻观「客体二号」之「宿主对象」之书。
寻观「客体二号」之「林系统」之书。
寻观「客体二号」之「苹系统」之书。
寻观「客体二号」之「林启动」之书。
寻观「客体二号」之「苹启动」之书。

「:文言:原生之参数与环境,临用自系统重取:Linux 读 /proc/self 之 cmdline 与 environ,macOS 以 sysctl 之 KERN_PROCARGS2 取之;读入堆中之字节数组,不足则四倍其容而重读,至多二百五十六兆字节。启动时所书之参数区仅四千零九十六字节、环境块仅一千零二十字节,编译器之工作进程参数甚长,截之则误。宿主原语行时不回收,故中间之对象无须暂根。汉语:原生系统上的命令行参数与环境变量在调用时从操作系统重新读取:Linux 读 /proc/self/cmdline 与 /proc/self/environ,macOS 用 sysctl 的 KERN_PROCARGS2;读进堆里的字节数组,容量不够就放大四倍重读,至多 256 MiB。启动时写的参数区只有 4096 字节、环境块只有 1020 字节,而编译器工作进程的参数(几十个依赖文件路径)很长,被截断就会出错。宿主原语执行期间不做回收,所以中间对象不必放临时根。待办事项:WASI 的参数与环境、底层接口的取参数仍读启动时写的固定区。:」
「原生启动块上限」者「二六八四三五四五六」也。

「:文言:读启动块:类零为参数,一为环境(Linux 分二文,macOS 同一块)。返字节数组,其长即所读之数。汉语:读取启动块:类 0 取参数、1 取环境(Linux 是两个文件,macOS 是同一个 KERN_PROCARGS2 块)。返回字节数组对象,其长度字段改成实际读到的字节数(不影响回收:回收按对象头里的总字节数扫描)。:」
「原生读启动块」乃化「整数」而化「整数」而「整数」也。
「原生读启动块」者会「类」而会「容」而
  虑「块」者「新字节数组」于「容」而
  虑「缓」者「加」于「块」于「一六」而
  虑「数」者
    若「是苹」于「元」则
      虑「名」者「状态_林时」而
      虑「长址」者「状态_林字节」而
      虑「无」者「写四」于「名」于「一」而
      虑「无」者「写四」于(「加」于「名」于「四」)于「四九」而
      虑「无」者
        「写四」于(「加」于「名」于「八」)于(「苹_进程号」于「元」)而
        虑「无」者「写四」于「长址」于「容」而
        虑「无」者「写四」于(「加」于「长址」于「四」)于「零」而
        虑「果」者
          「苹_系统量」于「名」于「三」于「缓」于「长址」于「零」于「零」而
        若「等零」于「果」则「读四」于「长址」否则「容」
    否则
      「林读全文」
        于(若「等零」于「类」则「静态串」于『/proc/self/cmdline』否则「静态串」于『/proc/self/environ』)
        于「缓」
        于「容」
  而
  若「且」于(「有符号大等」于「数」于「容」)于(「小于」于「容」于「原生启动块上限」)则
    「原生读启动块」于「类」于(「乘」于「容」于「四」)
  否则
    ((「写四」于(「加」于「块」于「八」)于(「选择」于(「小于」于「数」于「零」)于「零」于「数」));
      「块」)
也。

「:文言:macOS 之块中,参数之始:越参数之数、执行之径与其后之零。汉语:在 macOS 的 KERN_PROCARGS2 块里定位第 0 个参数:跳过开头 4 字节参数个数、可执行文件路径及其后的填充零。:」
「苹参数起」乃化「整数」而化「整数」而「整数」也。
「苹参数起」者会「缓」而会「长」而
  「苹跳零」于「缓」于(「加」于(「林找零」于「缓」于「四」于「长」)于「一」)于「长」
也。

「:文言:计以零终之串数于[起,止)。汉语:数 [起, 止) 里以零结尾的串的个数。:」
「零终串数」乃化「整数」而化「整数」而化「整数」而化「整数」而「整数」也。
「零终串数」者会「缓」而会「起」而会「止」而会「数」而
  若「有符号大等」于「起」于「止」则
    「数」
  否则
    「零终串数」于「缓」于(「加」于(「林找零」于「缓」于「起」于「止」)于「一」)于「止」
      于(「加」于「数」于「一」)
也。

「:文言:取以零终之串为字节数组。汉语:把从“起”开始、以零结尾(至多到“止”)的串拷成字节数组。:」
「零终串对象」乃化「整数」而化「整数」而化「整数」而「整数」也。
「零终串对象」者会「缓」而会「起」而会「止」而
  虑「终」者「林找零」于「缓」于「起」于「止」而
  虑「长」者「减」于「终」于「起」而
  虑「串」者「新字节数组」于「长」而
  虑「无」者
    (若「大于」于「长」于「零」则「拷贝」于(「加」于「串」于「一六」)于(「加」于「缓」于「起」)于「长」否则「元」)
  而
  「串」
也。

「填零终串们」乃
  化「整数」而
  化「整数」而
  化「整数」而
  化「整数」而
  化「整数」而
  化「整数」而
  「有」
也。
「填零终串们」者会「内」而会「个数」而会「缓」而会「起」而会「止」而会「序」而
  若「或者」于(「有符号大等」于「起」于「止」)于(「有符号大等」于「序」于「个数」)则
    「元」
  否则
    ((「设元组项」于「内」于「序」于(「零终串对象」于「缓」于「起」于「止」));
      「填零终串们」
        于「内」
        于「个数」
        于「缓」
        于(「加」于(「林找零」于「缓」于「起」于「止」)于「一」)
        于「止」
        于(「加」于「序」于「一」))
也。

「:文言:原生之命令行参数(原语七):去第零个,成(元组,个数)。汉语:原生系统的命令行参数(原语 7):去掉第 0 个参数,返回(参数元组,个数),形状与裸机实现相同。:」
「原生参数对象」乃化「有」而「整数」也。
「原生参数对象」者会「无」而
  虑「块」者「原生读启动块」于「零」于「一零四八五七六」而
  虑「长」者「字节数组长」于「块」而
  虑「缓」者「加」于「块」于「一六」而
  虑「起」者
    若「是苹」于「元」则
      「加」于(「林找零」于「缓」于(「苹参数起」于「缓」于「长」)于「长」)于「一」
    否则
      「加」于(「林找零」于「缓」于「零」于「长」)于「一」
  而
  虑「个数」者
    若「是苹」于「元」则
      (若「大于」于(「读四」于「缓」)于「零」则「减」于(「读四」于「缓」)于「一」否则「零」)
    否则
      「零终串数」于「缓」于「起」于「长」于「零」
  而
  虑「内」者「新元组」于「个数」而
  虑「无」者
    「填零终串们」于「内」于「个数」于「缓」于「起」于「长」于「零」而
    虑「外」者「新元组」于「二」而
    虑「无」者(「设元组项」于「外」于「零」于「内」)而
    虑「无」者(「设元组项」于「外」于「一」于(「装箱整」于「个数」))而
    「外」
也。

「:文言:串首合名而继以等号否。汉语:判断从“址”开始的串是否以 名 开头并紧跟“=”。:」
「名等号首」乃化「整数」而化「整数」而化「整数」而化「整数」而「爻」也。
「名等号首」者会「址」而
  会「止」而
    会「名址」而
      会「名长」而
        递归虑「比」其化「整数」而「爻」者会「序」而
          若「有符号大等」于「序」于「名长」则
            「且」
              于(「小于」于(「加」于「址」于「名长」)于「止」)
              于(「等」于(「读一」于(「加」于「址」于「名长」))于「六一」)
          否则若「有符号大等」于(「加」于「址」于「序」)于「止」则
            「阴」
          否则若「等」
            于(「读一」于(「加」于「址」于「序」))
            于(「读一」于(「加」于「名址」于「序」))则
            「比」于(「加」于「序」于「一」)
          否则
            「阴」
        而
        「比」于「零」
也。

「:文言:寻环境之值:逐串比之,遇空串(macOS 环境之末)而止。返值之起,无则负一。汉语:在 [起, 止) 的“名=值”串里找 名:逐串比较,遇到空串(macOS 环境区末尾)就停。返回值的起点,找不到返回 -1。:」
「寻环境串」乃
  化「整数」而
  化「整数」而
  化「整数」而
  化「整数」而
  化「整数」而
  「整数」
也。
「寻环境串」者会「缓」而会「起」而会「止」而会「名址」而会「名长」而
  若「或者」于(「有符号大等」于「起」于「止」)于(「等零」于(「读一」于(「加」于「缓」于「起」)))则
    (「减」于「零」于「一」)
  否则若「名等号首」于(「加」于「缓」于「起」)于(「加」于「缓」于「止」)于「名址」于「名长」则
    「加」于「起」于(「加」于「名长」于「一」)
  否则
    「寻环境串」于「缓」于(「加」于(「林找零」于「缓」于「起」于「止」)于「一」)于「止」于「名址」于「名长」
也。

「:文言:原生之环境变量(原语九):成(有否,值)。汉语:原生系统按名取环境变量(原语 9):返回(是否存在,值)二元组,形状与裸机实现相同。:」
「原生环境变量对象」乃化「整数」而「整数」也。
「原生环境变量对象」者会「参」而
  虑「名」者「元组项」于「参」于「零」而
  虑「块」者「原生读启动块」于「一」于「一零四八五七六」而
  虑「长」者「字节数组长」于「块」而
  虑「缓」者「加」于「块」于「一六」而
  虑「起」者
    若「是苹」于「元」则
      虑「零起」者「苹参数起」于「缓」于「长」而
      「苹跳零」于「缓」于(「苹跳串们」于「缓」于「零起」于「长」于(「读四」于「缓」))于「长」
    否则
      「零」
  而
  虑「值起」者
    「寻环境串」于「缓」于「起」于「长」于(「加」于「名」于「一六」)
    于(「字节数组长」于「名」)
  而
  虑「对象」者「新元组」于「二」而
  若「小于」于「值起」于「零」则
    虑「无」者(「设元组项」于「对象」于「零」于(「装箱整」于「零」))而
    虑「无」者
      (「设元组项」于「对象」于「一」于(「新字节数组」于「零」))
    而
    「对象」
  否则
    虑「无」者(「设元组项」于「对象」于「零」于(「装箱整」于「一」))而
    虑「无」者
      (「设元组项」于「对象」于「一」于(「零终串对象」于「缓」于「值起」于「长」))
    而
    「对象」
也。