mirror of
https://github.com/vercel-labs/fx.git
synced 2026-10-28 10:15:17 +08:00
Build fx with Zig 0.17.0. build.zig.zon requires it, every workflow installs it, and PGSO qualification uses LLVM 22.1.8 to match. Zig 0.17 removes `**`, `errdefer |err|`, `@cImport`, and the old type info field lists. The source moves to `@splat`, a comptime `text_utils.repeat` helper, split cleanup functions, and the new field_names and field_types arrays. The Node-API addon translates node_api.h with a build step. Test fakes checked with `@hasDecl` become pub, because `@hasDecl` no longer sees private declarations. `zig build test` gives the test binary its fx and source paths through a generated test_paths module, since the build no longer exposes install paths for environment variables. Zig 0.17's SafeAllocator grows a small allocation in place only when it sits at the end of a bucket, and buckets are never reused, so an allocation-failure sweep could count a different number of allocations on each run. Sweeps and allocation-count tests now use testing_allocator.no_resize, which never resizes in place. allocRemaining now treats its limit as inclusive. readFileToEnd keeps rejecting a file of exactly max_bytes by reading through appendRemaining. Direct allocRemaining callers for remote responses now accept a body exactly at their limit. Zig 0.17's memset stores a full vector per iteration, so the Linux memset replacement is removed. macOS release binaries now require macOS 15, Zig 0.17's default minimum.
51 lines
2.5 KiB
Zig
51 lines
2.5 KiB
Zig
.{
|
|
// This is the default name used by packages depending on this one. For
|
|
// example, when a user runs `zig fetch --save <url>`, this field is used
|
|
// as the key in the `dependencies` table. Although the user can choose a
|
|
// different name, most users will stick with this provided value.
|
|
//
|
|
// It is redundant to include "zig" in this name because it is already
|
|
// within the Zig package namespace.
|
|
.name = .fx,
|
|
// This is a [Semantic Version](https://semver.org/).
|
|
// In a future version of Zig it will be used for package deduplication.
|
|
.version = "0.0.0",
|
|
// Together with name, this represents a globally unique package
|
|
// identifier. This field is generated by the Zig toolchain when the
|
|
// package is first created, and then *never changes*. This allows
|
|
// unambiguous detection of one package being an updated version of
|
|
// another.
|
|
//
|
|
// When forking a Zig project, this id should be regenerated (delete the
|
|
// field and run `zig build`) if the upstream project is still maintained.
|
|
// Otherwise, the fork is *hostile*, attempting to take control over the
|
|
// original project's identity. Thus it is recommended to leave the comment
|
|
// on the following line intact, so that it shows up in code reviews that
|
|
// modify the field.
|
|
.fingerprint = 0x2ca027d00bcd652c, // Changing this has security and trust implications.
|
|
// Tracks the earliest Zig version that the package considers to be a
|
|
// supported use case.
|
|
.minimum_zig_version = "0.17.0",
|
|
// This field is optional.
|
|
// Each dependency must either provide a `url` and `hash`, or a `path`.
|
|
// `zig build --fetch` can be used to fetch all dependencies of a package, recursively.
|
|
// Once all dependencies are fetched, `zig build` no longer requires
|
|
// internet connectivity.
|
|
.dependencies = .{},
|
|
// Specifies the set of files and directories that are included in this package.
|
|
// Only files and directories listed here are included in the `hash` that
|
|
// is computed for this package. Only files listed here will remain on disk
|
|
// when using the zig package manager. As a rule of thumb, one should list
|
|
// files required for compilation plus any license(s).
|
|
// Paths are relative to the build root. Use the empty string (`""`) to refer to
|
|
// the build root itself.
|
|
// A directory listed here means that all files within, recursively, are included.
|
|
.paths = .{
|
|
"build.zig",
|
|
"build.zig.zon",
|
|
"LICENSE",
|
|
"src",
|
|
"THIRD_PARTY_NOTICES.md",
|
|
},
|
|
}
|