Skip to content

v12.1.094641eb.1

Choose a tag to compare

@theMackabu theMackabu released this 26 Jun 17:48
094641e

Ant 12.1.094641eb.1

A large package-management, REPL, installer, and runtime compatibility release.

This release moves Ant onto the new hash-based version format, brings the package
manager through a major rewrite, adds first-class ants.land tooling, makes the
REPL much more useful day-to-day, and tightens a long list of Node/web runtime
compatibility edges.

Highlights

Package installs are faster and more robust

  • Added built-in ants.land registry support.
  • Reworked the package manager around the newer Zig 0.16 implementation.
  • Improved resolver performance, fallback behavior, and secondary registry lookup paths.
  • Added metadata support to the registry path.
  • Fixed postinstall lifecycle ordering.
  • Added better file-count validation for extracted packages.
  • Prevented half-written tarballs from being treated as valid cache entries.
  • Added more extraction error logging so broken package installs are easier to diagnose.
  • Improved copy behavior across devices on Linux.
  • Added trust handling fixes for already-installed packages.
  • Prevented libuv from blocking HTTP/2 package downloads.

REPL and interactive use got a lot better

  • Added live inspection support.
  • Added tab autocomplete.
  • Added a CJS/module selector for --eval.
  • Added safe inspector expression evaluation for simple expressions and member access.
  • Prevented readline history overflow with stricter bounds checks.

Installer and upgrade flow were cleaned up

  • Made the install script generated from JS/config instead of hand-maintained shell.
  • Switched installer downloads to the manifest-backed Ant download endpoint.
  • Added target selection config for macOS, Linux, Windows, and musl Linux.
  • Changed Ant versions from timestamp-style semver to major.minor.git-hash.patch.
  • Updated Nix version generation to match the new version format.
  • Updated ant upgrade to compare same-version builds by build timestamp.

WebSockets and server behavior improved

  • Fixed invalid request-target handling.
  • Hardened server request URL handling.
  • Added server WebSocket configuration options.
  • Added per-message-deflate support, payload limits, and compressed-frame handling for server WebSockets.
  • Added a @ant/hono package for Hono WebSocket upgrades backed by Ant's native server runtime.

WebCrypto and crypto support expanded

  • Added a larger WebCrypto implementation pass.
  • Added more algorithm handling around subtle crypto APIs.
  • Added HMAC-backed crypto state.
  • Added crypto key handling for HMAC and AES-GCM-style keys.
  • Added cipher state support for native-backed crypto operations.

Node and web API compatibility improved

  • Added fs.fsync(fd, callback) and fs.fsyncSync(fd).
  • Added Readable.toWeb.
  • Improved fetch/request/response/header behavior.
  • Fixed restricted headers being dropped.
  • Improved node:http incoming message readability.
  • Fixed timer unref exit behavior.
  • Improved process behavior and typings.
  • Added support for writing bytes in filesystem paths that need it.
  • Fixed JSON enum/stringify edge cases.
  • Improved Intl support.
  • Added String.prototype.startsWith position argument behavior.
  • Added better handling for numerical exotic values.
  • Fixed collection forEach thisArg behavior.

ESM and CommonJS loading are more correct

  • Added better ESM detection.
  • Added ambiguous .js handling based on package type and source syntax.
  • Added static dependency instantiation before module evaluation.
  • Fixed suffix matching in module/package resolution.
  • Freed parser ASTs after parsing to reduce retained memory.
  • Removed the old generated features.ts path.

JavaScript parser and runtime correctness fixes

  • Unterminated template literals now throw correctly.
  • Fixed leading-numeral AST/parser behavior.
  • Fixed private class parser behavior.
  • Fixed window/global identifier shadowing behavior.
  • Improved template-literal scanning for nested expressions.

Builds, performance, and binary quality improved

  • Optimized linker speed.
  • Added optional profile-guided optimization support, including meson/pgo/build.sh and a checked-in Darwin ARM64 profile.
  • Added mimalloc as a vendored allocator option.
  • Improved Nix packaging and vendor hash update tooling.

Sandbox and platform packaging moved forward

  • Added a tmpfs ramdisk path for sandbox usage.
  • Added a sandbox patch for a root tmpfs mount.
  • Updated sandbox build packaging.

New tests and coverage

  • Added tests for CLI eval module selection.
  • Added tests for CLI file arguments taking precedence over package scripts.
  • Added tests for package lifecycle postinstall ordering.
  • Added tests for readline history bounds and piped readline/promises.
  • Added tests for REPL static imports.
  • Added tests for parser unterminated templates.
  • Added tests for server invalid request targets.
  • Added tests for stream Readable.toWeb.
  • Added tests for fs.fsync and buffer writes.
  • Added tests for WebSocket server options and buffered frames.
  • Added tests for WebCrypto/crypto extensions.
  • Added an allocator benchmark.

To upgrade to Ant 12.1.094641eb.1:

ant upgrade

To install Ant 12.1.094641eb.1:

curl -fsSL https://antjs.org/install | bash