Skip to content

kg_cli and kg_server were written against Zig 0.14 and need migrating #3

Description

@gHashTag

Both binaries are excluded from the build in #2 because they do not compile on 0.15.2. These are real defects, not a toolchain artefact — CI on the targeted 0.15.2 reports them:

src/kg_cli.zig:43:26:    error: root source file struct 'Io' has no member named 'getStdOut'
src/kg_server.zig:81:45: error: struct 'array_list.Aligned(kg_server.Triple,null)' has no member named 'init'
src/kg_server.zig:138:25: error: member function expected 2 argument(s), found 1
src/kg_server.zig:1151:43: error: expected type '*Io.Reader', found 'net.Server.Connection'

Three separate 0.14 → 0.15 changes:

  1. std.io.getStdOut() / getStdIn() are gone. kg_cli.zig:43-44.
  2. std.ArrayList is unmanaged. .init(allocator) no longer exists and append takes the allocator as its first argument. Call sites at lines 81, 229, 241, 469, 662 and every append/deinit/toOwnedSlice that follows them.
  3. http.Server.init takes a reader, not a net.Server.Connection. kg_server.zig:1151.

That is a migration across roughly 1300 lines with many call sites, which is why it is not folded into #2 — the library is what other packages depend on and it builds and tests now; keeping the binaries in the default build would have kept the whole package unbuildable for the sake of two tools that have never run.

Worth noting for whoever picks it up: the reason none of this surfaced is that the repository had no build.zig and no workflow at all, so no compiler had ever read these files.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions