Skip to content

Commit 1747725

Browse files
authored
Merge pull request #393 from vercel-labs/ctate/v0.3.0
Prepare v0.3.0 release
2 parents 02f938f + 6b0b19c commit 1747725

8 files changed

Lines changed: 27 additions & 13 deletions

File tree

CHANGELOG.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,25 @@
11
# Changelog
22

3-
## 0.2.1
3+
## 0.3.0
44

55
<!-- release:start -->
66

7+
- Makes graph-first package authoring the normal workflow: repository `zero.graph` stores are the compiler input, `.0` files are human-readable projections, `zero init` owns project creation, `zero diff` supports graph review, and source projection inputs are rejected at the compiler boundary.
8+
- Adds binary repository graph stores and graph-backed standard-library modules, with source-free status/verify, import/export, merge, query, patch, source-map, reconciliation, metadata, drift detection, and checked-in binary graph fixtures for examples, stdlib, and conformance.
9+
- Advances graph-native compiler execution across check, build, run, test, size, doc, dev, time, package dependency, benchmark, and validation paths, including typed graph-to-MIR lowering, mapped final-MIR cache reuse, graph semantic/resolution/ownership facts, and graph-native test execution.
10+
- Introduces explicit experimental LLVM backend support with backend selection contracts, textual LLVM IR emission, host executable builds, toolchain diagnostics, profile facts, and no-fallback release policy.
11+
- Expands web API support in `std.http` with routing, JSON response/body validation, CORS, OPTIONS, path segment, bearer token, cookie/session helpers, HTTP listener/client graph lowering, and CRM/router/ping-pong examples.
12+
- Hardens direct backend and compiler internals with C API contracts, unsafe C link validation, target manifest matching, ABI layout tables, direct emit-kind handling, buildability value/target checks, TOML manifests, and stricter metrics guardrails.
13+
- Refreshes public docs, README, bundled skills, graph-first examples, command contracts, conformance, docs tests, aggregate validation, and sandboxed conformance workers around the current agent-facing workflow.
14+
15+
### Contributors
16+
17+
- @ctate
18+
19+
<!-- release:end -->
20+
21+
## 0.2.1
22+
723
- Adds extern C call support with target-aware header preprocessing, stricter link-plan validation, direct object linking, graph metadata fixes, and diagnostics for missing or unsafe C import inputs.
824
- Expands the standard library across memory, collections, search, sort, ASCII, formatting, text, parsing, math, random, time, codec, JSON, URL, hosted I/O, filesystem, HTTP, testing, and logging helpers.
925
- Strengthens memory-safety diagnostics for `Maybe` guards, owned moves, mutable span aliases, span lifetime escapes, aggregate reassignment, scalar match fallthrough, and exported safety facts.
@@ -17,8 +33,6 @@
1733
- @ihasq
1834
- @PeterXMR
1935

20-
<!-- release:end -->
21-
2236
## 0.2.0
2337

2438
- Makes canonical `.0` text the native source surface, with a parser, formatter, Program import path, diagnostics, docs, examples, stdlib sources, benchmarks, conformance fixtures, and command snapshots aligned around that format.

conformance/run.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4645,7 +4645,7 @@ assert.equal(depGraphBody.package.resolver.deterministic, true);
46454645
assert.match(depGraphBody.package.lockfile.path, /\.zero\/package-locks\/[0-9a-f]+\.lock\.json/);
46464646
assert(depGraphBody.package.dependencies.some((item) => item.name === "dep-lib" && item.status === "path-resolved" && item.targetCompatible === true));
46474647
assert(depGraphBody.package.dependencies.some((item) => item.name === "remote-tools" && item.status === "registry-reference" && item.version === "1.2.3"));
4648-
assert.equal(depGraphBody.packageCache.cacheKeyInputs.compilerVersion, "0.2.1");
4648+
assert.equal(depGraphBody.packageCache.cacheKeyInputs.compilerVersion, "0.3.0");
46494649
assert.equal(depGraphBody.packageCache.cacheKeyInputs.packageVersion, "0.1.0");
46504650
assert.match(depGraphBody.packageCache.cacheKeyInputs.dependencyGraphHash, /^[0-9a-f]{16}$/);
46514651
const depDoc = await execFileAsync(zero, ["doc", "--json", "conformance/packages/dep-app"]);

docs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "zero-docs",
33
"private": true,
4-
"version": "0.2.1",
4+
"version": "0.3.0",
55
"type": "module",
66
"packageManager": "pnpm@11.1.3",
77
"engines": {

extensions/vscode/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"displayName": "Zero Language",
44
"description": "Syntax highlighting for the Zero programming language.",
55
"publisher": "zero-lang",
6-
"version": "0.2.1",
6+
"version": "0.3.0",
77
"private": true,
88
"type": "module",
99
"categories": [

native/zero-c/include/zero.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
#include "zero_contracts.h"
88

9-
#define ZERO_VERSION "0.2.1"
9+
#define ZERO_VERSION "0.3.0"
1010

1111
typedef struct ZTargetInfo ZTargetInfo;
1212
typedef struct ZProgramGraph ZProgramGraph;

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "zero-lang-workspace",
33
"description": "Workspace for the Zero language docs, native compiler, examples, and editor tooling.",
4-
"version": "0.2.1",
4+
"version": "0.3.0",
55
"private": true,
66
"license": "Apache-2.0",
77
"packageManager": "pnpm@11.1.3",

scripts/snapshot-command-contracts.mts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -876,11 +876,11 @@ function directExeEmitterForTarget(target: string) {
876876

877877
const generatedCBytesBeforeReadOnlyCommands = json(["size", "--json", "examples/memory-package"]).body.generatedCBytes;
878878

879-
assert.equal(zero(["--version"]).stdout, "zero 0.2.1\n");
879+
assert.equal(zero(["--version"]).stdout, "zero 0.3.0\n");
880880

881881
const version = json(["--version", "--json"]).body;
882882
assert.equal(version.schemaVersion, 1);
883-
assert.equal(version.version, "0.2.1");
883+
assert.equal(version.version, "0.3.0");
884884
assert.equal(version.backend, "zero-c");
885885
assert.equal(typeof version.host, "string");
886886
assert(version.targets.includes("darwin-arm64"));
@@ -5985,7 +5985,7 @@ assert.equal(depDoc.package.name, "dep-app");
59855985
assert.equal(depDoc.publicationGate.requiresExamplesForPublicApi, true);
59865986
const depBuild = json(["build", "--json", "--target", "linux-musl-x64", "conformance/packages/dep-app", "--out", join(outDir, "dep-app")]).body;
59875987
assert.equal(depBuild.packageCache.invalidationReasons.includes("dependency graph changed"), true);
5988-
assert.equal(depBuild.compilerCaches.every((item) => item.compilerVersion === "0.2.1" && item.packageVersion === "0.1.0"), true);
5988+
assert.equal(depBuild.compilerCaches.every((item) => item.compilerVersion === "0.3.0" && item.packageVersion === "0.1.0"), true);
59895989
const depDevTrace = json(["dev", "--json", "--trace", "--target", "linux-musl-x64", "conformance/packages/dep-app"]).body;
59905990
assert.equal(depDevTrace.trace.requested, true);
59915991
assert.equal(depDevTrace.partialDiagnostics.stable, true);

tests/zero-cli.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ async function collectSkillMdFiles(dir: string): Promise<string[]> {
6262

6363
describe("native zero CLI", () => {
6464
it("prints a terse plain version", async () => {
65-
assert.equal((await runZero(["--version"])).stdout, "zero 0.2.1\n");
66-
assert.equal((await runNativeZero(["--version"])).stdout, "zero 0.2.1\n");
65+
assert.equal((await runZero(["--version"])).stdout, "zero 0.3.0\n");
66+
assert.equal((await runNativeZero(["--version"])).stdout, "zero 0.3.0\n");
6767
});
6868

6969
it("checks directly and rejects removed legacy build flags", async () => {

0 commit comments

Comments
 (0)