<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Perry Blog</title>
    <link>https://www.perryts.com/zh-Hans/blog/</link>
    <description>注明日期的 Perry 发布说明、教程和技术文章。历史测量数据与其原始版本对应。</description>
    <language>zh-Hans</language>
    <item>
      <title>Compiling JavaScript AOT is complicated, here is why</title>
      <link>https://www.perryts.com/zh-Hans/blog/compiling-javascript-aot/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/compiling-javascript-aot/</guid>
      <pubDate>Fri, 30 Oct 2026 00:00:00 GMT</pubDate>
      <description>An ahead-of-time compiler has to know, before the program runs, whether item.price is one load or a full lookup. How Perry proves whole-program facts about your JavaScript, the design that hit a wall, the per-unit design that replaced it, what failed, and where it stands.</description>
    </item>
    <item>
      <title>为原生 TypeScript 编译器构建 GC：决策、意外与当前进展</title>
      <link>https://www.perryts.com/zh-Hans/blog/gc-decisions-surprises/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/gc-decisions-surprises/</guid>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <description>Perry 使用 LLVM 将 TypeScript 编译为原生代码，因此它需要真正的垃圾回收器。本文介绍我们做出的决策、不留下任何证据的错误、在结构上根本不可能失败的 CI 门禁，以及与 Node 和采用引用计数的 AOT 竞争者相比的最新数据。</description>
    </item>
    <item>
      <title>编译 Claude Code：一个压缩包，160 个编译器修复</title>
      <link>https://www.perryts.com/zh-Hans/blog/compiling-claude-code/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/compiling-claude-code/</guid>
      <pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate>
      <description>我们把 Perry 对准了 npm 为 Claude Code 发布的那份 13 MB 压缩过的 cli.js，试着把它变成一个原生二进制文件。一个月后，它能启动、登录、流式接收真实的 API 响应，并把你键入的内容绘制出来——期间有 160 个 pull request 落地进了 Perry，从一个空操作的 MessageChannel，到 RegExp 头部缺失的 GC 写屏障。</description>
    </item>
    <item>
      <title>其他方法都失败后，如何将 Apple Watch 专用应用发布到 App Store</title>
      <link>https://www.perryts.com/zh-Hans/blog/shipping-a-watch-only-app-to-the-app-store/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/shipping-a-watch-only-app-to-the-app-store/</guid>
      <pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
      <description>所有文档中介绍的独立 watchOS 应用上传方式都失败了：altool、iTMSTransporter、xcodebuild，甚至 Xcode 26 的 Organizer 都拒绝 watchOS 平台。本文介绍一个未被文档记录、但确实可行且能为旧款 Watch 保留 arm64_32 的方法：用标记为 ITSWatchOnlyContainer 的 iOS 存根包裹应用，再通过 iTMSTransporter 上传。</description>
    </item>
    <item>
      <title>真实的 npm 包现在能编译了：axios、zod、express —— 以及一次一致性扫尾</title>
      <link>https://www.perryts.com/zh-Hans/blog/real-npm-packages-and-a-conformance-sweep/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/real-npm-packages-and-a-conformance-sweep/</guid>
      <pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate>
      <description>从 v0.5.875 到 v0.5.1146 的约 270 个版本不是关于某一个基准 —— 它们是关于让真实的 npm 包能编译并运行。axios、zod v4、express、fastify 和 hono 现在都能用了；test262 等同性跃升（String 60→79%，Array 61→72%）；Windows 借助 Mica 走向 Fluent；DatePicker 与拖放在每个平台落地。</description>
    </item>
    <item>
      <title>aya_koto 的基准测试教给我们关于 Perry GC 的什么</title>
      <link>https://www.perryts.com/zh-Hans/blog/closing-the-gc-gap/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/closing-the-gc-gap/</guid>
      <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
      <description>一位读者在 AtCoder ABC451D 上对 Perry 做了基准测试，测得它比 Bun 慢 3.85 倍。此后一个无声的 regression 已经把差距拉大到了 6.59 倍。修复不在我们预期的位置，它暴露的那个有意为之的 GC 取舍是真实的，而 Perry v0.5.875 现在在同一个 bench 上与 Bun 打成平手：425 ms 对 431 ms。</description>
    </item>
    <item>
      <title>自动更新、实时 Inspector，以及把自己砍掉一半的编译器</title>
      <link>https://www.perryts.com/zh-Hans/blog/updater-live-inspector-and-compiler-refactor/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/updater-live-inspector-and-compiler-refactor/</guid>
      <pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate>
      <description>Perry v0.5.306 → v0.5.359 用了四天 — 53 个补丁版本、约 30 个 issue 关闭，以及三件大事落地：面向桌面的 perry/updater 自动更新、localhost:7676 上的实时 inspector，以及把四个最大文件削减 33–91% 的编译器重构。</description>
    </item>
    <item>
      <title>分代 GC、惰性 JSON，以及经得起推敲的基准</title>
      <link>https://www.perryts.com/zh-Hans/blog/gen-gc-lazy-json-and-defensible-benchmarks/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/gen-gc-lazy-json-and-defensible-benchmarks/</guid>
      <pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate>
      <description>Perry 在三天内从 v0.5.174 升级到 v0.5.306，外加并行落地的 GC 与 JSON 工作。分代 GC 成为默认。Small String Optimization 成为默认。JSON 流水线获得惰性 tape，validate-and-roundtrip 中位数落在 75 毫秒——动态类型运行时阵营中的最佳。基准页面以 RUNS=11 中位数 + p95 + σ 重写，simdjson 与 AssemblyScript+json-as 加入对照，Perry 的每一处弱点都被诚实地摆上台面。</description>
    </item>
    <item>
      <title>npm 分发、perry dev，以及在每一项基准上取胜</title>
      <link>https://www.perryts.com/zh-Hans/blog/npm-perry-dev-and-beating-bun/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/npm-perry-dev-and-beating-bun/</guid>
      <pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate>
      <description>Perry 在六天内从 v0.5.80 升级到 v0.5.174。@perryts/perry 在 npm 上为全部七个受支持的平台发布。perry dev 在内存 AST 缓存和磁盘上每模块 object 缓存之上加入了 watch 模式的自动重编译。json_roundtrip 关闭了最后一道缺口——Perry 现在在每一项基准上同时击败 Node.js 和 Bun。</description>
    </item>
    <item>
      <title>优化一切：一周、68 个版本，以及 547 倍的 JSON 加速</title>
      <link>https://www.perryts.com/zh-Hans/blog/optimizing-everything/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/optimizing-everything/</guid>
      <pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate>
      <description>Perry 在七天内从 v0.5.13 升级到 v0.5.80。JSON.parse 将与 Node 的差距从 547 倍缩小。mimalloc 成为全局分配器。内联缓存、shape 转换、类型化 Buffer 槽、i32 原生位运算、标量替换，以及一个让 Fastify 和 WebSocket 服务器保持运行的原生事件循环。</description>
    </item>
    <item>
      <title>从 Cranelift 到 LLVM：哪里坏了，我们如何修复</title>
      <link>https://www.perryts.com/zh-Hans/blog/cranelift-to-llvm/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/cranelift-to-llvm/</guid>
      <pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate>
      <description>Perry 从 Cranelift 到 LLVM 的后端迁移已完成。初始切换使基准测试慢了 70 倍——本文讲述哪里出了问题，以及修复它的六项针对性优化。</description>
    </item>
    <item>
      <title>tvOS、从 Linux 交叉编译 iOS 和 Perry Login</title>
      <link>https://www.perryts.com/zh-Hans/blog/tvos-cross-compile-and-perry-login/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/tvos-cross-compile-and-perry-login/</guid>
      <pubDate>Sat, 28 Mar 2026 00:00:00 GMT</pubDate>
      <description>Perry v0.4.24：tvOS 作为第 10 个编译目标，通过 ld64.lld 从 Linux 交叉编译 iOS 和 macOS，perry login 支持按量计费，Windows UI 改版，macOS 公证，5 天内 120 次提交。</description>
    </item>
    <item>
      <title>真正的多线程、编译时 i18n 和 watchOS</title>
      <link>https://www.perryts.com/zh-Hans/blog/true-multithreading-i18n-and-watchos/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/true-multithreading-i18n-and-watchos/</guid>
      <pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate>
      <description>Perry v0.4.0：具有编译时安全性的真正操作系统线程、支持 30 多种语言环境的零仪式国际化系统、watchOS 作为第 9 个编译目标、音频和摄像头 API，以及并行编译器流水线。</description>
    </item>
    <item>
      <title>交叉编译到 Windows、iOS 游戏循环和 100% 测试对等</title>
      <link>https://www.perryts.com/zh-Hans/blog/cross-compile-windows-game-loops-and-parity/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/cross-compile-windows-game-loops-and-parity/</guid>
      <pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate>
      <description>一周 103 次提交：通过 lld-link 从 Linux 交叉编译到 Windows、iOS 游戏循环支持、崩溃报告、两阶段 Hub 构建流水线，以及自托管编译器达到 68/68 确定性测试对等。</description>
    </item>
    <item>
      <title>完整流水线：文档、分发和 WidgetKit</title>
      <link>https://www.perryts.com/zh-Hans/blog/the-full-pipeline/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/the-full-pipeline/</guid>
      <pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate>
      <description>一周 82 次提交：49 页的文档站点、自动化 App Store 和 Play Store 发布、Homebrew 和 APT 软件包、从 TypeScript 创建的原生 WidgetKit 扩展、新组件、http/https 模块，以及自托管 LLVM 编译器。</description>
    </item>
    <item>
      <title>从编译器到生态系统：React、数据库和云构建</title>
      <link>https://www.perryts.com/zh-Hans/blog/from-compiler-to-ecosystem/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/from-compiler-to-ecosystem/</guid>
      <pubDate>Fri, 06 Mar 2026 00:00:00 GMT</pubDate>
      <description>Perry 从编译器成长为完整的生态系统。perry/ui 作为核心，兼容 Prisma 的 MySQL/PostgreSQL/SQLite ORM，通用推送通知，带 App Store 发布的分布式构建，以及 React 兼容层——全部在一周内完成。</description>
    </item>
    <item>
      <title>全部六个平台，功能完全对等</title>
      <link>https://www.perryts.com/zh-Hans/blog/all-six-platforms-ui-parity/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/all-six-platforms-ui-parity/</guid>
      <pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate>
      <description>20 多个原生 UI 组件、Canvas 组件、Table 视图、系统通知、钥匙串访问、多窗口支持，以及 macOS、iOS、iPadOS、Android、Linux 和 Windows 的完全功能对等——全部来自一套 TypeScript 代码。</description>
    </item>
    <item>
      <title>插件系统是一种性能税</title>
      <link>https://www.perryts.com/zh-Hans/blog/plugin-systems-are-a-performance-tax/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/plugin-systems-are-a-performance-tax/</guid>
      <pubDate>Fri, 27 Feb 2026 00:00:00 GMT</pubDate>
      <description>插件架构以性能换取可扩展性。但如果可扩展性发生在编译时而非运行时呢？编译时组合两者兼得——零开销，完全灵活。</description>
    </item>
    <item>
      <title>将 Hono、tRPC 和 Strapi 编译为原生二进制文件</title>
      <link>https://www.perryts.com/zh-Hans/blog/compiling-hono-trpc-strapi/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/compiling-hono-trpc-strapi/</guid>
      <pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate>
      <description>Perry 现在可以将三个主要 TypeScript 框架——Hono、tRPC 和 Strapi——编译为原生 ARM64 可执行文件。编译不到一秒，生成不到 2 MB 的二进制文件，运行零崩溃。</description>
    </item>
    <item>
      <title>构建 Pry：用 TypeScript 编写的原生 JSON 查看器</title>
      <link>https://www.perryts.com/zh-Hans/blog/building-pry/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/building-pry/</guid>
      <pubDate>Thu, 20 Feb 2025 00:00:00 GMT</pubDate>
      <description>构建 Pry 的演练，这是一个原生 JSON 查看器，从 TypeScript 编译为机器代码，并链接了 Perry 运行时和 GC，并且没有网页视图。</description>
    </item>
    <item>
      <title>从 TypeScript 到跨平台原生 UI</title>
      <link>https://www.perryts.com/zh-Hans/blog/cross-platform-native-ui/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/cross-platform-native-ui/</guid>
      <pubDate>Sat, 01 Feb 2025 00:00:00 GMT</pubDate>
      <description>Perry 如何将一个 TypeScript 代码库跨其记录的目标映射到平台小部件，包括特定于平台的限制和先决条件。</description>
    </item>
    <item>
      <title>Perry 介绍</title>
      <link>https://www.perryts.com/zh-Hans/blog/introducing-perry/</link>
      <guid>https://www.perryts.com/zh-Hans/blog/introducing-perry/</guid>
      <pubDate>Wed, 15 Jan 2025 00:00:00 GMT</pubDate>
      <description>Perry 将受支持的 TypeScript 编译为独立的本机可执行文件，并链接其运行时和 GC，无需外部安装 Node.js 或 JavaScript 引擎。</description>
    </item>
  </channel>
</rss>
