<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Perry Blog</title>
    <link>https://www.perryts.com/vi/blog/</link>
    <description>Ghi chú phát hành, hướng dẫn và bài viết kỹ thuật của Perry, có ghi ngày. Số liệu đo trước đây gắn với phiên bản gốc.</description>
    <language>vi</language>
    <item>
      <title>Compiling JavaScript AOT is complicated, here is why</title>
      <link>https://www.perryts.com/vi/blog/compiling-javascript-aot/</link>
      <guid>https://www.perryts.com/vi/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>Xây dựng GC cho trình biên dịch TypeScript native: quyết định, bất ngờ và tình hình hiện tại</title>
      <link>https://www.perryts.com/vi/blog/gc-decisions-surprises/</link>
      <guid>https://www.perryts.com/vi/blog/gc-decisions-surprises/</guid>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <description>Perry biên dịch TypeScript thành mã native bằng LLVM — vì thế nó cần một bộ thu gom rác thực thụ. Bài viết nói về những quyết định của chúng tôi, các lỗi không để lại dấu vết, những cổng CI vốn không thể thất bại và các con số hiện tại so với Node cùng một đối thủ AOT dùng đếm tham chiếu.</description>
    </item>
    <item>
      <title>Biên dịch Claude Code: một bundle đã minify, 160 bản sửa trình biên dịch</title>
      <link>https://www.perryts.com/vi/blog/compiling-claude-code/</link>
      <guid>https://www.perryts.com/vi/blog/compiling-claude-code/</guid>
      <pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate>
      <description>Chúng tôi thử dùng Perry để chuyển tệp cli.js đã minify, dung lượng 13 MB mà npm phân phối cho Claude Code, thành một bản nhị phân native. Một tháng sau, chương trình khởi chạy, đăng nhập, nhận phản hồi thật từ API theo luồng và hiển thị ký tự được nhập. Để làm được điều đó, 160 pull request đã được hợp nhất vào Perry, từ MessageChannel không làm gì đến hàng rào ghi GC bị thiếu trong header RegExp.</description>
    </item>
    <item>
      <title>Đưa ứng dụng chỉ dành cho Apple Watch lên App Store khi mọi cách khác đều thất bại</title>
      <link>https://www.perryts.com/vi/blog/shipping-a-watch-only-app-to-the-app-store/</link>
      <guid>https://www.perryts.com/vi/blog/shipping-a-watch-only-app-to-the-app-store/</guid>
      <pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
      <description>Mọi cách được tài liệu hướng dẫn để tải ứng dụng watchOS độc lập lên App Store đều thất bại: altool, iTMSTransporter, xcodebuild và cả Organizer của Xcode 26 đều từ chối nền tảng này. Giải pháp chưa được ghi trong tài liệu nhưng hoạt động và giữ arm64_32 cho Watch đời cũ là một stub iOS được đánh dấu ITSWatchOnlyContainer, tải lên bằng iTMSTransporter.</description>
    </item>
    <item>
      <title>Các package npm thực tế giờ compile được: axios, zod, express — và một lượt quét conformance</title>
      <link>https://www.perryts.com/vi/blog/real-npm-packages-and-a-conformance-sweep/</link>
      <guid>https://www.perryts.com/vi/blog/real-npm-packages-and-a-conformance-sweep/</guid>
      <pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate>
      <description>Khoảng 270 release từ v0.5.875 đến v0.5.1146 không phải về một benchmark — chúng là về việc làm cho các package npm thực tế compile và chạy. axios, zod v4, express, fastify, và hono giờ hoạt động; parity test262 nhảy vọt (String 60→79%, Array 61→72%); Windows chuyển sang Fluent với Mica; và DatePicker + drag &amp; drop đáp xuống mọi nền tảng.</description>
    </item>
    <item>
      <title>Benchmark của aya_koto đã dạy chúng tôi điều gì về GC của Perry</title>
      <link>https://www.perryts.com/vi/blog/closing-the-gc-gap/</link>
      <guid>https://www.perryts.com/vi/blog/closing-the-gc-gap/</guid>
      <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
      <description>Một độc giả đã benchmark Perry trên AtCoder ABC451D và đo được chậm hơn Bun 3,85×. Một regression âm thầm đã mở rộng khoảng cách lên 6,59× trong khoảng thời gian đó. Bản fix không nằm ở nơi chúng tôi mong đợi, trade-off có chủ ý của GC mà nó phơi bày là thật, và Perry v0.5.875 giờ đây hòa với Bun trên cùng bench: 425 ms vs 431 ms.</description>
    </item>
    <item>
      <title>Auto-Update, một Inspector trực tiếp và Compiler tự cắt mình một nửa</title>
      <link>https://www.perryts.com/vi/blog/updater-live-inspector-and-compiler-refactor/</link>
      <guid>https://www.perryts.com/vi/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 trong bốn ngày — 53 patch release, ~30 issue được đóng, và ba thứ lớn hạ cánh: perry/updater cho auto-update desktop, inspector trực tiếp tại localhost:7676, và một cuộc refactor compiler khiến bốn file lớn nhất nhỏ đi 33–91%.</description>
    </item>
    <item>
      <title>GC theo thế hệ, JSON lười và benchmark chịu được soi xét</title>
      <link>https://www.perryts.com/vi/blog/gen-gc-lazy-json-and-defensible-benchmarks/</link>
      <guid>https://www.perryts.com/vi/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 trong ba ngày, cộng với công việc GC và JSON đáp xuống cùng lúc. GC theo thế hệ trở thành mặc định. Small String Optimization trở thành mặc định. Đường ống JSON nhận một lazy tape, đáp ở 75 ms trung vị trên validate-and-roundtrip — tốt nhất trong nhóm runtime kiểu động. Trang benchmark được viết lại với trung vị RUNS=11 + p95 + σ, thêm simdjson và AssemblyScript+json-as làm peer, và mọi điểm yếu của Perry được nêu thẳng thắn.</description>
    </item>
    <item>
      <title>Phân phối npm, perry dev, và thắng mọi benchmark</title>
      <link>https://www.perryts.com/vi/blog/npm-perry-dev-and-beating-bun/</link>
      <guid>https://www.perryts.com/vi/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 trong sáu ngày. @perryts/perry được phát hành trên npm cho tất cả bảy nền tảng được hỗ trợ. perry dev thêm tự động biên dịch lại ở watch-mode trên nền AST cache trong bộ nhớ và object cache trên đĩa theo từng module. json_roundtrip đóng lại khoảng cách cuối cùng — Perry giờ thắng mọi benchmark trước cả Node.js và Bun.</description>
    </item>
    <item>
      <title>Tối ưu hóa mọi thứ: Một tuần, 68 bản phát hành, và JSON nhanh hơn 547 lần</title>
      <link>https://www.perryts.com/vi/blog/optimizing-everything/</link>
      <guid>https://www.perryts.com/vi/blog/optimizing-everything/</guid>
      <pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate>
      <description>Perry v0.5.13 → v0.5.80 trong bảy ngày. JSON.parse thu hẹp khoảng cách 547 lần với Node. mimalloc trở thành allocator toàn cục. Inline cache, shape transition, typed Buffer slot, bitwise i32-native, scalar replacement, và event loop native giữ cho máy chủ Fastify và WebSocket luôn hoạt động.</description>
    </item>
    <item>
      <title>Từ Cranelift đến LLVM: Điều gì đã hỏng và chúng tôi sửa nó thế nào</title>
      <link>https://www.perryts.com/vi/blog/cranelift-to-llvm/</link>
      <guid>https://www.perryts.com/vi/blog/cranelift-to-llvm/</guid>
      <pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate>
      <description>Quá trình chuyển backend của Perry từ Cranelift sang LLVM đã hoàn tất. Lần chuyển đổi đầu tiên khiến benchmark chậm đi 70 lần — đây là những gì đã hỏng, và sáu tối ưu hóa có mục tiêu đã sửa nó.</description>
    </item>
    <item>
      <title>tvOS, biên dịch chéo iOS từ Linux và Perry Login</title>
      <link>https://www.perryts.com/vi/blog/tvos-cross-compile-and-perry-login/</link>
      <guid>https://www.perryts.com/vi/blog/tvos-cross-compile-and-perry-login/</guid>
      <pubDate>Sat, 28 Mar 2026 00:00:00 GMT</pubDate>
      <description>Perry v0.4.24: tvOS là mục tiêu biên dịch thứ 10, biên dịch chéo iOS và macOS từ Linux qua ld64.lld, perry login với thanh toán theo sử dụng, cải tiến UI Windows, công chứng macOS và 120 commit trong 5 ngày.</description>
    </item>
    <item>
      <title>Đa luồng thực sự, i18n thời điểm biên dịch và watchOS</title>
      <link>https://www.perryts.com/vi/blog/true-multithreading-i18n-and-watchos/</link>
      <guid>https://www.perryts.com/vi/blog/true-multithreading-i18n-and-watchos/</guid>
      <pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate>
      <description>Perry v0.4.0: thread OS thực sự với an toàn tại thời điểm biên dịch, hệ thống quốc tế hóa không rườm rà cho hơn 30 ngôn ngữ, watchOS là mục tiêu biên dịch thứ 9, API âm thanh và camera, và pipeline biên dịch song song.</description>
    </item>
    <item>
      <title>Biên dịch chéo sang Windows, game loop trên iOS và 100% đồng bộ kiểm thử</title>
      <link>https://www.perryts.com/vi/blog/cross-compile-windows-game-loops-and-parity/</link>
      <guid>https://www.perryts.com/vi/blog/cross-compile-windows-game-loops-and-parity/</guid>
      <pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate>
      <description>103 commit trong một tuần: biên dịch chéo sang Windows từ Linux qua lld-link, hỗ trợ game loop trên iOS, báo cáo lỗi, pipeline build Hub hai giai đoạn và trình biên dịch tự lưu trữ đạt đồng bộ kiểm thử deterministic 68/68.</description>
    </item>
    <item>
      <title>Pipeline hoàn chỉnh: Tài liệu, phân phối và WidgetKit</title>
      <link>https://www.perryts.com/vi/blog/the-full-pipeline/</link>
      <guid>https://www.perryts.com/vi/blog/the-full-pipeline/</guid>
      <pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate>
      <description>82 commit trong một tuần: trang tài liệu 49 trang, xuất bản tự động trên App Store và Play Store, gói Homebrew và APT, phần mở rộng WidgetKit gốc từ TypeScript, widget mới, module http/https và trình biên dịch LLVM tự lưu trữ.</description>
    </item>
    <item>
      <title>Từ trình biên dịch đến hệ sinh thái: React, cơ sở dữ liệu và build trên đám mây</title>
      <link>https://www.perryts.com/vi/blog/from-compiler-to-ecosystem/</link>
      <guid>https://www.perryts.com/vi/blog/from-compiler-to-ecosystem/</guid>
      <pubDate>Fri, 06 Mar 2026 00:00:00 GMT</pubDate>
      <description>Perry phát triển từ trình biên dịch thành hệ sinh thái hoàn chỉnh. perry/ui làm cốt lõi, ORM tương thích Prisma cho MySQL/PostgreSQL/SQLite, thông báo đẩy toàn cầu, build phân tán kèm xuất bản App Store và lớp tương thích React — tất cả trong một tuần.</description>
    </item>
    <item>
      <title>Cả sáu nền tảng, đồng bộ tính năng hoàn toàn</title>
      <link>https://www.perryts.com/vi/blog/all-six-platforms-ui-parity/</link>
      <guid>https://www.perryts.com/vi/blog/all-six-platforms-ui-parity/</guid>
      <pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate>
      <description>Hơn 20 widget UI gốc, widget Canvas, Table view, thông báo hệ thống, truy cập keychain, hỗ trợ nhiều cửa sổ và đồng bộ tính năng hoàn toàn trên macOS, iOS, iPadOS, Android, Linux và Windows — tất cả từ một mã nguồn TypeScript duy nhất.</description>
    </item>
    <item>
      <title>Hệ thống plugin là một loại thuế hiệu năng</title>
      <link>https://www.perryts.com/vi/blog/plugin-systems-are-a-performance-tax/</link>
      <guid>https://www.perryts.com/vi/blog/plugin-systems-are-a-performance-tax/</guid>
      <pubDate>Fri, 27 Feb 2026 00:00:00 GMT</pubDate>
      <description>Kiến trúc plugin đánh đổi hiệu năng lấy khả năng mở rộng. Nhưng nếu khả năng mở rộng diễn ra lúc biên dịch thay vì lúc chạy thì sao? Kết hợp tại thời điểm biên dịch mang đến cả hai — không có chi phí, linh hoạt hoàn toàn.</description>
    </item>
    <item>
      <title>Biên dịch Hono, tRPC và Strapi thành binary gốc</title>
      <link>https://www.perryts.com/vi/blog/compiling-hono-trpc-strapi/</link>
      <guid>https://www.perryts.com/vi/blog/compiling-hono-trpc-strapi/</guid>
      <pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate>
      <description>Perry giờ đây biên dịch ba framework TypeScript lớn — Hono, tRPC và Strapi — thành tệp thực thi ARM64 gốc. Biên dịch trong chưa đầy một giây, tạo binary dưới 2 MB và chạy không lỗi.</description>
    </item>
    <item>
      <title>Xây dựng Pry: Trình xem JSON gốc bằng TypeScript</title>
      <link>https://www.perryts.com/vi/blog/building-pry/</link>
      <guid>https://www.perryts.com/vi/blog/building-pry/</guid>
      <pubDate>Thu, 20 Feb 2025 00:00:00 GMT</pubDate>
      <description>Hướng dẫn xây dựng Pry, một trình xem JSON gốc được biên dịch từ TypeScript thành mã máy có thời gian chạy Perry và GC được liên kết trong đó và không có chế độ xem web.</description>
    </item>
    <item>
      <title>UI gốc đa nền tảng từ TypeScript</title>
      <link>https://www.perryts.com/vi/blog/cross-platform-native-ui/</link>
      <guid>https://www.perryts.com/vi/blog/cross-platform-native-ui/</guid>
      <pubDate>Sat, 01 Feb 2025 00:00:00 GMT</pubDate>
      <description>Cách Perry ánh xạ một cơ sở mã TypeScript tới các tiện ích nền tảng trên các mục tiêu được ghi lại của nó, bao gồm các giới hạn và điều kiện tiên quyết dành riêng cho nền tảng.</description>
    </item>
    <item>
      <title>Giới thiệu Perry</title>
      <link>https://www.perryts.com/vi/blog/introducing-perry/</link>
      <guid>https://www.perryts.com/vi/blog/introducing-perry/</guid>
      <pubDate>Wed, 15 Jan 2025 00:00:00 GMT</pubDate>
      <description>Perry biên dịch TypeScript được hỗ trợ thành các tệp thực thi gốc độc lập với thời gian chạy và GC được liên kết bên trong mà không yêu cầu cài đặt Node.js bên ngoài hoặc JavaScript.</description>
    </item>
  </channel>
</rss>
