博客
16 posts
Auto-Update, a Live Inspector, and the Compiler That Halved Itself
· updater · devtools · refactor上一篇文章在 v0.5.306 收尾,主线是 gen-GC + JSON + 基准。四天后,Perry 已经到了 v0.5.359 — 也就是 53 个补丁版本 — 故事又变了。这些版本里没有一个是以基准数字作为头条。几乎全部都是 跟踪器中的 issue 被关闭。
tvOS, Cross-Compile iOS from Linux, and Perry Login
· tvOS · cross-compilation · billing五天,120 次提交,Perry 从 v0.4.0 跃升至 v0.4.24。亮点:tvOS 成为第 10 个编译目标,iOS 和 macOS 应用现在可以完全从 Linux 构建,perry login 带来基于使用量的计费,Windows UI 进行了全面改造。以下是所有发布内容。
True Multi-Threading, Compile-Time i18n, and watchOS
· threading · i18n · watchOSPerry v0.4.0 是项目启动以来最大的版本。一个周期内三次版本跳跃 —— v0.3.0(i18n)、v0.3.2(watchOS)、v0.4.0(多线程)—— 编译器本身也实现了并行。以下是所有发布内容。
The Full Pipeline: Docs, Distribution, and WidgetKit
· distribution · documentation · WidgetKit七天 82 次提交。49 页的文档站点。自动化 App Store 和 Play Store 发布。 Homebrew 和 APT 包。从 TypeScript 编译的原生 WidgetKit 扩展。 自托管 LLVM 编译器。以及所有平台上的数十个错误修复。
Plugin Systems Are a Performance Tax
· architecture · performance · compiler你安装了 VS Code。很快。你添加了 15 个扩展。现在启动要 4 秒,Extension Host 占用 800 MB 内存。发生了什么?
Optimizing Everything: One Week, 68 Releases, and a 547x JSON Speedup
· performance · llvm · JSON上一篇博客发布时,Perry 版本是 v0.5.12。今天我们已经到了 v0.5.80。也就是说七天内发布了 68 个补丁版本,几乎全部聚焦于一件事:把剩下的每一条慢路径都变成快路径。
npm Distribution, perry dev, and Winning Every Benchmark
· npm · developer-experience · performance上一篇博客发布时,Perry 版本是 v0.5.80,基准测试表上还有一项倔强的失利:JSON.parse/stringify 往返仍比 Node 慢 1.6 倍。六天后,Perry 已经来到 v0.5.174——也就是发布了 94 个补丁版本——而在谈其他一切之前,有三件事值得先说:
Introducing Perry
· announcement · compiler · TypeScript我们很高兴地介绍 Perry —— 一个用 Rust 编写的原生 TypeScript 编译器, 可以将您的 TypeScript 直接编译为独立可执行文件。不需要 Node.js 运行时, 不需要 Electron 包装器,没有任何妥协。只有您的代码,被编译成原生二进制文件, 即时启动,随处运行。
Generational GC, Lazy JSON, and Benchmarks That Hold Up to Scrutiny
· GC · JSON · performance上一篇博客发布时停在 v0.5.174,标题只有一个:Perry 终于在树内基准套件中击败了 Node 和 Bun,所有项目全胜。三天工作和一批积压的 GC + JSON 提交之后,Perry 来到了 v0.5.306——也就是发布了 132 个补丁版本——而这次的故事不一样了。标题不是 547 倍的加速,也不是又添了一栏胜利。它是让那些胜利经得起推敲的那些工作。
From Compiler to Ecosystem: React, Databases, and Cloud Builds
· ecosystem · perry/ui · databases一周前,Perry 还是一个带有 UI 工具包的编译器。你可以编写 TypeScript,将其编译 为原生二进制文件,并在六个平台上发布。这就是全部。今天故事更大了:Perry 正在成为一个生态系统。三个数据库 ORM、通用推送通知、 带有 App Store 和 Play Store 发布的分布式构建、React 兼容层, 以及自动化应用验证 —— 全部在上周发布。
Cross-Platform Native UI from TypeScript
· architecture · UI · cross-platformPerry 最雄心勃勃的目标之一是从单一 TypeScript 代码库交付真正原生的 GUI 应用程序。 不是包裹在原生外壳中的 web view。不是绘制自己像素的自定义渲染引擎。而是真正的原生组件, 由每个平台自己的 UI 框架渲染,在构建时从 TypeScript 编译。
Cross-Compile to Windows, iOS Game Loops, and 100% Test Parity
· compiler · cross-compilation · infrastructure本周 Perry 编译器 103 次提交。主要特性:现在可以从 Linux 交叉编译 Windows 可执行文件,iOS 应用可以运行阻塞式游戏循环,编译器报告 崩溃用于遥测,自托管编译器通过了所有确定性测试。 加上重大 Hub 基础设施升级和 50+ 个错误修复。
From Cranelift to LLVM: How Perry Got 24x Faster
· compilers · llvm · craneliftPerry 从 Cranelift 到 LLVM 的后端迁移已完成。自 v0.5.12 起,LLVM 是唯一的代码生成后端,Perry 现在在每项基准测试中都击败了 Node.js——优势从 1.7 倍到 24.6 倍不等(其中两项持平)。
Compiling Hono, tRPC, and Strapi to Native Binaries
· compiler · frameworks · progressPerry 现在可以将三个主要的 TypeScript 框架 —— Hono、tRPC 和 Strapi —— 编译为原生 ARM64 可执行文件。编译时间不到一秒,生成的二进制文件不到 2 MB,运行不会崩溃。
Building Pry: A Native JSON Viewer in TypeScript
· tutorial · showcase · PryPry 是一个完全用 TypeScript 编写并用 Perry 编译的原生 JSON 查看器。它不是一个技术演示 —— 它是我们每天用来检查 API 响应、配置文件和数据转储的真实工具。本文介绍了它是如何 构建的、如何编译的,以及当你的 TypeScript 编译为原生应用时开发体验是怎样的。
All Six Platforms, Full Feature Parity
· UI · cross-platform · release当我们发布 Perry 原生 UI 系统的第一个版本时,"跨平台" 意味着 macOS 运行良好,而其他五个平台还只是存根。如今,在 v0.2.162 版本中,情况 不再如此。所有六个平台 —— macOS、iOS、iPadOS、Android、Linux 和 Windows —— 现在 共享完整的功能对等。相同的 TypeScript 代码在每个目标上编译为原生组件。