diff --git a/build.zig b/build.zig
index ace08e740b08..b6656c4df95c 100644
--- a/build.zig
+++ b/build.zig
@@ -3,7 +3,6 @@ const builtin = std.builtin;
const tests = @import("test/tests.zig");
const BufMap = std.BufMap;
const mem = std.mem;
-const ArrayList = std.ArrayList;
const io = std.io;
const fs = std.fs;
const InstallDirectoryOptions = std.Build.InstallDirectoryOptions;
@@ -925,7 +924,7 @@ fn addCxxKnownPath(
return error.RequiredLibraryNotFound;
const path_padded = run: {
- var args = std.ArrayList([]const u8).init(b.allocator);
+ var args = std.array_list.Managed([]const u8).init(b.allocator);
try args.append(ctx.cxx_compiler);
var it = std.mem.tokenizeAny(u8, ctx.cxx_compiler_arg1, &std.ascii.whitespace);
while (it.next()) |arg| try args.append(arg);
diff --git a/doc/langref.html.in b/doc/langref.html.in
index de26c7d6432c..1fa37dbe0a9e 100644
--- a/doc/langref.html.in
+++ b/doc/langref.html.in
@@ -6241,9 +6241,8 @@ fn cmpxchgWeakButNotAtomic(comptime T: type, ptr: *T, expected_value: T, new_val
C has a default allocator - malloc, realloc, and free.
When linking against libc, Zig exposes this allocator with {#syntax#}std.heap.c_allocator{#endsyntax#}.
However, by convention, there is no default allocator in Zig. Instead, functions which need to
- allocate accept an {#syntax#}Allocator{#endsyntax#} parameter. Likewise, data structures such as
- {#syntax#}std.ArrayList{#endsyntax#} accept an {#syntax#}Allocator{#endsyntax#} parameter in
- their initialization functions:
+ allocate accept an {#syntax#}Allocator{#endsyntax#} parameter. Likewise, some data structures
+ accept an {#syntax#}Allocator{#endsyntax#} parameter in their initialization functions:
{#code|test_allocator.zig#}
diff --git a/doc/langref/testing_detect_leak.zig b/doc/langref/testing_detect_leak.zig
index 0f2f27e0254c..c99fc03bf6d0 100644
--- a/doc/langref/testing_detect_leak.zig
+++ b/doc/langref/testing_detect_leak.zig
@@ -1,7 +1,7 @@
const std = @import("std");
test "detect leak" {
- var list = std.ArrayList(u21).init(std.testing.allocator);
+ var list = std.array_list.Managed(u21).init(std.testing.allocator);
// missing `defer list.deinit();`
try list.append('☔');
diff --git a/lib/compiler/aro/aro/Compilation.zig b/lib/compiler/aro/aro/Compilation.zig
index d723fdc3c5a3..77d60a1e9d6e 100644
--- a/lib/compiler/aro/aro/Compilation.zig
+++ b/lib/compiler/aro/aro/Compilation.zig
@@ -533,7 +533,7 @@ fn generateSystemDefines(comp: *Compilation, w: anytype) !void {
pub fn generateBuiltinMacros(comp: *Compilation, system_defines_mode: SystemDefinesMode) !Source {
try comp.generateBuiltinTypes();
- var buf = std.ArrayList(u8).init(comp.gpa);
+ var buf = std.array_list.Managed(u8).init(comp.gpa);
defer buf.deinit();
if (system_defines_mode == .include_system_defines) {
@@ -1143,7 +1143,7 @@ pub fn addSourceFromOwnedBuffer(comp: *Compilation, buf: []u8, path: []const u8,
const duped_path = try comp.gpa.dupe(u8, path);
errdefer comp.gpa.free(duped_path);
- var splice_list = std.ArrayList(u32).init(comp.gpa);
+ var splice_list = std.array_list.Managed(u32).init(comp.gpa);
defer splice_list.deinit();
const source_id: Source.Id = @enumFromInt(comp.sources.count() + 2);
@@ -1428,7 +1428,7 @@ fn getFileContents(comp: *Compilation, path: []const u8, limit: ?u32) ![]const u
const file = try comp.cwd.openFile(path, .{});
defer file.close();
- var buf = std.ArrayList(u8).init(comp.gpa);
+ var buf = std.array_list.Managed(u8).init(comp.gpa);
defer buf.deinit();
const max = limit orelse std.math.maxInt(u32);
diff --git a/lib/compiler/aro/aro/Driver.zig b/lib/compiler/aro/aro/Driver.zig
index d2359cfc04e3..bd1663d71749 100644
--- a/lib/compiler/aro/aro/Driver.zig
+++ b/lib/compiler/aro/aro/Driver.zig
@@ -590,7 +590,7 @@ var stdout_buffer: [4096]u8 = undefined;
/// The entry point of the Aro compiler.
/// **MAY call `exit` if `fast_exit` is set.**
pub fn main(d: *Driver, tc: *Toolchain, args: []const []const u8, comptime fast_exit: bool) !void {
- var macro_buf = std.ArrayList(u8).init(d.comp.gpa);
+ var macro_buf = std.array_list.Managed(u8).init(d.comp.gpa);
defer macro_buf.deinit();
const std_out = std.fs.File.stdout().deprecatedWriter();
@@ -817,7 +817,7 @@ fn dumpLinkerArgs(items: []const []const u8) !void {
/// The entry point of the Aro compiler.
/// **MAY call `exit` if `fast_exit` is set.**
pub fn invokeLinker(d: *Driver, tc: *Toolchain, comptime fast_exit: bool) !void {
- var argv = std.ArrayList([]const u8).init(d.comp.gpa);
+ var argv = std.array_list.Managed([]const u8).init(d.comp.gpa);
defer argv.deinit();
var linker_path_buf: [std.fs.max_path_bytes]u8 = undefined;
diff --git a/lib/compiler/aro/aro/InitList.zig b/lib/compiler/aro/aro/InitList.zig
index 5a5765216ccf..d1d8066dd207 100644
--- a/lib/compiler/aro/aro/InitList.zig
+++ b/lib/compiler/aro/aro/InitList.zig
@@ -9,7 +9,7 @@ const TokenIndex = Tree.TokenIndex;
const NodeIndex = Tree.NodeIndex;
const Type = @import("Type.zig");
const Diagnostics = @import("Diagnostics.zig");
-const NodeList = std.ArrayList(NodeIndex);
+const NodeList = std.array_list.Managed(NodeIndex);
const Parser = @import("Parser.zig");
const Item = struct {
diff --git a/lib/compiler/aro/aro/Parser.zig b/lib/compiler/aro/aro/Parser.zig
index e8a2da48a511..14cd70fdfdb3 100644
--- a/lib/compiler/aro/aro/Parser.zig
+++ b/lib/compiler/aro/aro/Parser.zig
@@ -15,7 +15,7 @@ const TokenIndex = Tree.TokenIndex;
const NodeIndex = Tree.NodeIndex;
const Type = @import("Type.zig");
const Diagnostics = @import("Diagnostics.zig");
-const NodeList = std.ArrayList(NodeIndex);
+const NodeList = std.array_list.Managed(NodeIndex);
const InitList = @import("InitList.zig");
const Attribute = @import("Attribute.zig");
const char_info = @import("char_info.zig");
@@ -33,7 +33,7 @@ const target_util = @import("target.zig");
const Switch = struct {
default: ?TokenIndex = null,
- ranges: std.ArrayList(Range),
+ ranges: std.array_list.Managed(Range),
ty: Type,
comp: *Compilation,
@@ -101,16 +101,16 @@ value_map: Tree.ValueMap,
// buffers used during compilation
syms: SymbolStack = .{},
-strings: std.ArrayListAligned(u8, .@"4"),
-labels: std.ArrayList(Label),
+strings: std.array_list.AlignedManaged(u8, .@"4"),
+labels: std.array_list.Managed(Label),
list_buf: NodeList,
decl_buf: NodeList,
-param_buf: std.ArrayList(Type.Func.Param),
-enum_buf: std.ArrayList(Type.Enum.Field),
-record_buf: std.ArrayList(Type.Record.Field),
+param_buf: std.array_list.Managed(Type.Func.Param),
+enum_buf: std.array_list.Managed(Type.Enum.Field),
+record_buf: std.array_list.Managed(Type.Record.Field),
attr_buf: std.MultiArrayList(TentativeAttribute) = .{},
attr_application_buf: std.ArrayListUnmanaged(Attribute) = .empty,
-field_attr_buf: std.ArrayList([]const Attribute),
+field_attr_buf: std.array_list.Managed([]const Attribute),
/// type name -> variable name location for tentative definitions (top-level defs with thus-far-incomplete types)
/// e.g. `struct Foo bar;` where `struct Foo` is not defined yet.
/// The key is the StringId of `Foo` and the value is the TokenIndex of `bar`
@@ -693,16 +693,16 @@ pub fn parse(pp: *Preprocessor) Compilation.Error!Tree {
.gpa = pp.comp.gpa,
.arena = arena.allocator(),
.tok_ids = pp.tokens.items(.id),
- .strings = std.ArrayListAligned(u8, .@"4").init(pp.comp.gpa),
+ .strings = std.array_list.AlignedManaged(u8, .@"4").init(pp.comp.gpa),
.value_map = Tree.ValueMap.init(pp.comp.gpa),
.data = NodeList.init(pp.comp.gpa),
- .labels = std.ArrayList(Label).init(pp.comp.gpa),
+ .labels = std.array_list.Managed(Label).init(pp.comp.gpa),
.list_buf = NodeList.init(pp.comp.gpa),
.decl_buf = NodeList.init(pp.comp.gpa),
- .param_buf = std.ArrayList(Type.Func.Param).init(pp.comp.gpa),
- .enum_buf = std.ArrayList(Type.Enum.Field).init(pp.comp.gpa),
- .record_buf = std.ArrayList(Type.Record.Field).init(pp.comp.gpa),
- .field_attr_buf = std.ArrayList([]const Attribute).init(pp.comp.gpa),
+ .param_buf = std.array_list.Managed(Type.Func.Param).init(pp.comp.gpa),
+ .enum_buf = std.array_list.Managed(Type.Enum.Field).init(pp.comp.gpa),
+ .record_buf = std.array_list.Managed(Type.Record.Field).init(pp.comp.gpa),
+ .field_attr_buf = std.array_list.Managed([]const Attribute).init(pp.comp.gpa),
.string_ids = .{
.declspec_id = try StrInt.intern(pp.comp, "__declspec"),
.main_id = try StrInt.intern(pp.comp, "main"),
@@ -1222,7 +1222,7 @@ fn staticAssertMessage(p: *Parser, cond_node: NodeIndex, message: Result) !?[]co
const cond_tag = p.nodes.items(.tag)[@intFromEnum(cond_node)];
if (cond_tag != .builtin_types_compatible_p and message.node == .none) return null;
- var buf = std.ArrayList(u8).init(p.gpa);
+ var buf = std.array_list.Managed(u8).init(p.gpa);
defer buf.deinit();
if (cond_tag == .builtin_types_compatible_p) {
@@ -3994,7 +3994,7 @@ fn msvcAsmStmt(p: *Parser) Error!?NodeIndex {
}
/// asmOperand : ('[' IDENTIFIER ']')? asmStr '(' expr ')'
-fn asmOperand(p: *Parser, names: *std.ArrayList(?TokenIndex), constraints: *NodeList, exprs: *NodeList) Error!void {
+fn asmOperand(p: *Parser, names: *std.array_list.Managed(?TokenIndex), constraints: *NodeList, exprs: *NodeList) Error!void {
if (p.eatToken(.l_bracket)) |l_bracket| {
const ident = (try p.eatIdentifier()) orelse {
try p.err(.expected_identifier);
@@ -4044,7 +4044,7 @@ fn gnuAsmStmt(p: *Parser, quals: Tree.GNUAssemblyQualifiers, asm_tok: TokenIndex
const allocator = stack_fallback.get();
// TODO: Consider using a TokenIndex of 0 instead of null if we need to store the names in the tree
- var names = std.ArrayList(?TokenIndex).initCapacity(allocator, expected_items) catch unreachable; // stack allocation already succeeded
+ var names = std.array_list.Managed(?TokenIndex).initCapacity(allocator, expected_items) catch unreachable; // stack allocation already succeeded
defer names.deinit();
var constraints = NodeList.initCapacity(allocator, expected_items) catch unreachable; // stack allocation already succeeded
defer constraints.deinit();
@@ -4317,7 +4317,7 @@ fn stmt(p: *Parser) Error!NodeIndex {
const old_switch = p.@"switch";
var @"switch" = Switch{
- .ranges = std.ArrayList(Switch.Range).init(p.gpa),
+ .ranges = std.array_list.Managed(Switch.Range).init(p.gpa),
.ty = cond.ty,
.comp = p.comp,
};
@@ -8268,7 +8268,7 @@ fn charLiteral(p: *Parser) Error!Result {
const max_chars_expected = 4;
var stack_fallback = std.heap.stackFallback(max_chars_expected * @sizeOf(u32), p.comp.gpa);
- var chars = std.ArrayList(u32).initCapacity(stack_fallback.get(), max_chars_expected) catch unreachable; // stack allocation already succeeded
+ var chars = std.array_list.Managed(u32).initCapacity(stack_fallback.get(), max_chars_expected) catch unreachable; // stack allocation already succeeded
defer chars.deinit();
while (char_literal_parser.next()) |item| switch (item) {
diff --git a/lib/compiler/aro/aro/Preprocessor.zig b/lib/compiler/aro/aro/Preprocessor.zig
index 4a4fe05995d0..1ad666fecd88 100644
--- a/lib/compiler/aro/aro/Preprocessor.zig
+++ b/lib/compiler/aro/aro/Preprocessor.zig
@@ -17,7 +17,7 @@ const features = @import("features.zig");
const Hideset = @import("Hideset.zig");
const DefineMap = std.StringHashMapUnmanaged(Macro);
-const RawTokenList = std.ArrayList(RawToken);
+const RawTokenList = std.array_list.Managed(RawToken);
const max_include_depth = 200;
/// Errors that can be returned when expanding a macro.
@@ -84,7 +84,7 @@ tokens: Token.List = .{},
/// Do not directly mutate this; must be kept in sync with `tokens`
expansion_entries: std.MultiArrayList(ExpansionEntry) = .{},
token_buf: RawTokenList,
-char_buf: std.ArrayList(u8),
+char_buf: std.array_list.Managed(u8),
/// Counter that is incremented each time preprocess() is called
/// Can be used to distinguish multiple preprocessings of the same file
preprocess_count: u32 = 0,
@@ -131,7 +131,7 @@ pub fn init(comp: *Compilation) Preprocessor {
.gpa = comp.gpa,
.arena = std.heap.ArenaAllocator.init(comp.gpa),
.token_buf = RawTokenList.init(comp.gpa),
- .char_buf = std.ArrayList(u8).init(comp.gpa),
+ .char_buf = std.array_list.Managed(u8).init(comp.gpa),
.poisoned_identifiers = std.StringHashMap(void).init(comp.gpa),
.top_expansion_buf = ExpandBuf.init(comp.gpa),
.hideset = .{ .comp = comp },
@@ -982,7 +982,7 @@ fn expr(pp: *Preprocessor, tokenizer: *Tokenizer) MacroError!bool {
.tok_i = @intCast(token_state.tokens_len),
.arena = pp.arena.allocator(),
.in_macro = true,
- .strings = std.ArrayListAligned(u8, .@"4").init(pp.comp.gpa),
+ .strings = std.array_list.AlignedManaged(u8, .@"4").init(pp.comp.gpa),
.data = undefined,
.value_map = undefined,
@@ -1140,7 +1140,7 @@ fn skipToNl(tokenizer: *Tokenizer) void {
}
}
-const ExpandBuf = std.ArrayList(TokenWithExpansionLocs);
+const ExpandBuf = std.array_list.Managed(TokenWithExpansionLocs);
fn removePlacemarkers(buf: *ExpandBuf) void {
var i: usize = buf.items.len -% 1;
while (i < buf.items.len) : (i -%= 1) {
@@ -1151,7 +1151,7 @@ fn removePlacemarkers(buf: *ExpandBuf) void {
}
}
-const MacroArguments = std.ArrayList([]const TokenWithExpansionLocs);
+const MacroArguments = std.array_list.Managed([]const TokenWithExpansionLocs);
fn deinitMacroArguments(allocator: Allocator, args: *const MacroArguments) void {
for (args.items) |item| {
for (item) |tok| TokenWithExpansionLocs.free(tok.expansion_locs, allocator);
@@ -2075,7 +2075,7 @@ fn collectMacroFuncArguments(
var parens: u32 = 0;
var args = MacroArguments.init(pp.gpa);
errdefer deinitMacroArguments(pp.gpa, &args);
- var curArgument = std.ArrayList(TokenWithExpansionLocs).init(pp.gpa);
+ var curArgument = std.array_list.Managed(TokenWithExpansionLocs).init(pp.gpa);
defer curArgument.deinit();
while (true) {
var tok = try nextBufToken(pp, tokenizer, buf, start_idx, end_idx, extend_buf);
@@ -2645,7 +2645,7 @@ fn define(pp: *Preprocessor, tokenizer: *Tokenizer, define_tok: RawToken) Error!
/// Handle a function like #define directive.
fn defineFn(pp: *Preprocessor, tokenizer: *Tokenizer, define_tok: RawToken, macro_name: RawToken, l_paren: RawToken) Error!void {
assert(macro_name.id.isMacroIdentifier());
- var params = std.ArrayList([]const u8).init(pp.gpa);
+ var params = std.array_list.Managed([]const u8).init(pp.gpa);
defer params.deinit();
// Parse the parameter list.
@@ -3471,7 +3471,7 @@ test "Preserve pragma tokens sometimes" {
const allocator = std.testing.allocator;
const Test = struct {
fn runPreprocessor(source_text: []const u8) ![]const u8 {
- var buf = std.ArrayList(u8).init(allocator);
+ var buf = std.array_list.Managed(u8).init(allocator);
defer buf.deinit();
var comp = Compilation.init(allocator, std.fs.cwd());
@@ -3602,7 +3602,7 @@ test "Include guards" {
_ = try comp.addSourceFromBuffer(path, "int bar = 5;\n");
- var buf = std.ArrayList(u8).init(allocator);
+ var buf = std.array_list.Managed(u8).init(allocator);
defer buf.deinit();
var writer = buf.writer();
diff --git a/lib/compiler/aro/aro/Toolchain.zig b/lib/compiler/aro/aro/Toolchain.zig
index bbd540b1b6d3..71365b7b75ee 100644
--- a/lib/compiler/aro/aro/Toolchain.zig
+++ b/lib/compiler/aro/aro/Toolchain.zig
@@ -157,7 +157,7 @@ pub fn getLinkerPath(tc: *const Toolchain, buf: []u8) ![]const u8 {
return use_linker;
}
} else {
- var linker_name = try std.ArrayList(u8).initCapacity(tc.driver.comp.gpa, 5 + use_linker.len); // "ld64." ++ use_linker
+ var linker_name = try std.array_list.Managed(u8).initCapacity(tc.driver.comp.gpa, 5 + use_linker.len); // "ld64." ++ use_linker
defer linker_name.deinit();
if (tc.getTarget().os.tag.isDarwin()) {
linker_name.appendSliceAssumeCapacity("ld64.");
@@ -198,7 +198,7 @@ fn possibleProgramNames(raw_triple: ?[]const u8, name: []const u8, buf: *[64]u8)
}
/// Add toolchain `file_paths` to argv as `-L` arguments
-pub fn addFilePathLibArgs(tc: *const Toolchain, argv: *std.ArrayList([]const u8)) !void {
+pub fn addFilePathLibArgs(tc: *const Toolchain, argv: *std.array_list.Managed([]const u8)) !void {
try argv.ensureUnusedCapacity(tc.file_paths.items.len);
var bytes_needed: usize = 0;
@@ -332,7 +332,7 @@ pub fn addPathFromComponents(tc: *Toolchain, components: []const []const u8, des
/// Add linker args to `argv`. Does not add path to linker executable as first item; that must be handled separately
/// Items added to `argv` will be string literals or owned by `tc.arena` so they must not be individually freed
-pub fn buildLinkerArgs(tc: *Toolchain, argv: *std.ArrayList([]const u8)) !void {
+pub fn buildLinkerArgs(tc: *Toolchain, argv: *std.array_list.Managed([]const u8)) !void {
return switch (tc.inner) {
.uninitialized => unreachable,
.linux => |*linux| linux.buildLinkerArgs(tc, argv),
@@ -412,7 +412,7 @@ fn getAsNeededOption(is_solaris: bool, needed: bool) []const u8 {
}
}
-fn addUnwindLibrary(tc: *const Toolchain, argv: *std.ArrayList([]const u8)) !void {
+fn addUnwindLibrary(tc: *const Toolchain, argv: *std.array_list.Managed([]const u8)) !void {
const unw = try tc.getUnwindLibKind();
const target = tc.getTarget();
if ((target.abi.isAndroid() and unw == .libgcc) or
@@ -450,7 +450,7 @@ fn addUnwindLibrary(tc: *const Toolchain, argv: *std.ArrayList([]const u8)) !voi
}
}
-fn addLibGCC(tc: *const Toolchain, argv: *std.ArrayList([]const u8)) !void {
+fn addLibGCC(tc: *const Toolchain, argv: *std.array_list.Managed([]const u8)) !void {
const libgcc_kind = tc.getLibGCCKind();
if (libgcc_kind == .static or libgcc_kind == .unspecified) {
try argv.append("-lgcc");
@@ -461,7 +461,7 @@ fn addLibGCC(tc: *const Toolchain, argv: *std.ArrayList([]const u8)) !void {
}
}
-pub fn addRuntimeLibs(tc: *const Toolchain, argv: *std.ArrayList([]const u8)) !void {
+pub fn addRuntimeLibs(tc: *const Toolchain, argv: *std.array_list.Managed([]const u8)) !void {
const target = tc.getTarget();
const rlt = tc.getRuntimeLibKind();
switch (rlt) {
diff --git a/lib/compiler/aro/aro/Tree.zig b/lib/compiler/aro/aro/Tree.zig
index a1b15bd66916..f03b8e2293de 100644
--- a/lib/compiler/aro/aro/Tree.zig
+++ b/lib/compiler/aro/aro/Tree.zig
@@ -41,7 +41,7 @@ pub const TokenWithExpansionLocs = struct {
pub fn addExpansionLocation(tok: *TokenWithExpansionLocs, gpa: std.mem.Allocator, new: []const Source.Location) !void {
if (new.len == 0 or tok.id == .whitespace or tok.id == .macro_ws or tok.id == .placemarker) return;
- var list = std.ArrayList(Source.Location).init(gpa);
+ var list = std.array_list.Managed(Source.Location).init(gpa);
defer {
@memset(list.items.ptr[list.items.len..list.capacity], .{});
// Add a sentinel to indicate the end of the list since
diff --git a/lib/compiler/aro/aro/toolchains/Linux.zig b/lib/compiler/aro/aro/toolchains/Linux.zig
index 10d5c7d21eb6..fe6272b6b4fb 100644
--- a/lib/compiler/aro/aro/toolchains/Linux.zig
+++ b/lib/compiler/aro/aro/toolchains/Linux.zig
@@ -162,7 +162,7 @@ pub fn getDefaultLinker(self: *const Linux, target: std.Target) []const u8 {
return "ld";
}
-pub fn buildLinkerArgs(self: *const Linux, tc: *const Toolchain, argv: *std.ArrayList([]const u8)) Compilation.Error!void {
+pub fn buildLinkerArgs(self: *const Linux, tc: *const Toolchain, argv: *std.array_list.Managed([]const u8)) Compilation.Error!void {
const d = tc.driver;
const target = tc.getTarget();
@@ -465,7 +465,7 @@ test Linux {
try toolchain.discover();
- var argv = std.ArrayList([]const u8).init(driver.comp.gpa);
+ var argv = std.array_list.Managed([]const u8).init(driver.comp.gpa);
defer argv.deinit();
var linker_path_buf: [std.fs.max_path_bytes]u8 = undefined;
diff --git a/lib/compiler/aro/backend/Object.zig b/lib/compiler/aro/backend/Object.zig
index 98355e88b6a0..d8b2dd2b9a21 100644
--- a/lib/compiler/aro/backend/Object.zig
+++ b/lib/compiler/aro/backend/Object.zig
@@ -30,7 +30,7 @@ pub const Section = union(enum) {
custom: []const u8,
};
-pub fn getSection(obj: *Object, section: Section) !*std.ArrayList(u8) {
+pub fn getSection(obj: *Object, section: Section) !*std.array_list.Managed(u8) {
switch (obj.format) {
.elf => return @as(*Elf, @alignCast(@fieldParentPtr("obj", obj))).getSection(section),
else => unreachable,
diff --git a/lib/compiler/aro/backend/Object/Elf.zig b/lib/compiler/aro/backend/Object/Elf.zig
index c7f6caad9690..b38ad251cfec 100644
--- a/lib/compiler/aro/backend/Object/Elf.zig
+++ b/lib/compiler/aro/backend/Object/Elf.zig
@@ -4,7 +4,7 @@ const Target = std.Target;
const Object = @import("../Object.zig");
const Section = struct {
- data: std.ArrayList(u8),
+ data: std.array_list.Managed(u8),
relocations: std.ArrayListUnmanaged(Relocation) = .empty,
flags: u64,
type: u32,
@@ -80,12 +80,12 @@ fn sectionString(sec: Object.Section) []const u8 {
};
}
-pub fn getSection(elf: *Elf, section_kind: Object.Section) !*std.ArrayList(u8) {
+pub fn getSection(elf: *Elf, section_kind: Object.Section) !*std.array_list.Managed(u8) {
const section_name = sectionString(section_kind);
const section = elf.sections.get(section_name) orelse blk: {
const section = try elf.arena.allocator().create(Section);
section.* = .{
- .data = std.ArrayList(u8).init(elf.arena.child_allocator),
+ .data = std.array_list.Managed(u8).init(elf.arena.child_allocator),
.type = std.elf.SHT_PROGBITS,
.flags = switch (section_kind) {
.func, .custom => std.elf.SHF_ALLOC + std.elf.SHF_EXECINSTR,
diff --git a/lib/compiler/aro_translate_c.zig b/lib/compiler/aro_translate_c.zig
index 31ec1ceab964..cd8bd05c7cd7 100644
--- a/lib/compiler/aro_translate_c.zig
+++ b/lib/compiler/aro_translate_c.zig
@@ -116,7 +116,7 @@ pub fn translate(
var driver: aro.Driver = .{ .comp = comp };
defer driver.deinit();
- var macro_buf = std.ArrayList(u8).init(gpa);
+ var macro_buf = std.array_list.Managed(u8).init(gpa);
defer macro_buf.deinit();
assert(!try driver.parseArgs(std.io.null_writer, macro_buf.writer(), args));
@@ -413,11 +413,11 @@ fn transRecordDecl(c: *Context, scope: *Scope, record_ty: Type) Error!void {
break :blk ZigTag.opaque_literal.init();
}
- var fields = try std.ArrayList(ast.Payload.Record.Field).initCapacity(c.gpa, record_decl.fields.len);
+ var fields = try std.array_list.Managed(ast.Payload.Record.Field).initCapacity(c.gpa, record_decl.fields.len);
defer fields.deinit();
// TODO: Add support for flexible array field functions
- var functions = std.ArrayList(ZigNode).init(c.gpa);
+ var functions = std.array_list.Managed(ZigNode).init(c.gpa);
defer functions.deinit();
var unnamed_field_count: u32 = 0;
@@ -1234,7 +1234,7 @@ pub const PatternList = struct {
const source = template[0];
const impl = template[1];
- var tok_list = std.ArrayList(CToken).init(allocator);
+ var tok_list = std.array_list.Managed(CToken).init(allocator);
defer tok_list.deinit();
try tokenizeMacro(source, &tok_list);
const tokens = try allocator.dupe(CToken, tok_list.items);
@@ -1349,7 +1349,7 @@ pub const TypeError = Error || error{UnsupportedType};
pub const TransError = TypeError || error{UnsupportedTranslation};
pub const SymbolTable = std.StringArrayHashMap(ast.Node);
-pub const AliasList = std.ArrayList(struct {
+pub const AliasList = std.array_list.Managed(struct {
alias: []const u8,
name: []const u8,
});
@@ -1397,7 +1397,7 @@ pub fn ScopeExtra(comptime ScopeExtraContext: type, comptime ScopeExtraType: typ
/// into the main arena.
pub const Block = struct {
base: ScopeExtraScope,
- statements: std.ArrayList(ast.Node),
+ statements: std.array_list.Managed(ast.Node),
variables: AliasList,
mangle_count: u32 = 0,
label: ?[]const u8 = null,
@@ -1429,7 +1429,7 @@ pub fn ScopeExtra(comptime ScopeExtraContext: type, comptime ScopeExtraType: typ
.id = .block,
.parent = parent,
},
- .statements = std.ArrayList(ast.Node).init(c.gpa),
+ .statements = std.array_list.Managed(ast.Node).init(c.gpa),
.variables = AliasList.init(c.gpa),
.variable_discards = std.StringArrayHashMap(*ast.Payload.Discard).init(c.gpa),
};
@@ -1557,7 +1557,7 @@ pub fn ScopeExtra(comptime ScopeExtraContext: type, comptime ScopeExtraType: typ
sym_table: SymbolTable,
blank_macros: std.StringArrayHashMap(void),
context: *ScopeExtraContext,
- nodes: std.ArrayList(ast.Node),
+ nodes: std.array_list.Managed(ast.Node),
pub fn init(c: *ScopeExtraContext) Root {
return .{
@@ -1568,7 +1568,7 @@ pub fn ScopeExtra(comptime ScopeExtraContext: type, comptime ScopeExtraType: typ
.sym_table = SymbolTable.init(c.gpa),
.blank_macros = std.StringArrayHashMap(void).init(c.gpa),
.context = c,
- .nodes = std.ArrayList(ast.Node).init(c.gpa),
+ .nodes = std.array_list.Managed(ast.Node).init(c.gpa),
};
}
@@ -1705,7 +1705,7 @@ pub fn ScopeExtra(comptime ScopeExtraContext: type, comptime ScopeExtraType: typ
};
}
-pub fn tokenizeMacro(source: []const u8, tok_list: *std.ArrayList(CToken)) Error!void {
+pub fn tokenizeMacro(source: []const u8, tok_list: *std.array_list.Managed(CToken)) Error!void {
var tokenizer: aro.Tokenizer = .{
.buf = source,
.source = .unused,
@@ -1732,7 +1732,7 @@ test "Macro matching" {
const helper = struct {
const MacroFunctions = std.zig.c_translation.Macros;
fn checkMacro(allocator: mem.Allocator, pattern_list: PatternList, source: []const u8, comptime expected_match: ?[]const u8) !void {
- var tok_list = std.ArrayList(CToken).init(allocator);
+ var tok_list = std.array_list.Managed(CToken).init(allocator);
defer tok_list.deinit();
try tokenizeMacro(source, &tok_list);
const macro_slicer: MacroSlicer = .{ .source = source, .tokens = tok_list.items };
diff --git a/lib/compiler/aro_translate_c/ast.zig b/lib/compiler/aro_translate_c/ast.zig
index 132a07c6c89e..b1786a5fd4de 100644
--- a/lib/compiler/aro_translate_c/ast.zig
+++ b/lib/compiler/aro_translate_c/ast.zig
@@ -763,7 +763,7 @@ pub const Payload = struct {
pub fn render(gpa: Allocator, nodes: []const Node) !std.zig.Ast {
var ctx = Context{
.gpa = gpa,
- .buf = std.ArrayList(u8).init(gpa),
+ .buf = std.array_list.Managed(u8).init(gpa),
};
defer ctx.buf.deinit();
defer ctx.nodes.deinit(gpa);
@@ -787,7 +787,7 @@ pub fn render(gpa: Allocator, nodes: []const Node) !std.zig.Ast {
});
const root_members = blk: {
- var result = std.ArrayList(NodeIndex).init(gpa);
+ var result = std.array_list.Managed(NodeIndex).init(gpa);
defer result.deinit();
for (nodes) |node| {
@@ -825,7 +825,7 @@ const ExtraIndex = std.zig.Ast.ExtraIndex;
const Context = struct {
gpa: Allocator,
- buf: std.ArrayList(u8),
+ buf: std.array_list.Managed(u8),
nodes: std.zig.Ast.NodeList = .{},
extra_data: std.ArrayListUnmanaged(u32) = .empty,
tokens: std.zig.Ast.TokenList = .{},
@@ -886,7 +886,7 @@ const Context = struct {
};
fn renderNodes(c: *Context, nodes: []const Node) Allocator.Error!NodeSubRange {
- var result = std.ArrayList(NodeIndex).init(c.gpa);
+ var result = std.array_list.Managed(NodeIndex).init(c.gpa);
defer result.deinit();
for (nodes) |node| {
@@ -1622,7 +1622,7 @@ fn renderNode(c: *Context, node: Node) Allocator.Error!NodeIndex {
}
const l_brace = try c.addToken(.l_brace, "{");
- var stmts = std.ArrayList(NodeIndex).init(c.gpa);
+ var stmts = std.array_list.Managed(NodeIndex).init(c.gpa);
defer stmts.deinit();
for (payload.stmts) |stmt| {
const res = try renderNode(c, stmt);
@@ -2954,9 +2954,9 @@ fn renderMacroFunc(c: *Context, node: Node) !NodeIndex {
});
}
-fn renderParams(c: *Context, params: []Payload.Param, is_var_args: bool) !std.ArrayList(NodeIndex) {
+fn renderParams(c: *Context, params: []Payload.Param, is_var_args: bool) !std.array_list.Managed(NodeIndex) {
_ = try c.addToken(.l_paren, "(");
- var rendered = try std.ArrayList(NodeIndex).initCapacity(c.gpa, params.len);
+ var rendered = try std.array_list.Managed(NodeIndex).initCapacity(c.gpa, params.len);
errdefer rendered.deinit();
for (params, 0..) |param, i| {
diff --git a/lib/compiler/build_runner.zig b/lib/compiler/build_runner.zig
index f1a0caf47c80..7e1286958ae6 100644
--- a/lib/compiler/build_runner.zig
+++ b/lib/compiler/build_runner.zig
@@ -5,7 +5,6 @@ const io = std.io;
const fmt = std.fmt;
const mem = std.mem;
const process = std.process;
-const ArrayList = std.ArrayList;
const File = std.fs.File;
const Step = std.Build.Step;
const Watch = std.Build.Watch;
@@ -98,8 +97,8 @@ pub fn main() !void {
dependencies.root_deps,
);
- var targets = ArrayList([]const u8).init(arena);
- var debug_log_scopes = ArrayList([]const u8).init(arena);
+ var targets = std.array_list.Managed([]const u8).init(arena);
+ var debug_log_scopes = std.array_list.Managed([]const u8).init(arena);
var thread_pool_options: std.Thread.Pool.Options = .{ .allocator = arena };
var install_prefix: ?[]const u8 = null;
diff --git a/lib/compiler/reduce.zig b/lib/compiler/reduce.zig
index a25ef5304b62..d9955b9e3383 100644
--- a/lib/compiler/reduce.zig
+++ b/lib/compiler/reduce.zig
@@ -114,10 +114,10 @@ pub fn main() !void {
interestingness_argv.appendAssumeCapacity(checker_path);
interestingness_argv.appendSliceAssumeCapacity(argv);
- var rendered = std.ArrayList(u8).init(gpa);
+ var rendered = std.array_list.Managed(u8).init(gpa);
defer rendered.deinit();
- var astgen_input = std.ArrayList(u8).init(gpa);
+ var astgen_input = std.array_list.Managed(u8).init(gpa);
defer astgen_input.deinit();
var tree = try parse(gpa, root_source_file_path);
@@ -161,7 +161,7 @@ pub fn main() !void {
// result, restart the whole process, reparsing the AST and re-generating the list
// of all possible transformations and shuffling it again.
- var transformations = std.ArrayList(Walk.Transformation).init(gpa);
+ var transformations = std.array_list.Managed(Walk.Transformation).init(gpa);
defer transformations.deinit();
try Walk.findTransformations(arena, &tree, &transformations);
sortTransformations(transformations.items, rng.random());
@@ -382,7 +382,7 @@ fn transformationsToFixups(
}
}
- var other_source = std.ArrayList(u8).init(gpa);
+ var other_source = std.array_list.Managed(u8).init(gpa);
defer other_source.deinit();
try other_source.appendSlice("struct {\n");
try other_file_ast.renderToArrayList(&other_source, inlined_fixups);
diff --git a/lib/compiler/reduce/Walk.zig b/lib/compiler/reduce/Walk.zig
index bc20cb791c77..4e41fdf1a2a9 100644
--- a/lib/compiler/reduce/Walk.zig
+++ b/lib/compiler/reduce/Walk.zig
@@ -5,7 +5,7 @@ const assert = std.debug.assert;
const BuiltinFn = std.zig.BuiltinFn;
ast: *const Ast,
-transformations: *std.ArrayList(Transformation),
+transformations: *std.array_list.Managed(Transformation),
unreferenced_globals: std.StringArrayHashMapUnmanaged(Ast.Node.Index),
in_scope_names: std.StringArrayHashMapUnmanaged(u32),
replace_names: std.StringArrayHashMapUnmanaged(u32),
@@ -54,7 +54,7 @@ pub const Error = error{OutOfMemory};
pub fn findTransformations(
arena: std.mem.Allocator,
ast: *const Ast,
- transformations: *std.ArrayList(Transformation),
+ transformations: *std.array_list.Managed(Transformation),
) !void {
transformations.clearRetainingCapacity();
diff --git a/lib/compiler/resinator/cli.zig b/lib/compiler/resinator/cli.zig
index bfc67d87916d..1527c601057e 100644
--- a/lib/compiler/resinator/cli.zig
+++ b/lib/compiler/resinator/cli.zig
@@ -1291,7 +1291,7 @@ pub fn parse(allocator: Allocator, args: []const []const u8, diagnostics: *Diagn
}
pub fn filepathWithExtension(allocator: Allocator, path: []const u8, ext: []const u8) ![]const u8 {
- var buf = std.ArrayList(u8).init(allocator);
+ var buf = std.array_list.Managed(u8).init(allocator);
errdefer buf.deinit();
if (std.fs.path.dirname(path)) |dirname| {
var end_pos = dirname.len;
diff --git a/lib/compiler/resinator/compile.zig b/lib/compiler/resinator/compile.zig
index 6f5abef0b3ff..60d91eeb7382 100644
--- a/lib/compiler/resinator/compile.zig
+++ b/lib/compiler/resinator/compile.zig
@@ -38,7 +38,7 @@ pub const CompileOptions = struct {
/// Items within the list will be allocated using the allocator of the ArrayList and must be
/// freed by the caller.
/// TODO: Maybe a dedicated struct for this purpose so that it's a bit nicer to work with.
- dependencies_list: ?*std.ArrayList([]const u8) = null,
+ dependencies_list: ?*std.array_list.Managed([]const u8) = null,
default_code_page: SupportedCodePage = .windows1252,
/// If true, the first #pragma code_page directive only sets the input code page, but not the output code page.
/// This check must be done before comments are removed from the file.
@@ -74,7 +74,7 @@ pub fn compile(allocator: Allocator, source: []const u8, writer: anytype, option
var tree = try parser.parse(allocator, options.diagnostics);
defer tree.deinit();
- var search_dirs = std.ArrayList(SearchDir).init(allocator);
+ var search_dirs = std.array_list.Managed(SearchDir).init(allocator);
defer {
for (search_dirs.items) |*search_dir| {
search_dir.deinit(allocator);
@@ -178,7 +178,7 @@ pub const Compiler = struct {
cwd: std.fs.Dir,
state: State = .{},
diagnostics: *Diagnostics,
- dependencies_list: ?*std.ArrayList([]const u8),
+ dependencies_list: ?*std.array_list.Managed([]const u8),
input_code_pages: *const CodePageLookup,
output_code_pages: *const CodePageLookup,
search_dirs: []SearchDir,
@@ -279,7 +279,7 @@ pub const Compiler = struct {
.literal, .number => {
const slice = literal_node.token.slice(self.source);
const code_page = self.input_code_pages.getForToken(literal_node.token);
- var buf = try std.ArrayList(u8).initCapacity(self.allocator, slice.len);
+ var buf = try std.array_list.Managed(u8).initCapacity(self.allocator, slice.len);
errdefer buf.deinit();
var index: usize = 0;
@@ -303,7 +303,7 @@ pub const Compiler = struct {
const column = literal_node.token.calculateColumn(self.source, 8, null);
const bytes = SourceBytes{ .slice = slice, .code_page = self.input_code_pages.getForToken(literal_node.token) };
- var buf = std.ArrayList(u8).init(self.allocator);
+ var buf = std.array_list.Managed(u8).init(self.allocator);
errdefer buf.deinit();
// Filenames are sort-of parsed as if they were wide strings, but the max escape width of
@@ -421,7 +421,7 @@ pub const Compiler = struct {
const bytes = self.sourceBytesForToken(token);
const output_code_page = self.output_code_pages.getForToken(token);
- var buf = try std.ArrayList(u8).initCapacity(self.allocator, bytes.slice.len);
+ var buf = try std.array_list.Managed(u8).initCapacity(self.allocator, bytes.slice.len);
errdefer buf.deinit();
var iterative_parser = literals.IterativeStringParser.init(bytes, .{
@@ -1226,7 +1226,7 @@ pub const Compiler = struct {
}
pub fn writeResourceRawData(self: *Compiler, node: *Node.ResourceRawData, writer: anytype) !void {
- var data_buffer = std.ArrayList(u8).init(self.allocator);
+ var data_buffer = std.array_list.Managed(u8).init(self.allocator);
defer data_buffer.deinit();
// The header's data length field is a u32 so limit the resource's data size so that
// we know we can always specify the real size.
@@ -1306,7 +1306,7 @@ pub const Compiler = struct {
}
pub fn writeAccelerators(self: *Compiler, node: *Node.Accelerators, writer: anytype) !void {
- var data_buffer = std.ArrayList(u8).init(self.allocator);
+ var data_buffer = std.array_list.Managed(u8).init(self.allocator);
defer data_buffer.deinit();
// The header's data length field is a u32 so limit the resource's data size so that
@@ -1405,7 +1405,7 @@ pub const Compiler = struct {
};
pub fn writeDialog(self: *Compiler, node: *Node.Dialog, writer: anytype) !void {
- var data_buffer = std.ArrayList(u8).init(self.allocator);
+ var data_buffer = std.array_list.Managed(u8).init(self.allocator);
defer data_buffer.deinit();
// The header's data length field is a u32 so limit the resource's data size so that
// we know we can always specify the real size.
@@ -1973,7 +1973,7 @@ pub const Compiler = struct {
try NameOrOrdinal.writeEmpty(data_writer);
}
- var extra_data_buf = std.ArrayList(u8).init(self.allocator);
+ var extra_data_buf = std.array_list.Managed(u8).init(self.allocator);
defer extra_data_buf.deinit();
// The extra data byte length must be able to fit within a u16.
var limited_extra_data_writer = limitedWriter(extra_data_buf.writer(), std.math.maxInt(u16));
@@ -2004,7 +2004,7 @@ pub const Compiler = struct {
}
pub fn writeToolbar(self: *Compiler, node: *Node.Toolbar, writer: anytype) !void {
- var data_buffer = std.ArrayList(u8).init(self.allocator);
+ var data_buffer = std.array_list.Managed(u8).init(self.allocator);
defer data_buffer.deinit();
const data_writer = data_buffer.writer();
@@ -2082,7 +2082,7 @@ pub const Compiler = struct {
}
pub fn writeMenu(self: *Compiler, node: *Node.Menu, writer: anytype) !void {
- var data_buffer = std.ArrayList(u8).init(self.allocator);
+ var data_buffer = std.array_list.Managed(u8).init(self.allocator);
defer data_buffer.deinit();
// The header's data length field is a u32 so limit the resource's data size so that
// we know we can always specify the real size.
@@ -2265,7 +2265,7 @@ pub const Compiler = struct {
}
pub fn writeVersionInfo(self: *Compiler, node: *Node.VersionInfo, writer: anytype) !void {
- var data_buffer = std.ArrayList(u8).init(self.allocator);
+ var data_buffer = std.array_list.Managed(u8).init(self.allocator);
defer data_buffer.deinit();
// The node's length field (which is inclusive of the length of all of its children) is a u16
// so limit the node's data size so that we know we can always specify the real size.
@@ -2394,7 +2394,7 @@ pub const Compiler = struct {
/// Expects writer to be a LimitedWriter limited to u16, meaning all writes to
/// the writer within this function could return error.NoSpaceLeft, and that buf.items.len
/// will never be able to exceed maxInt(u16).
- pub fn writeVersionNode(self: *Compiler, node: *Node, writer: *std.Io.Writer, buf: *std.ArrayList(u8)) !void {
+ pub fn writeVersionNode(self: *Compiler, node: *Node, writer: *std.Io.Writer, buf: *std.array_list.Managed(u8)) !void {
// We can assume that buf.items.len will never be able to exceed the limits of a u16
try writeDataPadding(writer, @as(u16, @intCast(buf.items.len)));
@@ -3246,7 +3246,7 @@ pub const StringTable = struct {
}
pub fn writeResData(self: *Block, compiler: *Compiler, language: res.Language, block_id: u16, writer: anytype) !void {
- var data_buffer = std.ArrayList(u8).init(compiler.allocator);
+ var data_buffer = std.array_list.Managed(u8).init(compiler.allocator);
defer data_buffer.deinit();
const data_writer = data_buffer.writer();
diff --git a/lib/compiler/resinator/ico.zig b/lib/compiler/resinator/ico.zig
index dca74fc8574d..bf8883a4c93f 100644
--- a/lib/compiler/resinator/ico.zig
+++ b/lib/compiler/resinator/ico.zig
@@ -56,7 +56,7 @@ pub fn readAnyError(allocator: std.mem.Allocator, reader: anytype, max_size: u64
// entries than it actually does, we use an ArrayList with a conservatively
// limited initial capacity instead of allocating the entire slice at once.
const initial_capacity = @min(num_images, 8);
- var entries = try std.ArrayList(Entry).initCapacity(allocator, initial_capacity);
+ var entries = try std.array_list.Managed(Entry).initCapacity(allocator, initial_capacity);
errdefer entries.deinit();
var i: usize = 0;
diff --git a/lib/compiler/resinator/literals.zig b/lib/compiler/resinator/literals.zig
index ca2d353daa85..bdf4f882fb42 100644
--- a/lib/compiler/resinator/literals.zig
+++ b/lib/compiler/resinator/literals.zig
@@ -469,7 +469,7 @@ pub fn parseQuotedString(
const T = if (literal_type == .ascii) u8 else u16;
std.debug.assert(bytes.slice.len >= 2); // must at least have 2 double quote chars
- var buf = try std.ArrayList(T).initCapacity(allocator, bytes.slice.len);
+ var buf = try std.array_list.Managed(T).initCapacity(allocator, bytes.slice.len);
errdefer buf.deinit();
var iterative_parser = IterativeStringParser.init(bytes, options);
@@ -564,7 +564,7 @@ pub fn parseQuotedStringAsWideString(allocator: std.mem.Allocator, bytes: Source
// Note: We're only handling the case of parsing an ASCII string into a wide string from here on out.
// TODO: The logic below is similar to that in AcceleratorKeyCodepointTranslator, might be worth merging the two
- var buf = try std.ArrayList(u16).initCapacity(allocator, bytes.slice.len);
+ var buf = try std.array_list.Managed(u16).initCapacity(allocator, bytes.slice.len);
errdefer buf.deinit();
var iterative_parser = IterativeStringParser.init(bytes, options);
diff --git a/lib/compiler/resinator/main.zig b/lib/compiler/resinator/main.zig
index 101136a0bf04..6e7315e771e5 100644
--- a/lib/compiler/resinator/main.zig
+++ b/lib/compiler/resinator/main.zig
@@ -97,14 +97,14 @@ pub fn main() !void {
try stdout_writer.writeByte('\n');
}
- var dependencies_list = std.ArrayList([]const u8).init(allocator);
+ var dependencies_list = std.array_list.Managed([]const u8).init(allocator);
defer {
for (dependencies_list.items) |item| {
allocator.free(item);
}
dependencies_list.deinit();
}
- const maybe_dependencies_list: ?*std.ArrayList([]const u8) = if (options.depfile_path != null) &dependencies_list else null;
+ const maybe_dependencies_list: ?*std.array_list.Managed([]const u8) = if (options.depfile_path != null) &dependencies_list else null;
var include_paths = LazyIncludePaths{
.arena = arena,
@@ -115,7 +115,7 @@ pub fn main() !void {
const full_input = full_input: {
if (options.input_format == .rc and options.preprocess != .no) {
- var preprocessed_buf = std.ArrayList(u8).init(allocator);
+ var preprocessed_buf = std.array_list.Managed(u8).init(allocator);
errdefer preprocessed_buf.deinit();
// We're going to throw away everything except the final preprocessed output anyway,
@@ -127,7 +127,7 @@ pub fn main() !void {
var comp = aro.Compilation.init(aro_arena, std.fs.cwd());
defer comp.deinit();
- var argv = std.ArrayList([]const u8).init(comp.gpa);
+ var argv = std.array_list.Managed([]const u8).init(comp.gpa);
defer argv.deinit();
try argv.append("arocc"); // dummy command name
@@ -946,7 +946,7 @@ fn aroDiagnosticsToErrorBundle(
// - Only prints the message itself (no location, source line, error: prefix, etc)
// - Keeps track of source path/line/col instead
const MsgWriter = struct {
- buf: std.ArrayList(u8),
+ buf: std.array_list.Managed(u8),
path: ?[]const u8 = null,
// 1-indexed
line: u32 = undefined,
@@ -956,7 +956,7 @@ const MsgWriter = struct {
fn init(allocator: std.mem.Allocator) MsgWriter {
return .{
- .buf = std.ArrayList(u8).init(allocator),
+ .buf = std.array_list.Managed(u8).init(allocator),
};
}
diff --git a/lib/compiler/resinator/parse.zig b/lib/compiler/resinator/parse.zig
index 6b9ba9368724..285b5da843d0 100644
--- a/lib/compiler/resinator/parse.zig
+++ b/lib/compiler/resinator/parse.zig
@@ -82,7 +82,7 @@ pub const Parser = struct {
}
fn parseRoot(self: *Self) Error!*Node {
- var statements = std.ArrayList(*Node).init(self.state.allocator);
+ var statements = std.array_list.Managed(*Node).init(self.state.allocator);
defer statements.deinit();
try self.parseStatements(&statements);
@@ -95,7 +95,7 @@ pub const Parser = struct {
return &node.base;
}
- fn parseStatements(self: *Self, statements: *std.ArrayList(*Node)) Error!void {
+ fn parseStatements(self: *Self, statements: *std.array_list.Managed(*Node)) Error!void {
while (true) {
try self.nextToken(.whitespace_delimiter_only);
if (self.state.token.id == .eof) break;
@@ -355,7 +355,7 @@ pub const Parser = struct {
const begin_token = self.state.token;
try self.check(.begin);
- var strings = std.ArrayList(*Node).init(self.state.allocator);
+ var strings = std.array_list.Managed(*Node).init(self.state.allocator);
defer strings.deinit();
while (true) {
const maybe_end_token = try self.lookaheadToken(.normal);
@@ -852,7 +852,7 @@ pub const Parser = struct {
/// Expects the current token to be a begin token.
/// After return, the current token will be the end token.
fn parseRawDataBlock(self: *Self) Error![]*Node {
- var raw_data = std.ArrayList(*Node).init(self.state.allocator);
+ var raw_data = std.array_list.Managed(*Node).init(self.state.allocator);
defer raw_data.deinit();
while (true) {
const maybe_end_token = try self.lookaheadToken(.normal);
diff --git a/lib/compiler/resinator/preprocess.zig b/lib/compiler/resinator/preprocess.zig
index e548683ef1bd..ff6de00461a0 100644
--- a/lib/compiler/resinator/preprocess.zig
+++ b/lib/compiler/resinator/preprocess.zig
@@ -11,14 +11,14 @@ pub fn preprocess(
writer: anytype,
/// Expects argv[0] to be the command name
argv: []const []const u8,
- maybe_dependencies_list: ?*std.ArrayList([]const u8),
+ maybe_dependencies_list: ?*std.array_list.Managed([]const u8),
) PreprocessError!void {
try comp.addDefaultPragmaHandlers();
var driver: aro.Driver = .{ .comp = comp, .aro_name = "arocc" };
defer driver.deinit();
- var macro_buf = std.ArrayList(u8).init(comp.gpa);
+ var macro_buf = std.array_list.Managed(u8).init(comp.gpa);
defer macro_buf.deinit();
_ = driver.parseArgs(std.io.null_writer, macro_buf.writer(), argv) catch |err| switch (err) {
@@ -87,7 +87,7 @@ fn hasAnyErrors(comp: *aro.Compilation) bool {
/// `arena` is used for temporary -D argument strings and the INCLUDE environment variable.
/// The arena should be kept alive at least as long as `argv`.
-pub fn appendAroArgs(arena: Allocator, argv: *std.ArrayList([]const u8), options: cli.Options, system_include_paths: []const []const u8) !void {
+pub fn appendAroArgs(arena: Allocator, argv: *std.array_list.Managed([]const u8), options: cli.Options, system_include_paths: []const []const u8) !void {
try argv.appendSlice(&.{
"-E",
"--comments",
diff --git a/lib/compiler/resinator/res.zig b/lib/compiler/resinator/res.zig
index 4e1953233d79..ba5b2034511d 100644
--- a/lib/compiler/resinator/res.zig
+++ b/lib/compiler/resinator/res.zig
@@ -283,7 +283,7 @@ pub const NameOrOrdinal = union(enum) {
pub fn nameFromString(allocator: Allocator, bytes: SourceBytes) !NameOrOrdinal {
// Names have a limit of 256 UTF-16 code units + null terminator
- var buf = try std.ArrayList(u16).initCapacity(allocator, @min(257, bytes.slice.len));
+ var buf = try std.array_list.Managed(u16).initCapacity(allocator, @min(257, bytes.slice.len));
errdefer buf.deinit();
var i: usize = 0;
diff --git a/lib/compiler/resinator/source_mapping.zig b/lib/compiler/resinator/source_mapping.zig
index c6ffc527ff01..4caaf38c84c1 100644
--- a/lib/compiler/resinator/source_mapping.zig
+++ b/lib/compiler/resinator/source_mapping.zig
@@ -574,7 +574,7 @@ fn parseFilename(allocator: Allocator, str: []const u8) error{ OutOfMemory, Inva
escape_u,
};
- var filename = try std.ArrayList(u8).initCapacity(allocator, str.len);
+ var filename = try std.array_list.Managed(u8).initCapacity(allocator, str.len);
errdefer filename.deinit();
var state: State = .string;
var index: usize = 0;
diff --git a/lib/compiler/resinator/windows1252.zig b/lib/compiler/resinator/windows1252.zig
index 81e4dfa4549e..e88687bac0ed 100644
--- a/lib/compiler/resinator/windows1252.zig
+++ b/lib/compiler/resinator/windows1252.zig
@@ -574,7 +574,7 @@ pub fn bestFitFromCodepoint(codepoint: u21) ?u8 {
}
test "windows-1252 to utf8" {
- var buf = std.ArrayList(u8).init(std.testing.allocator);
+ var buf = std.array_list.Managed(u8).init(std.testing.allocator);
defer buf.deinit();
const input_windows1252 = "\x81pqrstuvwxyz{|}~\x80\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8e\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9e\x9f\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff";
diff --git a/lib/docs/wasm/markdown.zig b/lib/docs/wasm/markdown.zig
index 43b1ca83708b..6e9b7a06036f 100644
--- a/lib/docs/wasm/markdown.zig
+++ b/lib/docs/wasm/markdown.zig
@@ -1119,7 +1119,7 @@ fn testRender(input: []const u8, expected: []const u8) !void {
var doc = try parser.endInput();
defer doc.deinit(testing.allocator);
- var actual = std.ArrayList(u8).init(testing.allocator);
+ var actual = std.array_list.Managed(u8).init(testing.allocator);
defer actual.deinit();
try doc.render(actual.writer());
diff --git a/lib/init/src/main.zig b/lib/init/src/main.zig
index 2d233b52cf16..88dd8348e1ff 100644
--- a/lib/init/src/main.zig
+++ b/lib/init/src/main.zig
@@ -8,9 +8,10 @@ pub fn main() !void {
}
test "simple test" {
- var list = std.ArrayList(i32).init(std.testing.allocator);
- defer list.deinit(); // Try commenting this out and see if zig detects the memory leak!
- try list.append(42);
+ const gpa = std.testing.allocator;
+ var list: std.ArrayList(i32) = .empty;
+ defer list.deinit(gpa); // Try commenting this out and see if zig detects the memory leak!
+ try list.append(gpa, 42);
try std.testing.expectEqual(@as(i32, 42), list.pop());
}
diff --git a/lib/std/BitStack.zig b/lib/std/BitStack.zig
index 685c39fea8f9..f00e8d34b347 100644
--- a/lib/std/BitStack.zig
+++ b/lib/std/BitStack.zig
@@ -4,14 +4,14 @@ const BitStack = @This();
const std = @import("std");
const Allocator = std.mem.Allocator;
-const ArrayList = std.ArrayList;
+const ArrayList = std.array_list.Managed;
-bytes: std.ArrayList(u8),
+bytes: std.array_list.Managed(u8),
bit_len: usize = 0,
pub fn init(allocator: Allocator) @This() {
return .{
- .bytes = std.ArrayList(u8).init(allocator),
+ .bytes = std.array_list.Managed(u8).init(allocator),
};
}
diff --git a/lib/std/Build.zig b/lib/std/Build.zig
index db539e7b09ab..548f95199192 100644
--- a/lib/std/Build.zig
+++ b/lib/std/Build.zig
@@ -7,7 +7,6 @@ const debug = std.debug;
const panic = std.debug.panic;
const assert = debug.assert;
const log = std.log;
-const ArrayList = std.ArrayList;
const StringHashMap = std.StringHashMap;
const Allocator = mem.Allocator;
const Target = std.Target;
@@ -16,6 +15,7 @@ const EnvMap = std.process.EnvMap;
const File = fs.File;
const Sha256 = std.crypto.hash.sha2.Sha256;
const Build = @This();
+const ArrayList = std.ArrayList;
pub const Cache = @import("Build/Cache.zig");
pub const Step = @import("Build/Step.zig");
@@ -32,7 +32,7 @@ uninstall_tls: TopLevelStep,
allocator: Allocator,
user_input_options: UserInputOptionsMap,
available_options_map: AvailableOptionsMap,
-available_options_list: ArrayList(AvailableOption),
+available_options_list: std.array_list.Managed(AvailableOption),
verbose: bool,
verbose_link: bool,
verbose_cc: bool,
@@ -52,7 +52,7 @@ exe_dir: []const u8,
h_dir: []const u8,
install_path: []const u8,
sysroot: ?[]const u8 = null,
-search_prefixes: std.ArrayListUnmanaged([]const u8),
+search_prefixes: ArrayList([]const u8),
libc_file: ?[]const u8 = null,
/// Path to the directory containing build.zig.
build_root: Cache.Directory,
@@ -220,10 +220,10 @@ const UserInputOption = struct {
const UserValue = union(enum) {
flag: void,
scalar: []const u8,
- list: ArrayList([]const u8),
+ list: std.array_list.Managed([]const u8),
map: StringHashMap(*const UserValue),
lazy_path: LazyPath,
- lazy_path_list: ArrayList(LazyPath),
+ lazy_path_list: std.array_list.Managed(LazyPath),
};
const TypeId = enum {
@@ -277,10 +277,10 @@ pub fn create(
.allocator = arena,
.user_input_options = UserInputOptionsMap.init(arena),
.available_options_map = AvailableOptionsMap.init(arena),
- .available_options_list = ArrayList(AvailableOption).init(arena),
+ .available_options_list = std.array_list.Managed(AvailableOption).init(arena),
.top_level_steps = .{},
.default_step = undefined,
- .search_prefixes = .{},
+ .search_prefixes = .empty,
.install_prefix = undefined,
.lib_dir = undefined,
.exe_dir = undefined,
@@ -363,7 +363,7 @@ fn createChildOnly(
},
.user_input_options = user_input_options,
.available_options_map = AvailableOptionsMap.init(allocator),
- .available_options_list = ArrayList(AvailableOption).init(allocator),
+ .available_options_list = std.array_list.Managed(AvailableOption).init(allocator),
.verbose = parent.verbose,
.verbose_link = parent.verbose_link,
.verbose_cc = parent.verbose_cc,
@@ -468,7 +468,7 @@ fn addUserInputOptionFromArg(
}) catch @panic("OOM");
},
[]const LazyPath => return if (maybe_value) |v| {
- var list = ArrayList(LazyPath).initCapacity(arena, v.len) catch @panic("OOM");
+ var list = std.array_list.Managed(LazyPath).initCapacity(arena, v.len) catch @panic("OOM");
for (v) |lp| list.appendAssumeCapacity(lp.dupeInner(arena));
map.put(field.name, .{
.name = field.name,
@@ -484,7 +484,7 @@ fn addUserInputOptionFromArg(
}) catch @panic("OOM");
},
[]const []const u8 => return if (maybe_value) |v| {
- var list = ArrayList([]const u8).initCapacity(arena, v.len) catch @panic("OOM");
+ var list = std.array_list.Managed([]const u8).initCapacity(arena, v.len) catch @panic("OOM");
for (v) |s| list.appendAssumeCapacity(arena.dupe(u8, s) catch @panic("OOM"));
map.put(field.name, .{
.name = field.name,
@@ -542,7 +542,7 @@ fn addUserInputOptionFromArg(
},
.slice => switch (@typeInfo(ptr_info.child)) {
.@"enum" => return if (maybe_value) |v| {
- var list = ArrayList([]const u8).initCapacity(arena, v.len) catch @panic("OOM");
+ var list = std.array_list.Managed([]const u8).initCapacity(arena, v.len) catch @panic("OOM");
for (v) |tag| list.appendAssumeCapacity(@tagName(tag));
map.put(field.name, .{
.name = field.name,
@@ -589,10 +589,10 @@ fn addUserInputOptionFromArg(
const OrderedUserValue = union(enum) {
flag: void,
scalar: []const u8,
- list: ArrayList([]const u8),
- map: ArrayList(Pair),
+ list: std.array_list.Managed([]const u8),
+ map: std.array_list.Managed(Pair),
lazy_path: LazyPath,
- lazy_path_list: ArrayList(LazyPath),
+ lazy_path_list: std.array_list.Managed(LazyPath),
const Pair = struct {
name: []const u8,
@@ -642,8 +642,8 @@ const OrderedUserValue = union(enum) {
}
}
- fn mapFromUnordered(allocator: Allocator, unordered: std.StringHashMap(*const UserValue)) ArrayList(Pair) {
- var ordered = ArrayList(Pair).init(allocator);
+ fn mapFromUnordered(allocator: Allocator, unordered: std.StringHashMap(*const UserValue)) std.array_list.Managed(Pair) {
+ var ordered = std.array_list.Managed(Pair).init(allocator);
var it = unordered.iterator();
while (it.next()) |entry| {
ordered.append(.{
@@ -694,7 +694,7 @@ const OrderedUserInputOption = struct {
// The hash should be consistent with the same values given a different order.
// This function takes a user input map, orders it, then hashes the contents.
fn hashUserInputOptionsMap(allocator: Allocator, user_input_options: UserInputOptionsMap, hasher: *std.hash.Wyhash) void {
- var ordered = ArrayList(OrderedUserInputOption).init(allocator);
+ var ordered = std.array_list.Managed(OrderedUserInputOption).init(allocator);
var it = user_input_options.iterator();
while (it.next()) |entry|
ordered.append(OrderedUserInputOption.fromUnordered(allocator, entry.value_ptr.*)) catch @panic("OOM");
@@ -1086,7 +1086,7 @@ pub fn option(b: *Build, comptime T: type, name_raw: []const u8, description_raw
const enum_options = if (type_id == .@"enum" or type_id == .enum_list) blk: {
const EnumType = if (type_id == .enum_list) @typeInfo(T).pointer.child else T;
const fields = comptime std.meta.fields(EnumType);
- var options = ArrayList([]const u8).initCapacity(b.allocator, fields.len) catch @panic("OOM");
+ var options = std.array_list.Managed([]const u8).initCapacity(b.allocator, fields.len) catch @panic("OOM");
inline for (fields) |field| {
options.appendAssumeCapacity(field.name);
@@ -1488,7 +1488,7 @@ pub fn addUserInputOption(b: *Build, name_raw: []const u8, value_raw: []const u8
switch (gop.value_ptr.value) {
.scalar => |s| {
// turn it into a list
- var list = ArrayList([]const u8).init(b.allocator);
+ var list = std.array_list.Managed([]const u8).init(b.allocator);
try list.append(s);
try list.append(value);
try b.user_input_options.put(name, .{
@@ -1596,7 +1596,7 @@ pub fn validateUserInputDidItFail(b: *Build) bool {
}
fn allocPrintCmd(gpa: Allocator, opt_cwd: ?[]const u8, argv: []const []const u8) error{OutOfMemory}![]u8 {
- var buf: std.ArrayListUnmanaged(u8) = .empty;
+ var buf: ArrayList(u8) = .empty;
if (opt_cwd) |cwd| try buf.print(gpa, "cd {s} && ", .{cwd});
for (argv) |arg| {
try buf.print(gpa, "{s} ", .{arg});
diff --git a/lib/std/Build/Module.zig b/lib/std/Build/Module.zig
index 0fa8a9a6234f..2719aea1c6cc 100644
--- a/lib/std/Build/Module.zig
+++ b/lib/std/Build/Module.zig
@@ -10,12 +10,12 @@ resolved_target: ?std.Build.ResolvedTarget = null,
optimize: ?std.builtin.OptimizeMode = null,
dwarf_format: ?std.dwarf.Format,
-c_macros: std.ArrayListUnmanaged([]const u8),
-include_dirs: std.ArrayListUnmanaged(IncludeDir),
-lib_paths: std.ArrayListUnmanaged(LazyPath),
-rpaths: std.ArrayListUnmanaged(RPath),
+c_macros: ArrayList([]const u8),
+include_dirs: ArrayList(IncludeDir),
+lib_paths: ArrayList(LazyPath),
+rpaths: ArrayList(RPath),
frameworks: std.StringArrayHashMapUnmanaged(LinkFrameworkOptions),
-link_objects: std.ArrayListUnmanaged(LinkObject),
+link_objects: ArrayList(LinkObject),
strip: ?bool,
unwind_tables: ?std.builtin.UnwindTables,
@@ -170,7 +170,7 @@ pub const IncludeDir = union(enum) {
pub fn appendZigProcessFlags(
include_dir: IncludeDir,
b: *std.Build,
- zig_args: *std.ArrayList([]const u8),
+ zig_args: *std.array_list.Managed([]const u8),
asking_step: ?*Step,
) !void {
const flag: []const u8, const lazy_path: LazyPath = switch (include_dir) {
@@ -537,7 +537,7 @@ pub fn addCMacro(m: *Module, name: []const u8, value: []const u8) void {
pub fn appendZigProcessFlags(
m: *Module,
- zig_args: *std.ArrayList([]const u8),
+ zig_args: *std.array_list.Managed([]const u8),
asking_step: ?*Step,
) !void {
const b = m.owner;
@@ -634,7 +634,7 @@ pub fn appendZigProcessFlags(
}
fn addFlag(
- args: *std.ArrayList([]const u8),
+ args: *std.array_list.Managed([]const u8),
opt: ?bool,
then_name: []const u8,
else_name: []const u8,
@@ -706,3 +706,4 @@ const std = @import("std");
const assert = std.debug.assert;
const LazyPath = std.Build.LazyPath;
const Step = std.Build.Step;
+const ArrayList = std.ArrayList;
diff --git a/lib/std/Build/Step.zig b/lib/std/Build/Step.zig
index ee883ee15225..c3392c430185 100644
--- a/lib/std/Build/Step.zig
+++ b/lib/std/Build/Step.zig
@@ -1,12 +1,22 @@
+const Step = @This();
+const std = @import("../std.zig");
+const Build = std.Build;
+const Allocator = std.mem.Allocator;
+const assert = std.debug.assert;
+const builtin = @import("builtin");
+const Cache = Build.Cache;
+const Path = Cache.Path;
+const ArrayList = std.ArrayList;
+
id: Id,
name: []const u8,
owner: *Build,
makeFn: MakeFn,
-dependencies: std.ArrayList(*Step),
+dependencies: std.array_list.Managed(*Step),
/// This field is empty during execution of the user's build script, and
/// then populated during dependency loop checking in the build runner.
-dependants: std.ArrayListUnmanaged(*Step),
+dependants: ArrayList(*Step),
/// Collects the set of files that retrigger this step to run.
///
/// This is used by the build system's implementation of `--watch` but it can
@@ -39,7 +49,7 @@ state: State,
/// total system memory available.
max_rss: usize,
-result_error_msgs: std.ArrayListUnmanaged([]const u8),
+result_error_msgs: ArrayList([]const u8),
result_error_bundle: std.zig.ErrorBundle,
result_stderr: []const u8,
result_cached: bool,
@@ -175,7 +185,7 @@ pub const Inputs = struct {
pub const Table = std.ArrayHashMapUnmanaged(Build.Cache.Path, Files, Build.Cache.Path.TableAdapter, false);
/// The special file name "." means any changes inside the directory.
- pub const Files = std.ArrayListUnmanaged([]const u8);
+ pub const Files = ArrayList([]const u8);
pub fn populated(inputs: *Inputs) bool {
return inputs.table.count() != 0;
@@ -204,8 +214,8 @@ pub fn init(options: StepOptions) Step {
.name = arena.dupe(u8, options.name) catch @panic("OOM"),
.owner = options.owner,
.makeFn = options.makeFn,
- .dependencies = std.ArrayList(*Step).init(arena),
- .dependants = .{},
+ .dependencies = std.array_list.Managed(*Step).init(arena),
+ .dependants = .empty,
.inputs = Inputs.init,
.state = .precheck_unstarted,
.max_rss = options.max_rss,
@@ -326,15 +336,6 @@ pub fn dump(step: *Step, w: *std.Io.Writer, tty_config: std.Io.tty.Config) void
}
}
-const Step = @This();
-const std = @import("../std.zig");
-const Build = std.Build;
-const Allocator = std.mem.Allocator;
-const assert = std.debug.assert;
-const builtin = @import("builtin");
-const Cache = Build.Cache;
-const Path = Cache.Path;
-
pub fn evalChildProcess(s: *Step, argv: []const []const u8) ![]u8 {
const run_result = try captureChildProcess(s, std.Progress.Node.none, argv);
try handleChildProcessTerm(s, run_result.term, null, argv);
@@ -980,7 +981,7 @@ fn addDirectoryWatchInputFromBuilder(step: *Step, builder: *Build, sub_path: []c
fn addWatchInputFromPath(step: *Step, path: Build.Cache.Path, basename: []const u8) !void {
const gpa = step.owner.allocator;
const gop = try step.inputs.table.getOrPut(gpa, path);
- if (!gop.found_existing) gop.value_ptr.* = .{};
+ if (!gop.found_existing) gop.value_ptr.* = .empty;
try gop.value_ptr.append(gpa, basename);
}
diff --git a/lib/std/Build/Step/CheckObject.zig b/lib/std/Build/Step/CheckObject.zig
index 06ad26ccc856..6bbe3307a0f6 100644
--- a/lib/std/Build/Step/CheckObject.zig
+++ b/lib/std/Build/Step/CheckObject.zig
@@ -18,7 +18,7 @@ pub const base_id: Step.Id = .check_object;
step: Step,
source: std.Build.LazyPath,
max_bytes: usize = 20 * 1024 * 1024,
-checks: std.ArrayList(Check),
+checks: std.array_list.Managed(Check),
obj_format: std.Target.ObjectFormat,
pub fn create(
@@ -36,7 +36,7 @@ pub fn create(
.makeFn = make,
}),
.source = source.dupe(owner),
- .checks = std.ArrayList(Check).init(gpa),
+ .checks = std.array_list.Managed(Check).init(gpa),
.obj_format = obj_format,
};
check_object.source.addStepDependencies(&check_object.step);
@@ -81,7 +81,7 @@ const Action = struct {
const hay = mem.trim(u8, haystack, " ");
const phrase = mem.trim(u8, act.phrase.resolve(b, step), " ");
- var candidate_vars: std.ArrayList(struct { name: []const u8, value: u64 }) = .init(b.allocator);
+ var candidate_vars: std.array_list.Managed(struct { name: []const u8, value: u64 }) = .init(b.allocator);
var hay_it = mem.tokenizeScalar(u8, hay, ' ');
var needle_it = mem.tokenizeScalar(u8, phrase, ' ');
@@ -157,8 +157,8 @@ const Action = struct {
fn computeCmp(act: Action, b: *std.Build, step: *Step, global_vars: anytype) !bool {
const gpa = step.owner.allocator;
const phrase = act.phrase.resolve(b, step);
- var op_stack = std.ArrayList(enum { add, sub, mod, mul }).init(gpa);
- var values = std.ArrayList(u64).init(gpa);
+ var op_stack = std.array_list.Managed(enum { add, sub, mod, mul }).init(gpa);
+ var values = std.array_list.Managed(u64).init(gpa);
var it = mem.tokenizeScalar(u8, phrase, ' ');
while (it.next()) |next| {
@@ -242,15 +242,15 @@ const ComputeCompareExpected = struct {
const Check = struct {
kind: Kind,
payload: Payload,
- data: std.ArrayList(u8),
- actions: std.ArrayList(Action),
+ data: std.array_list.Managed(u8),
+ actions: std.array_list.Managed(Action),
fn create(allocator: Allocator, kind: Kind) Check {
return .{
.kind = kind,
.payload = .{ .none = {} },
- .data = std.ArrayList(u8).init(allocator),
- .actions = std.ArrayList(Action).init(allocator),
+ .data = std.array_list.Managed(u8).init(allocator),
+ .actions = std.array_list.Managed(Action).init(allocator),
};
}
@@ -1214,7 +1214,7 @@ const MachODumper = struct {
}
fn dumpRebaseInfo(ctx: ObjectContext, data: []const u8, writer: anytype) !void {
- var rebases = std.ArrayList(u64).init(ctx.gpa);
+ var rebases = std.array_list.Managed(u64).init(ctx.gpa);
defer rebases.deinit();
try ctx.parseRebaseInfo(data, &rebases);
mem.sort(u64, rebases.items, {}, std.sort.asc(u64));
@@ -1223,7 +1223,7 @@ const MachODumper = struct {
}
}
- fn parseRebaseInfo(ctx: ObjectContext, data: []const u8, rebases: *std.ArrayList(u64)) !void {
+ fn parseRebaseInfo(ctx: ObjectContext, data: []const u8, rebases: *std.array_list.Managed(u64)) !void {
var stream = std.io.fixedBufferStream(data);
var creader = std.io.countingReader(stream.reader());
const reader = creader.reader();
@@ -1313,7 +1313,7 @@ const MachODumper = struct {
};
fn dumpBindInfo(ctx: ObjectContext, data: []const u8, writer: anytype) !void {
- var bindings = std.ArrayList(Binding).init(ctx.gpa);
+ var bindings = std.array_list.Managed(Binding).init(ctx.gpa);
defer {
for (bindings.items) |*b| {
b.deinit(ctx.gpa);
@@ -1335,7 +1335,7 @@ const MachODumper = struct {
}
}
- fn parseBindInfo(ctx: ObjectContext, data: []const u8, bindings: *std.ArrayList(Binding)) !void {
+ fn parseBindInfo(ctx: ObjectContext, data: []const u8, bindings: *std.array_list.Managed(Binding)) !void {
var stream = std.io.fixedBufferStream(data);
var creader = std.io.countingReader(stream.reader());
const reader = creader.reader();
@@ -1346,7 +1346,7 @@ const MachODumper = struct {
var offset: u64 = 0;
var addend: i64 = 0;
- var name_buf = std.ArrayList(u8).init(ctx.gpa);
+ var name_buf = std.array_list.Managed(u8).init(ctx.gpa);
defer name_buf.deinit();
while (true) {
@@ -1434,7 +1434,7 @@ const MachODumper = struct {
var arena = std.heap.ArenaAllocator.init(ctx.gpa);
defer arena.deinit();
- var exports = std.ArrayList(Export).init(arena.allocator());
+ var exports = std.array_list.Managed(Export).init(arena.allocator());
var it = TrieIterator{ .data = data };
try parseTrieNode(arena.allocator(), &it, "", &exports);
@@ -1546,7 +1546,7 @@ const MachODumper = struct {
arena: Allocator,
it: *TrieIterator,
prefix: []const u8,
- exports: *std.ArrayList(Export),
+ exports: *std.array_list.Managed(Export),
) !void {
const size = try it.readUleb128();
if (size > 0) {
@@ -1621,7 +1621,7 @@ const MachODumper = struct {
var ctx = ObjectContext{ .gpa = gpa, .data = bytes, .header = hdr };
try ctx.parse();
- var output = std.ArrayList(u8).init(gpa);
+ var output = std.array_list.Managed(u8).init(gpa);
const writer = output.writer();
switch (check.kind) {
@@ -1787,7 +1787,7 @@ const ElfDumper = struct {
try ctx.objects.append(gpa, .{ .name = name, .off = stream.pos, .len = size });
}
- var output = std.ArrayList(u8).init(gpa);
+ var output = std.array_list.Managed(u8).init(gpa);
const writer = output.writer();
switch (check.kind) {
@@ -1848,7 +1848,7 @@ const ElfDumper = struct {
files.putAssumeCapacityNoClobber(object.off - @sizeOf(elf.ar_hdr), object.name);
}
- var symbols = std.AutoArrayHashMap(usize, std.ArrayList([]const u8)).init(ctx.gpa);
+ var symbols = std.AutoArrayHashMap(usize, std.array_list.Managed([]const u8)).init(ctx.gpa);
defer {
for (symbols.values()) |*value| {
value.deinit();
@@ -1859,7 +1859,7 @@ const ElfDumper = struct {
for (ctx.symtab.items) |entry| {
const gop = try symbols.getOrPut(@intCast(entry.off));
if (!gop.found_existing) {
- gop.value_ptr.* = std.ArrayList([]const u8).init(ctx.gpa);
+ gop.value_ptr.* = std.array_list.Managed([]const u8).init(ctx.gpa);
}
try gop.value_ptr.append(entry.name);
}
@@ -1944,7 +1944,7 @@ const ElfDumper = struct {
else => {},
};
- var output = std.ArrayList(u8).init(gpa);
+ var output = std.array_list.Managed(u8).init(gpa);
const writer = output.writer();
switch (check.kind) {
@@ -2398,7 +2398,7 @@ const WasmDumper = struct {
return error.UnsupportedWasmVersion;
}
- var output = std.ArrayList(u8).init(gpa);
+ var output = std.array_list.Managed(u8).init(gpa);
defer output.deinit();
parseAndDumpInner(step, check, bytes, &fbs, &output) catch |err| switch (err) {
error.EndOfStream => try output.appendSlice("\n"),
@@ -2412,7 +2412,7 @@ const WasmDumper = struct {
check: Check,
bytes: []const u8,
fbs: *std.io.FixedBufferStream([]const u8),
- output: *std.ArrayList(u8),
+ output: *std.array_list.Managed(u8),
) !void {
const reader = fbs.reader();
const writer = output.writer();
diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig
index 59ccb87dad99..79d3694c024f 100644
--- a/lib/std/Build/Step/Compile.zig
+++ b/lib/std/Build/Step/Compile.zig
@@ -4,7 +4,6 @@ const mem = std.mem;
const fs = std.fs;
const assert = std.debug.assert;
const panic = std.debug.panic;
-const ArrayList = std.ArrayList;
const StringHashMap = std.StringHashMap;
const Sha256 = std.crypto.hash.sha2.Sha256;
const Allocator = mem.Allocator;
@@ -60,7 +59,7 @@ filters: []const []const u8,
test_runner: ?TestRunner,
wasi_exec_model: ?std.builtin.WasiExecModel = null,
-installed_headers: ArrayList(HeaderInstallation),
+installed_headers: std.array_list.Managed(HeaderInstallation),
/// This step is used to create an include tree that dependent modules can add to their include
/// search paths. Installed headers are copied to this step.
@@ -421,7 +420,7 @@ pub fn create(owner: *std.Build, options: Options) *Compile {
.out_lib_filename = undefined,
.major_only_filename = null,
.name_only_filename = null,
- .installed_headers = ArrayList(HeaderInstallation).init(owner.allocator),
+ .installed_headers = std.array_list.Managed(HeaderInstallation).init(owner.allocator),
.zig_lib_dir = null,
.exec_cmd_args = null,
.filters = options.filters,
@@ -766,9 +765,9 @@ fn runPkgConfig(compile: *Compile, lib_name: []const u8) !PkgConfigResult {
else => return err,
};
- var zig_cflags = ArrayList([]const u8).init(b.allocator);
+ var zig_cflags = std.array_list.Managed([]const u8).init(b.allocator);
defer zig_cflags.deinit();
- var zig_libs = ArrayList([]const u8).init(b.allocator);
+ var zig_libs = std.array_list.Managed([]const u8).init(b.allocator);
defer zig_libs.deinit();
var arg_it = mem.tokenizeAny(u8, stdout, " \r\n\t");
@@ -1076,7 +1075,7 @@ fn getZigArgs(compile: *Compile, fuzz: bool) ![][]const u8 {
const b = step.owner;
const arena = b.allocator;
- var zig_args = ArrayList([]const u8).init(arena);
+ var zig_args = std.array_list.Managed([]const u8).init(arena);
defer zig_args.deinit();
try zig_args.append(b.graph.zig_exe);
@@ -1798,7 +1797,7 @@ fn getZigArgs(compile: *Compile, fuzz: bool) ![][]const u8 {
try b.cache_root.handle.makePath("args");
const args_to_escape = zig_args.items[2..];
- var escaped_args = try ArrayList([]const u8).initCapacity(arena, args_to_escape.len);
+ var escaped_args = try std.array_list.Managed([]const u8).initCapacity(arena, args_to_escape.len);
arg_blk: for (args_to_escape) |arg| {
for (arg, 0..) |c, arg_idx| {
if (c == '\\' or c == '"') {
@@ -1948,7 +1947,7 @@ pub fn doAtomicSymLinks(
fn execPkgConfigList(b: *std.Build, out_code: *u8) (PkgConfigError || RunError)![]const PkgConfigPkg {
const pkg_config_exe = b.graph.env_map.get("PKG_CONFIG") orelse "pkg-config";
const stdout = try b.runAllowFail(&[_][]const u8{ pkg_config_exe, "--list-all" }, out_code, .Ignore);
- var list = ArrayList(PkgConfigPkg).init(b.allocator);
+ var list = std.array_list.Managed(PkgConfigPkg).init(b.allocator);
errdefer list.deinit();
var line_it = mem.tokenizeAny(u8, stdout, "\r\n");
while (line_it.next()) |line| {
@@ -1985,7 +1984,7 @@ fn getPkgConfigList(b: *std.Build) ![]const PkgConfigPkg {
}
}
-fn addFlag(args: *ArrayList([]const u8), comptime name: []const u8, opt: ?bool) !void {
+fn addFlag(args: *std.array_list.Managed([]const u8), comptime name: []const u8, opt: ?bool) !void {
const cond = opt orelse return;
try args.ensureUnusedCapacity(1);
if (cond) {
diff --git a/lib/std/Build/Step/ConfigHeader.zig b/lib/std/Build/Step/ConfigHeader.zig
index e27887693d02..40144985cb55 100644
--- a/lib/std/Build/Step/ConfigHeader.zig
+++ b/lib/std/Build/Step/ConfigHeader.zig
@@ -621,7 +621,7 @@ fn expand_variables_cmake(
contents: []const u8,
values: std.StringArrayHashMap(Value),
) ![]const u8 {
- var result: std.ArrayList(u8) = .init(allocator);
+ var result: std.array_list.Managed(u8) = .init(allocator);
errdefer result.deinit();
const valid_varname_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/_.+-";
@@ -633,7 +633,7 @@ fn expand_variables_cmake(
source: usize,
target: usize,
};
- var var_stack: std.ArrayList(Position) = .init(allocator);
+ var var_stack: std.array_list.Managed(Position) = .init(allocator);
defer var_stack.deinit();
loop: while (curr < contents.len) : (curr += 1) {
switch (contents[curr]) {
diff --git a/lib/std/Build/Step/ObjCopy.zig b/lib/std/Build/Step/ObjCopy.zig
index 3c9eb2eaa7f1..e6ee8fc6e81b 100644
--- a/lib/std/Build/Step/ObjCopy.zig
+++ b/lib/std/Build/Step/ObjCopy.zig
@@ -182,7 +182,7 @@ fn make(step: *Step, options: Step.MakeOptions) !void {
return step.fail("unable to make path {s}: {s}", .{ cache_path, @errorName(err) });
};
- var argv = std.ArrayList([]const u8).init(b.allocator);
+ var argv = std.array_list.Managed([]const u8).init(b.allocator);
try argv.appendSlice(&.{ b.graph.zig_exe, "objcopy" });
if (objcopy.only_section) |only_section| {
diff --git a/lib/std/Build/Step/Run.zig b/lib/std/Build/Step/Run.zig
index d317422bd9ab..cd9fdc27d8b4 100644
--- a/lib/std/Build/Step/Run.zig
+++ b/lib/std/Build/Step/Run.zig
@@ -679,15 +679,15 @@ fn make(step: *Step, options: Step.MakeOptions) !void {
const run: *Run = @fieldParentPtr("step", step);
const has_side_effects = run.hasSideEffects();
- var argv_list = std.ArrayList([]const u8).init(arena);
- var output_placeholders = std.ArrayList(IndexedOutput).init(arena);
+ var argv_list = std.array_list.Managed([]const u8).init(arena);
+ var output_placeholders = std.array_list.Managed(IndexedOutput).init(arena);
var man = b.graph.cache.obtain();
defer man.deinit();
if (run.env_map) |env_map| {
const KV = struct { []const u8, []const u8 };
- var kv_pairs = try std.ArrayList(KV).initCapacity(arena, env_map.count());
+ var kv_pairs = try std.array_list.Managed(KV).initCapacity(arena, env_map.count());
var iter = env_map.iterator();
while (iter.next()) |entry| {
kv_pairs.appendAssumeCapacity(.{ entry.key_ptr.*, entry.value_ptr.* });
@@ -1080,7 +1080,7 @@ fn runCommand(
else => false,
};
- var interp_argv = std.ArrayList([]const u8).init(b.allocator);
+ var interp_argv = std.array_list.Managed([]const u8).init(b.allocator);
defer interp_argv.deinit();
var env_map = run.env_map orelse &b.graph.env_map;
diff --git a/lib/std/Build/Step/TranslateC.zig b/lib/std/Build/Step/TranslateC.zig
index 53c4007e26e7..dabf2200dfb2 100644
--- a/lib/std/Build/Step/TranslateC.zig
+++ b/lib/std/Build/Step/TranslateC.zig
@@ -10,8 +10,8 @@ pub const base_id: Step.Id = .translate_c;
step: Step,
source: std.Build.LazyPath,
-include_dirs: std.ArrayList(std.Build.Module.IncludeDir),
-c_macros: std.ArrayList([]const u8),
+include_dirs: std.array_list.Managed(std.Build.Module.IncludeDir),
+c_macros: std.array_list.Managed([]const u8),
out_basename: []const u8,
target: std.Build.ResolvedTarget,
optimize: std.builtin.OptimizeMode,
@@ -38,8 +38,8 @@ pub fn create(owner: *std.Build, options: Options) *TranslateC {
.makeFn = make,
}),
.source = source,
- .include_dirs = std.ArrayList(std.Build.Module.IncludeDir).init(owner.allocator),
- .c_macros = std.ArrayList([]const u8).init(owner.allocator),
+ .include_dirs = std.array_list.Managed(std.Build.Module.IncludeDir).init(owner.allocator),
+ .c_macros = std.array_list.Managed([]const u8).init(owner.allocator),
.out_basename = undefined,
.target = options.target,
.optimize = options.optimize,
@@ -153,7 +153,7 @@ fn make(step: *Step, options: Step.MakeOptions) !void {
const b = step.owner;
const translate_c: *TranslateC = @fieldParentPtr("step", step);
- var argv_list = std.ArrayList([]const u8).init(b.allocator);
+ var argv_list = std.array_list.Managed([]const u8).init(b.allocator);
try argv_list.append(b.graph.zig_exe);
try argv_list.append("translate-c");
if (translate_c.link_libc) {
diff --git a/lib/std/Io.zig b/lib/std/Io.zig
index 0cec6c5d00a0..19b34c696832 100644
--- a/lib/std/Io.zig
+++ b/lib/std/Io.zig
@@ -117,7 +117,7 @@ pub fn GenericReader(
pub inline fn readAllArrayList(
self: Self,
- array_list: *std.ArrayList(u8),
+ array_list: *std.array_list.Managed(u8),
max_append_size: usize,
) (error{StreamTooLong} || Allocator.Error || Error)!void {
return @errorCast(self.any().readAllArrayList(array_list, max_append_size));
@@ -126,7 +126,7 @@ pub fn GenericReader(
pub inline fn readAllArrayListAligned(
self: Self,
comptime alignment: ?Alignment,
- array_list: *std.ArrayListAligned(u8, alignment),
+ array_list: *std.array_list.AlignedManaged(u8, alignment),
max_append_size: usize,
) (error{StreamTooLong} || Allocator.Error || Error)!void {
return @errorCast(self.any().readAllArrayListAligned(
@@ -146,7 +146,7 @@ pub fn GenericReader(
pub inline fn readUntilDelimiterArrayList(
self: Self,
- array_list: *std.ArrayList(u8),
+ array_list: *std.array_list.Managed(u8),
delimiter: u8,
max_size: usize,
) (NoEofError || Allocator.Error || error{StreamTooLong})!void {
diff --git a/lib/std/Io/DeprecatedReader.zig b/lib/std/Io/DeprecatedReader.zig
index 2e99328e42fb..4dfbdd19ee3c 100644
--- a/lib/std/Io/DeprecatedReader.zig
+++ b/lib/std/Io/DeprecatedReader.zig
@@ -39,14 +39,14 @@ pub fn readNoEof(self: Self, buf: []u8) anyerror!void {
if (amt_read < buf.len) return error.EndOfStream;
}
-/// Appends to the `std.ArrayList` contents by reading from the stream
+/// Appends to the `std.array_list.Managed` contents by reading from the stream
/// until end of stream is found.
/// If the number of bytes appended would exceed `max_append_size`,
/// `error.StreamTooLong` is returned
-/// and the `std.ArrayList` has exactly `max_append_size` bytes appended.
+/// and the `std.array_list.Managed` has exactly `max_append_size` bytes appended.
pub fn readAllArrayList(
self: Self,
- array_list: *std.ArrayList(u8),
+ array_list: *std.array_list.Managed(u8),
max_append_size: usize,
) anyerror!void {
return self.readAllArrayListAligned(null, array_list, max_append_size);
@@ -55,7 +55,7 @@ pub fn readAllArrayList(
pub fn readAllArrayListAligned(
self: Self,
comptime alignment: ?Alignment,
- array_list: *std.ArrayListAligned(u8, alignment),
+ array_list: *std.array_list.AlignedManaged(u8, alignment),
max_append_size: usize,
) anyerror!void {
try array_list.ensureTotalCapacity(@min(max_append_size, 4096));
@@ -87,20 +87,20 @@ pub fn readAllArrayListAligned(
/// Caller owns returned memory.
/// If this function returns an error, the contents from the stream read so far are lost.
pub fn readAllAlloc(self: Self, allocator: mem.Allocator, max_size: usize) anyerror![]u8 {
- var array_list = std.ArrayList(u8).init(allocator);
+ var array_list = std.array_list.Managed(u8).init(allocator);
defer array_list.deinit();
try self.readAllArrayList(&array_list, max_size);
return try array_list.toOwnedSlice();
}
/// Deprecated: use `streamUntilDelimiter` with ArrayList's writer instead.
-/// Replaces the `std.ArrayList` contents by reading from the stream until `delimiter` is found.
+/// Replaces the `std.array_list.Managed` contents by reading from the stream until `delimiter` is found.
/// Does not include the delimiter in the result.
-/// If the `std.ArrayList` length would exceed `max_size`, `error.StreamTooLong` is returned and the
-/// `std.ArrayList` is populated with `max_size` bytes from the stream.
+/// If the `std.array_list.Managed` length would exceed `max_size`, `error.StreamTooLong` is returned and the
+/// `std.array_list.Managed` is populated with `max_size` bytes from the stream.
pub fn readUntilDelimiterArrayList(
self: Self,
- array_list: *std.ArrayList(u8),
+ array_list: *std.array_list.Managed(u8),
delimiter: u8,
max_size: usize,
) anyerror!void {
@@ -119,7 +119,7 @@ pub fn readUntilDelimiterAlloc(
delimiter: u8,
max_size: usize,
) anyerror![]u8 {
- var array_list = std.ArrayList(u8).init(allocator);
+ var array_list = std.array_list.Managed(u8).init(allocator);
defer array_list.deinit();
try self.streamUntilDelimiter(array_list.writer(), delimiter, max_size);
return try array_list.toOwnedSlice();
@@ -154,7 +154,7 @@ pub fn readUntilDelimiterOrEofAlloc(
delimiter: u8,
max_size: usize,
) anyerror!?[]u8 {
- var array_list = std.ArrayList(u8).init(allocator);
+ var array_list = std.array_list.Managed(u8).init(allocator);
defer array_list.deinit();
self.streamUntilDelimiter(array_list.writer(), delimiter, max_size) catch |err| switch (err) {
error.EndOfStream => if (array_list.items.len == 0) {
diff --git a/lib/std/Io/Reader/test.zig b/lib/std/Io/Reader/test.zig
index 69b7bcdbda92..90f9539ae8a7 100644
--- a/lib/std/Io/Reader/test.zig
+++ b/lib/std/Io/Reader/test.zig
@@ -34,7 +34,7 @@ test "skipBytes" {
test "readUntilDelimiterArrayList returns ArrayLists with bytes read until the delimiter, then EndOfStream" {
const a = std.testing.allocator;
- var list = std.ArrayList(u8).init(a);
+ var list = std.array_list.Managed(u8).init(a);
defer list.deinit();
var fis = std.io.fixedBufferStream("0000\n1234\n");
@@ -49,7 +49,7 @@ test "readUntilDelimiterArrayList returns ArrayLists with bytes read until the d
test "readUntilDelimiterArrayList returns an empty ArrayList" {
const a = std.testing.allocator;
- var list = std.ArrayList(u8).init(a);
+ var list = std.array_list.Managed(u8).init(a);
defer list.deinit();
var fis = std.io.fixedBufferStream("\n");
@@ -61,7 +61,7 @@ test "readUntilDelimiterArrayList returns an empty ArrayList" {
test "readUntilDelimiterArrayList returns StreamTooLong, then an ArrayList with bytes read until the delimiter" {
const a = std.testing.allocator;
- var list = std.ArrayList(u8).init(a);
+ var list = std.array_list.Managed(u8).init(a);
defer list.deinit();
var fis = std.io.fixedBufferStream("1234567\n");
@@ -75,7 +75,7 @@ test "readUntilDelimiterArrayList returns StreamTooLong, then an ArrayList with
test "readUntilDelimiterArrayList returns EndOfStream" {
const a = std.testing.allocator;
- var list = std.ArrayList(u8).init(a);
+ var list = std.array_list.Managed(u8).init(a);
defer list.deinit();
var fis = std.io.fixedBufferStream("1234");
diff --git a/lib/std/Target/Query.zig b/lib/std/Target/Query.zig
index 4b0579d34db8..aa6671b65f29 100644
--- a/lib/std/Target/Query.zig
+++ b/lib/std/Target/Query.zig
@@ -3,6 +3,15 @@
//! provide meaningful and unsurprising defaults. This struct does reference
//! any resources and it is copyable.
+const Query = @This();
+const std = @import("../std.zig");
+const builtin = @import("builtin");
+const assert = std.debug.assert;
+const Target = std.Target;
+const mem = std.mem;
+const Allocator = std.mem.Allocator;
+const ArrayList = std.ArrayList;
+
/// `null` means native.
cpu_arch: ?Target.Cpu.Arch = null,
@@ -394,7 +403,7 @@ pub fn canDetectLibC(self: Query) bool {
/// Formats a version with the patch component omitted if it is zero,
/// unlike SemanticVersion.format which formats all its version components regardless.
-fn formatVersion(version: SemanticVersion, gpa: Allocator, list: *std.ArrayListUnmanaged(u8)) !void {
+fn formatVersion(version: SemanticVersion, gpa: Allocator, list: *ArrayList(u8)) !void {
if (version.patch == 0) {
try list.print(gpa, "{d}.{d}", .{ version.major, version.minor });
} else {
@@ -408,7 +417,7 @@ pub fn zigTriple(self: Query, gpa: Allocator) Allocator.Error![]u8 {
const arch_name = if (self.cpu_arch) |arch| @tagName(arch) else "native";
const os_name = if (self.os_tag) |os_tag| @tagName(os_tag) else "native";
- var result: std.ArrayListUnmanaged(u8) = .empty;
+ var result: ArrayList(u8) = .empty;
defer result.deinit(gpa);
try result.print(gpa, "{s}-{s}", .{ arch_name, os_name });
@@ -469,7 +478,7 @@ pub fn zigTriple(self: Query, gpa: Allocator) Allocator.Error![]u8 {
/// Renders the query into a textual representation that can be parsed via the
/// `-mcpu` flag passed to the Zig compiler.
/// Appends the result to `buffer`.
-pub fn serializeCpu(q: Query, buffer: *std.ArrayList(u8)) Allocator.Error!void {
+pub fn serializeCpu(q: Query, buffer: *std.array_list.Managed(u8)) Allocator.Error!void {
try buffer.ensureUnusedCapacity(8);
switch (q.cpu_model) {
.native => {
@@ -512,7 +521,7 @@ pub fn serializeCpu(q: Query, buffer: *std.ArrayList(u8)) Allocator.Error!void {
}
pub fn serializeCpuAlloc(q: Query, ally: Allocator) Allocator.Error![]u8 {
- var buffer = std.ArrayList(u8).init(ally);
+ var buffer = std.array_list.Managed(u8).init(ally);
try serializeCpu(q, &buffer);
return buffer.toOwnedSlice();
}
@@ -596,14 +605,6 @@ fn versionEqualOpt(a: ?SemanticVersion, b: ?SemanticVersion) bool {
return SemanticVersion.order(a.?, b.?) == .eq;
}
-const Query = @This();
-const std = @import("../std.zig");
-const builtin = @import("builtin");
-const assert = std.debug.assert;
-const Target = std.Target;
-const mem = std.mem;
-const Allocator = std.mem.Allocator;
-
test parse {
if (builtin.target.isGnuLibC()) {
var query = try Query.parse(.{});
diff --git a/lib/std/array_list.zig b/lib/std/array_list.zig
index 0542fccc68b5..227249099642 100644
--- a/lib/std/array_list.zig
+++ b/lib/std/array_list.zig
@@ -5,27 +5,18 @@ const testing = std.testing;
const mem = std.mem;
const math = std.math;
const Allocator = mem.Allocator;
+const ArrayList = std.ArrayList;
-/// A contiguous, growable list of items in memory.
-/// This is a wrapper around an array of T values. Initialize with `init`.
-///
-/// This struct internally stores a `std.mem.Allocator` for memory management.
-/// To manually specify an allocator with each function call see `ArrayListUnmanaged`.
-pub fn ArrayList(comptime T: type) type {
- return ArrayListAligned(T, null);
+/// Deprecated.
+pub fn Managed(comptime T: type) type {
+ return AlignedManaged(T, null);
}
-/// A contiguous, growable list of arbitrarily aligned items in memory.
-/// This is a wrapper around an array of T values aligned to `alignment`-byte
-/// addresses. If the specified alignment is `null`, then `@alignOf(T)` is used.
-/// Initialize with `init`.
-///
-/// This struct internally stores a `std.mem.Allocator` for memory management.
-/// To manually specify an allocator with each function call see `ArrayListAlignedUnmanaged`.
-pub fn ArrayListAligned(comptime T: type, comptime alignment: ?mem.Alignment) type {
+/// Deprecated.
+pub fn AlignedManaged(comptime T: type, comptime alignment: ?mem.Alignment) type {
if (alignment) |a| {
if (a.toByteUnits() == @alignOf(T)) {
- return ArrayListAligned(T, null);
+ return AlignedManaged(T, null);
}
}
return struct {
@@ -96,11 +87,11 @@ pub fn ArrayListAligned(comptime T: type, comptime alignment: ?mem.Alignment) ty
};
}
- /// Initializes an ArrayListUnmanaged with the `items` and `capacity` fields
+ /// Initializes an ArrayList with the `items` and `capacity` fields
/// of this ArrayList. Empties this ArrayList.
- pub fn moveToUnmanaged(self: *Self) ArrayListAlignedUnmanaged(T, alignment) {
+ pub fn moveToUnmanaged(self: *Self) Aligned(T, alignment) {
const allocator = self.allocator;
- const result: ArrayListAlignedUnmanaged(T, alignment) = .{ .items = self.items, .capacity = self.capacity };
+ const result: Aligned(T, alignment) = .{ .items = self.items, .capacity = self.capacity };
self.* = init(allocator);
return result;
}
@@ -181,7 +172,7 @@ pub fn ArrayListAligned(comptime T: type, comptime alignment: ?mem.Alignment) ty
// a new buffer and doing our own copy. With a realloc() call,
// the allocator implementation would pointlessly copy our
// extra capacity.
- const new_capacity = ArrayListAlignedUnmanaged(T, alignment).growCapacity(self.capacity, new_len);
+ const new_capacity = Aligned(T, alignment).growCapacity(self.capacity, new_len);
const old_memory = self.allocatedSlice();
if (self.allocator.remap(old_memory, new_capacity)) |new_memory| {
self.items.ptr = new_memory.ptr;
@@ -449,7 +440,7 @@ pub fn ArrayListAligned(comptime T: type, comptime alignment: ?mem.Alignment) ty
if (self.capacity >= new_capacity) return;
- const better_capacity = ArrayListAlignedUnmanaged(T, alignment).growCapacity(self.capacity, new_capacity);
+ const better_capacity = Aligned(T, alignment).growCapacity(self.capacity, new_capacity);
return self.ensureTotalCapacityPrecise(better_capacity);
}
@@ -597,14 +588,6 @@ pub fn ArrayListAligned(comptime T: type, comptime alignment: ?mem.Alignment) ty
};
}
-/// An ArrayList, but the allocator is passed as a parameter to the relevant functions
-/// rather than stored in the struct itself. The same allocator must be used throughout
-/// the entire lifetime of an ArrayListUnmanaged. Initialize directly or with
-/// `initCapacity`, and deinitialize with `deinit` or use `toOwnedSlice`.
-pub fn ArrayListUnmanaged(comptime T: type) type {
- return ArrayListAlignedUnmanaged(T, null);
-}
-
/// A contiguous, growable list of arbitrarily aligned items in memory.
/// This is a wrapper around an array of T values aligned to `alignment`-byte
/// addresses. If the specified alignment is `null`, then `@alignOf(T)` is used.
@@ -614,10 +597,10 @@ pub fn ArrayListUnmanaged(comptime T: type) type {
/// or use `toOwnedSlice`.
///
/// Default initialization of this struct is deprecated; use `.empty` instead.
-pub fn ArrayListAlignedUnmanaged(comptime T: type, comptime alignment: ?mem.Alignment) type {
+pub fn Aligned(comptime T: type, comptime alignment: ?mem.Alignment) type {
if (alignment) |a| {
if (a.toByteUnits() == @alignOf(T)) {
- return ArrayListAlignedUnmanaged(T, null);
+ return Aligned(T, null);
}
}
return struct {
@@ -675,11 +658,11 @@ pub fn ArrayListAlignedUnmanaged(comptime T: type, comptime alignment: ?mem.Alig
/// Convert this list into an analogous memory-managed one.
/// The returned list has ownership of the underlying memory.
- pub fn toManaged(self: *Self, gpa: Allocator) ArrayListAligned(T, alignment) {
+ pub fn toManaged(self: *Self, gpa: Allocator) AlignedManaged(T, alignment) {
return .{ .items = self.items, .capacity = self.capacity, .allocator = gpa };
}
- /// ArrayListUnmanaged takes ownership of the passed in slice.
+ /// ArrayList takes ownership of the passed in slice.
/// Deinitialize with `deinit` or use `toOwnedSlice`.
pub fn fromOwnedSlice(slice: Slice) Self {
return Self{
@@ -688,7 +671,7 @@ pub fn ArrayListAlignedUnmanaged(comptime T: type, comptime alignment: ?mem.Alig
};
}
- /// ArrayListUnmanaged takes ownership of the passed in slice.
+ /// ArrayList takes ownership of the passed in slice.
/// Deinitialize with `deinit` or use `toOwnedSlice`.
pub fn fromOwnedSliceSentinel(comptime sentinel: T, slice: [:sentinel]T) Self {
return Self{
@@ -1444,7 +1427,7 @@ fn addOrOom(a: usize, b: usize) error{OutOfMemory}!usize {
test "init" {
{
- var list = ArrayList(i32).init(testing.allocator);
+ var list = Managed(i32).init(testing.allocator);
defer list.deinit();
try testing.expect(list.items.len == 0);
@@ -1452,7 +1435,7 @@ test "init" {
}
{
- const list: ArrayListUnmanaged(i32) = .empty;
+ const list: ArrayList(i32) = .empty;
try testing.expect(list.items.len == 0);
try testing.expect(list.capacity == 0);
@@ -1462,13 +1445,13 @@ test "init" {
test "initCapacity" {
const a = testing.allocator;
{
- var list = try ArrayList(i8).initCapacity(a, 200);
+ var list = try Managed(i8).initCapacity(a, 200);
defer list.deinit();
try testing.expect(list.items.len == 0);
try testing.expect(list.capacity >= 200);
}
{
- var list = try ArrayListUnmanaged(i8).initCapacity(a, 200);
+ var list = try ArrayList(i8).initCapacity(a, 200);
defer list.deinit(a);
try testing.expect(list.items.len == 0);
try testing.expect(list.capacity >= 200);
@@ -1478,7 +1461,7 @@ test "initCapacity" {
test "clone" {
const a = testing.allocator;
{
- var array = ArrayList(i32).init(a);
+ var array = Managed(i32).init(a);
try array.append(-1);
try array.append(3);
try array.append(5);
@@ -1497,7 +1480,7 @@ test "clone" {
try testing.expectEqual(@as(i32, 5), cloned.items[2]);
}
{
- var array: ArrayListUnmanaged(i32) = .empty;
+ var array: ArrayList(i32) = .empty;
try array.append(a, -1);
try array.append(a, 3);
try array.append(a, 5);
@@ -1519,7 +1502,7 @@ test "clone" {
test "basic" {
const a = testing.allocator;
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
{
@@ -1569,7 +1552,7 @@ test "basic" {
try testing.expect(list.pop() == 33);
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
{
@@ -1623,7 +1606,7 @@ test "basic" {
test "appendNTimes" {
const a = testing.allocator;
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.appendNTimes(2, 10);
@@ -1633,7 +1616,7 @@ test "appendNTimes" {
}
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.appendNTimes(a, 2, 10);
@@ -1647,12 +1630,12 @@ test "appendNTimes" {
test "appendNTimes with failing allocator" {
const a = testing.failing_allocator;
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try testing.expectError(error.OutOfMemory, list.appendNTimes(2, 10));
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try testing.expectError(error.OutOfMemory, list.appendNTimes(a, 2, 10));
}
@@ -1661,7 +1644,7 @@ test "appendNTimes with failing allocator" {
test "orderedRemove" {
const a = testing.allocator;
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.append(1);
@@ -1687,7 +1670,7 @@ test "orderedRemove" {
try testing.expectEqual(@as(usize, 4), list.items.len);
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.append(a, 1);
@@ -1714,7 +1697,7 @@ test "orderedRemove" {
}
{
// remove last item
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.append(1);
try testing.expectEqual(@as(i32, 1), list.orderedRemove(0));
@@ -1722,7 +1705,7 @@ test "orderedRemove" {
}
{
// remove last item
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.append(a, 1);
try testing.expectEqual(@as(i32, 1), list.orderedRemove(0));
@@ -1733,7 +1716,7 @@ test "orderedRemove" {
test "swapRemove" {
const a = testing.allocator;
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.append(1);
@@ -1759,7 +1742,7 @@ test "swapRemove" {
try testing.expect(list.items.len == 4);
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.append(a, 1);
@@ -1789,7 +1772,7 @@ test "swapRemove" {
test "insert" {
const a = testing.allocator;
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.insert(0, 1);
@@ -1802,7 +1785,7 @@ test "insert" {
try testing.expect(list.items[3] == 3);
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.insert(a, 0, 1);
@@ -1819,7 +1802,7 @@ test "insert" {
test "insertSlice" {
const a = testing.allocator;
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.append(1);
@@ -1840,7 +1823,7 @@ test "insertSlice" {
try testing.expect(list.items[0] == 1);
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.append(a, 1);
@@ -1862,11 +1845,11 @@ test "insertSlice" {
}
}
-test "ArrayList.replaceRange" {
+test "Managed.replaceRange" {
const a = testing.allocator;
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.appendSlice(&[_]i32{ 1, 2, 3, 4, 5 });
@@ -1875,7 +1858,7 @@ test "ArrayList.replaceRange" {
try testing.expectEqualSlices(i32, &[_]i32{ 1, 0, 0, 0, 2, 3, 4, 5 }, list.items);
}
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.appendSlice(&[_]i32{ 1, 2, 3, 4, 5 });
@@ -1888,7 +1871,7 @@ test "ArrayList.replaceRange" {
);
}
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.appendSlice(&[_]i32{ 1, 2, 3, 4, 5 });
@@ -1897,7 +1880,7 @@ test "ArrayList.replaceRange" {
try testing.expectEqualSlices(i32, &[_]i32{ 1, 0, 0, 0, 4, 5 }, list.items);
}
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.appendSlice(&[_]i32{ 1, 2, 3, 4, 5 });
@@ -1906,7 +1889,7 @@ test "ArrayList.replaceRange" {
try testing.expectEqualSlices(i32, &[_]i32{ 1, 0, 0, 0, 5 }, list.items);
}
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.appendSlice(&[_]i32{ 1, 2, 3, 4, 5 });
@@ -1916,11 +1899,11 @@ test "ArrayList.replaceRange" {
}
}
-test "ArrayList.replaceRangeAssumeCapacity" {
+test "Managed.replaceRangeAssumeCapacity" {
const a = testing.allocator;
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.appendSlice(&[_]i32{ 1, 2, 3, 4, 5 });
@@ -1929,7 +1912,7 @@ test "ArrayList.replaceRangeAssumeCapacity" {
try testing.expectEqualSlices(i32, &[_]i32{ 1, 0, 0, 0, 2, 3, 4, 5 }, list.items);
}
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.appendSlice(&[_]i32{ 1, 2, 3, 4, 5 });
@@ -1942,7 +1925,7 @@ test "ArrayList.replaceRangeAssumeCapacity" {
);
}
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.appendSlice(&[_]i32{ 1, 2, 3, 4, 5 });
@@ -1951,7 +1934,7 @@ test "ArrayList.replaceRangeAssumeCapacity" {
try testing.expectEqualSlices(i32, &[_]i32{ 1, 0, 0, 0, 4, 5 }, list.items);
}
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.appendSlice(&[_]i32{ 1, 2, 3, 4, 5 });
@@ -1960,7 +1943,7 @@ test "ArrayList.replaceRangeAssumeCapacity" {
try testing.expectEqualSlices(i32, &[_]i32{ 1, 0, 0, 0, 5 }, list.items);
}
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.appendSlice(&[_]i32{ 1, 2, 3, 4, 5 });
@@ -1970,11 +1953,11 @@ test "ArrayList.replaceRangeAssumeCapacity" {
}
}
-test "ArrayListUnmanaged.replaceRange" {
+test "ArrayList.replaceRange" {
const a = testing.allocator;
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.appendSlice(a, &[_]i32{ 1, 2, 3, 4, 5 });
@@ -1983,7 +1966,7 @@ test "ArrayListUnmanaged.replaceRange" {
try testing.expectEqualSlices(i32, &[_]i32{ 1, 0, 0, 0, 2, 3, 4, 5 }, list.items);
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.appendSlice(a, &[_]i32{ 1, 2, 3, 4, 5 });
@@ -1996,7 +1979,7 @@ test "ArrayListUnmanaged.replaceRange" {
);
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.appendSlice(a, &[_]i32{ 1, 2, 3, 4, 5 });
@@ -2005,7 +1988,7 @@ test "ArrayListUnmanaged.replaceRange" {
try testing.expectEqualSlices(i32, &[_]i32{ 1, 0, 0, 0, 4, 5 }, list.items);
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.appendSlice(a, &[_]i32{ 1, 2, 3, 4, 5 });
@@ -2014,7 +1997,7 @@ test "ArrayListUnmanaged.replaceRange" {
try testing.expectEqualSlices(i32, &[_]i32{ 1, 0, 0, 0, 5 }, list.items);
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.appendSlice(a, &[_]i32{ 1, 2, 3, 4, 5 });
@@ -2024,11 +2007,11 @@ test "ArrayListUnmanaged.replaceRange" {
}
}
-test "ArrayListUnmanaged.replaceRangeAssumeCapacity" {
+test "ArrayList.replaceRangeAssumeCapacity" {
const a = testing.allocator;
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.appendSlice(a, &[_]i32{ 1, 2, 3, 4, 5 });
@@ -2037,7 +2020,7 @@ test "ArrayListUnmanaged.replaceRangeAssumeCapacity" {
try testing.expectEqualSlices(i32, &[_]i32{ 1, 0, 0, 0, 2, 3, 4, 5 }, list.items);
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.appendSlice(a, &[_]i32{ 1, 2, 3, 4, 5 });
@@ -2050,7 +2033,7 @@ test "ArrayListUnmanaged.replaceRangeAssumeCapacity" {
);
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.appendSlice(a, &[_]i32{ 1, 2, 3, 4, 5 });
@@ -2059,7 +2042,7 @@ test "ArrayListUnmanaged.replaceRangeAssumeCapacity" {
try testing.expectEqualSlices(i32, &[_]i32{ 1, 0, 0, 0, 4, 5 }, list.items);
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.appendSlice(a, &[_]i32{ 1, 2, 3, 4, 5 });
@@ -2068,7 +2051,7 @@ test "ArrayListUnmanaged.replaceRangeAssumeCapacity" {
try testing.expectEqualSlices(i32, &[_]i32{ 1, 0, 0, 0, 5 }, list.items);
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.appendSlice(a, &[_]i32{ 1, 2, 3, 4, 5 });
@@ -2080,15 +2063,15 @@ test "ArrayListUnmanaged.replaceRangeAssumeCapacity" {
const Item = struct {
integer: i32,
- sub_items: ArrayList(Item),
+ sub_items: Managed(Item),
};
const ItemUnmanaged = struct {
integer: i32,
- sub_items: ArrayListUnmanaged(ItemUnmanaged),
+ sub_items: ArrayList(ItemUnmanaged),
};
-test "ArrayList(T) of struct T" {
+test "Managed(T) of struct T" {
const a = std.testing.allocator;
{
var root = Item{ .integer = 1, .sub_items = .init(a) };
@@ -2104,11 +2087,11 @@ test "ArrayList(T) of struct T" {
}
}
-test "ArrayList(u8) implements writer" {
+test "Managed(u8) implements writer" {
const a = testing.allocator;
{
- var buffer = ArrayList(u8).init(a);
+ var buffer = Managed(u8).init(a);
defer buffer.deinit();
const x: i32 = 42;
@@ -2118,7 +2101,7 @@ test "ArrayList(u8) implements writer" {
try testing.expectEqualSlices(u8, "x: 42\ny: 1234\n", buffer.items);
}
{
- var list = ArrayListAligned(u8, .@"2").init(a);
+ var list = AlignedManaged(u8, .@"2").init(a);
defer list.deinit();
const writer = list.writer();
@@ -2131,11 +2114,11 @@ test "ArrayList(u8) implements writer" {
}
}
-test "ArrayListUnmanaged(u8) implements writer" {
+test "ArrayList(u8) implements writer" {
const a = testing.allocator;
{
- var buffer: ArrayListUnmanaged(u8) = .empty;
+ var buffer: ArrayList(u8) = .empty;
defer buffer.deinit(a);
const x: i32 = 42;
@@ -2145,7 +2128,7 @@ test "ArrayListUnmanaged(u8) implements writer" {
try testing.expectEqualSlices(u8, "x: 42\ny: 1234\n", buffer.items);
}
{
- var list: ArrayListAlignedUnmanaged(u8, .@"2") = .empty;
+ var list: Aligned(u8, .@"2") = .empty;
defer list.deinit(a);
const writer = list.writer(a);
@@ -2163,7 +2146,7 @@ test "shrink still sets length when resizing is disabled" {
const a = failing_allocator.allocator();
{
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.append(1);
@@ -2174,7 +2157,7 @@ test "shrink still sets length when resizing is disabled" {
try testing.expect(list.items.len == 1);
}
{
- var list: ArrayListUnmanaged(i32) = .empty;
+ var list: ArrayList(i32) = .empty;
defer list.deinit(a);
try list.append(a, 1);
@@ -2190,7 +2173,7 @@ test "shrinkAndFree with a copy" {
var failing_allocator = testing.FailingAllocator.init(testing.allocator, .{ .resize_fail_index = 0 });
const a = failing_allocator.allocator();
- var list = ArrayList(i32).init(a);
+ var list = Managed(i32).init(a);
defer list.deinit();
try list.appendNTimes(3, 16);
@@ -2201,7 +2184,7 @@ test "shrinkAndFree with a copy" {
test "addManyAsArray" {
const a = std.testing.allocator;
{
- var list = ArrayList(u8).init(a);
+ var list = Managed(u8).init(a);
defer list.deinit();
(try list.addManyAsArray(4)).* = "aoeu".*;
@@ -2211,7 +2194,7 @@ test "addManyAsArray" {
try testing.expectEqualSlices(u8, list.items, "aoeuasdf");
}
{
- var list: ArrayListUnmanaged(u8) = .empty;
+ var list: ArrayList(u8) = .empty;
defer list.deinit(a);
(try list.addManyAsArray(a, 4)).* = "aoeu".*;
@@ -2227,7 +2210,7 @@ test "growing memory preserves contents" {
// will be triggered in the next operation.
const a = std.testing.allocator;
{
- var list = ArrayList(u8).init(a);
+ var list = Managed(u8).init(a);
defer list.deinit();
(try list.addManyAsArray(4)).* = "abcd".*;
@@ -2241,7 +2224,7 @@ test "growing memory preserves contents" {
try testing.expectEqualSlices(u8, list.items, "abcdijklefgh");
}
{
- var list: ArrayListUnmanaged(u8) = .empty;
+ var list: ArrayList(u8) = .empty;
defer list.deinit(a);
(try list.addManyAsArray(a, 4)).* = "abcd".*;
@@ -2259,22 +2242,22 @@ test "growing memory preserves contents" {
test "fromOwnedSlice" {
const a = testing.allocator;
{
- var orig_list = ArrayList(u8).init(a);
+ var orig_list = Managed(u8).init(a);
defer orig_list.deinit();
try orig_list.appendSlice("foobar");
const slice = try orig_list.toOwnedSlice();
- var list = ArrayList(u8).fromOwnedSlice(a, slice);
+ var list = Managed(u8).fromOwnedSlice(a, slice);
defer list.deinit();
try testing.expectEqualStrings(list.items, "foobar");
}
{
- var list = ArrayList(u8).init(a);
+ var list = Managed(u8).init(a);
defer list.deinit();
try list.appendSlice("foobar");
const slice = try list.toOwnedSlice();
- var unmanaged = ArrayListUnmanaged(u8).fromOwnedSlice(slice);
+ var unmanaged = ArrayList(u8).fromOwnedSlice(slice);
defer unmanaged.deinit(a);
try testing.expectEqualStrings(unmanaged.items, "foobar");
}
@@ -2283,22 +2266,22 @@ test "fromOwnedSlice" {
test "fromOwnedSliceSentinel" {
const a = testing.allocator;
{
- var orig_list = ArrayList(u8).init(a);
+ var orig_list = Managed(u8).init(a);
defer orig_list.deinit();
try orig_list.appendSlice("foobar");
const sentinel_slice = try orig_list.toOwnedSliceSentinel(0);
- var list = ArrayList(u8).fromOwnedSliceSentinel(a, 0, sentinel_slice);
+ var list = Managed(u8).fromOwnedSliceSentinel(a, 0, sentinel_slice);
defer list.deinit();
try testing.expectEqualStrings(list.items, "foobar");
}
{
- var list = ArrayList(u8).init(a);
+ var list = Managed(u8).init(a);
defer list.deinit();
try list.appendSlice("foobar");
const sentinel_slice = try list.toOwnedSliceSentinel(0);
- var unmanaged = ArrayListUnmanaged(u8).fromOwnedSliceSentinel(0, sentinel_slice);
+ var unmanaged = ArrayList(u8).fromOwnedSliceSentinel(0, sentinel_slice);
defer unmanaged.deinit(a);
try testing.expectEqualStrings(unmanaged.items, "foobar");
}
@@ -2307,7 +2290,7 @@ test "fromOwnedSliceSentinel" {
test "toOwnedSliceSentinel" {
const a = testing.allocator;
{
- var list = ArrayList(u8).init(a);
+ var list = Managed(u8).init(a);
defer list.deinit();
try list.appendSlice("foobar");
@@ -2317,7 +2300,7 @@ test "toOwnedSliceSentinel" {
try testing.expectEqualStrings(result, mem.sliceTo(result.ptr, 0));
}
{
- var list: ArrayListUnmanaged(u8) = .empty;
+ var list: ArrayList(u8) = .empty;
defer list.deinit(a);
try list.appendSlice(a, "foobar");
@@ -2331,7 +2314,7 @@ test "toOwnedSliceSentinel" {
test "accepts unaligned slices" {
const a = testing.allocator;
{
- var list = std.ArrayListAligned(u8, .@"8").init(a);
+ var list = AlignedManaged(u8, .@"8").init(a);
defer list.deinit();
try list.appendSlice(&.{ 0, 1, 2, 3 });
@@ -2341,7 +2324,7 @@ test "accepts unaligned slices" {
try testing.expectEqualSlices(u8, list.items, &.{ 0, 8, 9, 6, 7, 2, 3 });
}
{
- var list: std.ArrayListAlignedUnmanaged(u8, .@"8") = .empty;
+ var list: Aligned(u8, .@"8") = .empty;
defer list.deinit(a);
try list.appendSlice(a, &.{ 0, 1, 2, 3 });
@@ -2352,11 +2335,11 @@ test "accepts unaligned slices" {
}
}
-test "ArrayList(u0)" {
- // An ArrayList on zero-sized types should not need to allocate
+test "Managed(u0)" {
+ // An Managed on zero-sized types should not need to allocate
const a = testing.failing_allocator;
- var list = ArrayList(u0).init(a);
+ var list = Managed(u0).init(a);
defer list.deinit();
try list.append(0);
@@ -2372,10 +2355,10 @@ test "ArrayList(u0)" {
try testing.expectEqual(count, 3);
}
-test "ArrayList(?u32).pop()" {
+test "Managed(?u32).pop()" {
const a = testing.allocator;
- var list = ArrayList(?u32).init(a);
+ var list = Managed(?u32).init(a);
defer list.deinit();
try list.append(null);
@@ -2389,10 +2372,10 @@ test "ArrayList(?u32).pop()" {
try testing.expect(list.pop() == null);
}
-test "ArrayList(u32).getLast()" {
+test "Managed(u32).getLast()" {
const a = testing.allocator;
- var list = ArrayList(u32).init(a);
+ var list = Managed(u32).init(a);
defer list.deinit();
try list.append(2);
@@ -2400,10 +2383,10 @@ test "ArrayList(u32).getLast()" {
try testing.expectEqual(const_list.getLast(), 2);
}
-test "ArrayList(u32).getLastOrNull()" {
+test "Managed(u32).getLastOrNull()" {
const a = testing.allocator;
- var list = ArrayList(u32).init(a);
+ var list = Managed(u32).init(a);
defer list.deinit();
try testing.expectEqual(list.getLastOrNull(), null);
@@ -2419,7 +2402,7 @@ test "return OutOfMemory when capacity would exceed maximum usize integer value"
const items = &.{ 42, 43 };
{
- var list: ArrayListUnmanaged(u32) = .{
+ var list: ArrayList(u32) = .{
.items = undefined,
.capacity = math.maxInt(usize) - 1,
};
@@ -2436,7 +2419,7 @@ test "return OutOfMemory when capacity would exceed maximum usize integer value"
}
{
- var list: ArrayList(u32) = .{
+ var list: Managed(u32) = .{
.items = undefined,
.capacity = math.maxInt(usize) - 1,
.allocator = a,
@@ -2457,7 +2440,7 @@ test "return OutOfMemory when capacity would exceed maximum usize integer value"
test "orderedRemoveMany" {
const gpa = testing.allocator;
- var list: ArrayListUnmanaged(usize) = .empty;
+ var list: Aligned(usize, null) = .empty;
defer list.deinit(gpa);
for (0..10) |n| {
diff --git a/lib/std/compress/lzma2.zig b/lib/std/compress/lzma2.zig
index 2797990f9c88..1ccfe365842b 100644
--- a/lib/std/compress/lzma2.zig
+++ b/lib/std/compress/lzma2.zig
@@ -18,7 +18,7 @@ test {
const compressed = &[_]u8{ 0x01, 0x00, 0x05, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x0A, 0x02, 0x00, 0x06, 0x57, 0x6F, 0x72, 0x6C, 0x64, 0x21, 0x0A, 0x00 };
const allocator = std.testing.allocator;
- var decomp = std.ArrayList(u8).init(allocator);
+ var decomp = std.array_list.Managed(u8).init(allocator);
defer decomp.deinit();
var stream = std.io.fixedBufferStream(compressed);
try decompress(allocator, stream.reader(), decomp.writer());
diff --git a/lib/std/crypto/argon2.zig b/lib/std/crypto/argon2.zig
index 77c878e779d6..3737d252e915 100644
--- a/lib/std/crypto/argon2.zig
+++ b/lib/std/crypto/argon2.zig
@@ -14,7 +14,7 @@ const pwhash = crypto.pwhash;
const Thread = std.Thread;
const Blake2b512 = blake2.Blake2b512;
-const Blocks = std.ArrayListAligned([block_length]u64, .@"16");
+const Blocks = std.array_list.AlignedManaged([block_length]u64, .@"16");
const H0 = [Blake2b512.digest_length + 8]u8;
const EncodingError = crypto.errors.EncodingError;
@@ -252,7 +252,7 @@ fn processBlocksMt(
lanes: u32,
segments: u32,
) KdfError!void {
- var threads_list = try std.ArrayList(Thread).initCapacity(allocator, threads);
+ var threads_list = try std.array_list.Managed(Thread).initCapacity(allocator, threads);
defer threads_list.deinit();
var n: u32 = 0;
@@ -507,7 +507,7 @@ pub fn kdf(
var blocks = try Blocks.initCapacity(allocator, memory);
defer blocks.deinit();
- blocks.appendNTimesAssumeCapacity([_]u64{0} ** block_length, memory);
+ blocks.appendNTimesAssumeCapacity(@splat(0), memory);
initBlocks(&blocks, &h0, memory, params.p);
try processBlocks(allocator, &blocks, params.t, memory, params.p, mode);
diff --git a/lib/std/debug/Dwarf.zig b/lib/std/debug/Dwarf.zig
index 6237d06cdad5..2cdeede7b18d 100644
--- a/lib/std/debug/Dwarf.zig
+++ b/lib/std/debug/Dwarf.zig
@@ -27,6 +27,7 @@ const maxInt = std.math.maxInt;
const MemoryAccessor = std.debug.MemoryAccessor;
const Path = std.Build.Cache.Path;
const FixedBufferReader = std.debug.FixedBufferReader;
+const ArrayList = std.ArrayList;
const Dwarf = @This();
@@ -42,11 +43,11 @@ sections: SectionArray = null_section_array,
is_macho: bool,
/// Filled later by the initializer
-abbrev_table_list: std.ArrayListUnmanaged(Abbrev.Table) = .empty,
+abbrev_table_list: ArrayList(Abbrev.Table) = .empty,
/// Filled later by the initializer
-compile_unit_list: std.ArrayListUnmanaged(CompileUnit) = .empty,
+compile_unit_list: ArrayList(CompileUnit) = .empty,
/// Filled later by the initializer
-func_list: std.ArrayListUnmanaged(Func) = .empty,
+func_list: ArrayList(Func) = .empty,
/// Starts out non-`null` if the `.eh_frame_hdr` section is present. May become `null` later if we
/// find that `.eh_frame_hdr` is incomplete.
@@ -54,10 +55,10 @@ eh_frame_hdr: ?ExceptionFrameHeader = null,
/// These lookup tables are only used if `eh_frame_hdr` is null
cie_map: std.AutoArrayHashMapUnmanaged(u64, CommonInformationEntry) = .empty,
/// Sorted by start_pc
-fde_list: std.ArrayListUnmanaged(FrameDescriptionEntry) = .empty,
+fde_list: ArrayList(FrameDescriptionEntry) = .empty,
/// Populated by `populateRanges`.
-ranges: std.ArrayListUnmanaged(Range) = .empty,
+ranges: ArrayList(Range) = .empty,
pub const Range = struct {
start: u64,
@@ -1038,7 +1039,7 @@ fn scanAllCompileUnits(di: *Dwarf, allocator: Allocator) ScanError!void {
var fbr: FixedBufferReader = .{ .buf = di.section(.debug_info).?, .endian = di.endian };
var this_unit_offset: u64 = 0;
- var attrs_buf = std.ArrayList(Die.Attr).init(allocator);
+ var attrs_buf = std.array_list.Managed(Die.Attr).init(allocator);
defer attrs_buf.deinit();
while (this_unit_offset < fbr.buf.len) {
@@ -1343,7 +1344,7 @@ fn parseAbbrevTable(di: *Dwarf, allocator: Allocator, offset: u64) !Abbrev.Table
.endian = di.endian,
};
- var abbrevs = std.ArrayList(Abbrev).init(allocator);
+ var abbrevs = std.array_list.Managed(Abbrev).init(allocator);
defer {
for (abbrevs.items) |*abbrev| {
abbrev.deinit(allocator);
@@ -1351,7 +1352,7 @@ fn parseAbbrevTable(di: *Dwarf, allocator: Allocator, offset: u64) !Abbrev.Table
abbrevs.deinit();
}
- var attrs = std.ArrayList(Abbrev.Attr).init(allocator);
+ var attrs = std.array_list.Managed(Abbrev.Attr).init(allocator);
defer attrs.deinit();
while (true) {
@@ -1468,9 +1469,9 @@ fn runLineNumberProgram(d: *Dwarf, gpa: Allocator, compile_unit: *CompileUnit) !
const standard_opcode_lengths = try fbr.readBytes(opcode_base - 1);
- var directories: std.ArrayListUnmanaged(FileEntry) = .empty;
+ var directories: ArrayList(FileEntry) = .empty;
defer directories.deinit(gpa);
- var file_entries: std.ArrayListUnmanaged(FileEntry) = .empty;
+ var file_entries: ArrayList(FileEntry) = .empty;
defer file_entries.deinit(gpa);
if (version < 5) {
@@ -2244,7 +2245,7 @@ pub const ElfModule = struct {
if (chdr.ch_type != .ZLIB) continue;
var decompress: std.compress.flate.Decompress = .init(§ion_reader, .zlib, &.{});
- var decompressed_section: std.ArrayListUnmanaged(u8) = .empty;
+ var decompressed_section: ArrayList(u8) = .empty;
defer decompressed_section.deinit(gpa);
decompress.reader.appendRemainingUnlimited(gpa, null, &decompressed_section, std.compress.flate.history_len) catch {
invalidDebugInfoDetected();
diff --git a/lib/std/debug/Dwarf/expression.zig b/lib/std/debug/Dwarf/expression.zig
index c0ebea750430..fcbb9391713d 100644
--- a/lib/std/debug/Dwarf/expression.zig
+++ b/lib/std/debug/Dwarf/expression.zig
@@ -1064,7 +1064,7 @@ test "DWARF expressions" {
const b = Builder(options);
- var program = std.ArrayList(u8).init(allocator);
+ var program = std.array_list.Managed(u8).init(allocator);
defer program.deinit();
const writer = program.writer();
@@ -1120,7 +1120,7 @@ test "DWARF expressions" {
var mock_compile_unit: std.debug.Dwarf.CompileUnit = undefined;
mock_compile_unit.addr_base = 1;
- var mock_debug_addr = std.ArrayList(u8).init(allocator);
+ var mock_debug_addr = std.array_list.Managed(u8).init(allocator);
defer mock_debug_addr.deinit();
try mock_debug_addr.writer().writeInt(u16, 0, native_endian);
@@ -1590,7 +1590,7 @@ test "DWARF expressions" {
// Sub-expression
{
- var sub_program = std.ArrayList(u8).init(allocator);
+ var sub_program = std.array_list.Managed(u8).init(allocator);
defer sub_program.deinit();
const sub_writer = sub_program.writer();
try b.writeLiteral(sub_writer, 3);
@@ -1617,7 +1617,7 @@ test "DWARF expressions" {
if (abi.regBytes(&thread_context, 0, reg_context)) |reg_bytes| {
mem.writeInt(usize, reg_bytes[0..@sizeOf(usize)], 0xee, native_endian);
- var sub_program = std.ArrayList(u8).init(allocator);
+ var sub_program = std.array_list.Managed(u8).init(allocator);
defer sub_program.deinit();
const sub_writer = sub_program.writer();
try b.writeReg(sub_writer, 0);
diff --git a/lib/std/debug/Pdb.zig b/lib/std/debug/Pdb.zig
index c8dccca497eb..4e46ab7bf6d3 100644
--- a/lib/std/debug/Pdb.zig
+++ b/lib/std/debug/Pdb.zig
@@ -76,7 +76,7 @@ pub fn parseDbiStream(self: *Pdb) !void {
const mod_info_size = header.mod_info_size;
const section_contrib_size = header.section_contribution_size;
- var modules = std.ArrayList(Module).init(self.allocator);
+ var modules = std.array_list.Managed(Module).init(self.allocator);
errdefer modules.deinit();
// Module Info Substream
@@ -117,7 +117,7 @@ pub fn parseDbiStream(self: *Pdb) !void {
}
// Section Contribution Substream
- var sect_contribs = std.ArrayList(pdb.SectionContribEntry).init(self.allocator);
+ var sect_contribs = std.array_list.Managed(pdb.SectionContribEntry).init(self.allocator);
errdefer sect_contribs.deinit();
var sect_cont_offset: usize = 0;
@@ -569,7 +569,7 @@ const MsfStream = struct {
fn readSparseBitVector(stream: anytype, allocator: Allocator) ![]u32 {
const num_words = try stream.readInt(u32, .little);
- var list = std.ArrayList(u32).init(allocator);
+ var list = std.array_list.Managed(u32).init(allocator);
errdefer list.deinit();
var word_i: u32 = 0;
while (word_i != num_words) : (word_i += 1) {
diff --git a/lib/std/fs/File.zig b/lib/std/fs/File.zig
index 29d8712ed8d4..ace7cb8292c6 100644
--- a/lib/std/fs/File.zig
+++ b/lib/std/fs/File.zig
@@ -826,7 +826,7 @@ pub fn readToEndAllocOptions(
// size. If the reported size is zero, as it happens on Linux for files
// in /proc, a small buffer is allocated instead.
const initial_cap = @min((if (size > 0) size else 1024), max_bytes) + @intFromBool(optional_sentinel != null);
- var array_list = try std.ArrayListAligned(u8, alignment).initCapacity(allocator, initial_cap);
+ var array_list = try std.array_list.AlignedManaged(u8, alignment).initCapacity(allocator, initial_cap);
defer array_list.deinit();
self.deprecatedReader().readAllArrayListAligned(alignment, &array_list, max_bytes) catch |err| switch (err) {
diff --git a/lib/std/fs/path.zig b/lib/std/fs/path.zig
index 542166b78e55..8a1c3ef1f80f 100644
--- a/lib/std/fs/path.zig
+++ b/lib/std/fs/path.zig
@@ -577,7 +577,7 @@ pub fn resolveWindows(allocator: Allocator, paths: []const []const u8) ![]u8 {
}
// Allocate result and fill in the disk designator.
- var result = std.ArrayList(u8).init(allocator);
+ var result = std.array_list.Managed(u8).init(allocator);
defer result.deinit();
const disk_designator_len: usize = l: {
@@ -698,7 +698,7 @@ pub fn resolveWindows(allocator: Allocator, paths: []const []const u8) ![]u8 {
pub fn resolvePosix(allocator: Allocator, paths: []const []const u8) Allocator.Error![]u8 {
assert(paths.len > 0);
- var result = std.ArrayList(u8).init(allocator);
+ var result = std.array_list.Managed(u8).init(allocator);
defer result.deinit();
var negative_count: usize = 0;
diff --git a/lib/std/fs/test.zig b/lib/std/fs/test.zig
index 4b63873af5a0..d51fe3db0efe 100644
--- a/lib/std/fs/test.zig
+++ b/lib/std/fs/test.zig
@@ -464,7 +464,7 @@ test "Dir.Iterator" {
defer arena.deinit();
const allocator = arena.allocator();
- var entries = std.ArrayList(Dir.Entry).init(allocator);
+ var entries = std.array_list.Managed(Dir.Entry).init(allocator);
// Create iterator.
var iter = tmp_dir.dir.iterate();
@@ -497,7 +497,7 @@ test "Dir.Iterator many entries" {
defer arena.deinit();
const allocator = arena.allocator();
- var entries = std.ArrayList(Dir.Entry).init(allocator);
+ var entries = std.array_list.Managed(Dir.Entry).init(allocator);
// Create iterator.
var iter = tmp_dir.dir.iterate();
@@ -531,7 +531,7 @@ test "Dir.Iterator twice" {
var i: u8 = 0;
while (i < 2) : (i += 1) {
- var entries = std.ArrayList(Dir.Entry).init(allocator);
+ var entries = std.array_list.Managed(Dir.Entry).init(allocator);
// Create iterator.
var iter = tmp_dir.dir.iterate();
@@ -567,7 +567,7 @@ test "Dir.Iterator reset" {
var i: u8 = 0;
while (i < 2) : (i += 1) {
- var entries = std.ArrayList(Dir.Entry).init(allocator);
+ var entries = std.array_list.Managed(Dir.Entry).init(allocator);
while (try iter.next()) |entry| {
// We cannot just store `entry` as on Windows, we're re-using the name buffer
@@ -617,7 +617,7 @@ fn entryEql(lhs: Dir.Entry, rhs: Dir.Entry) bool {
return mem.eql(u8, lhs.name, rhs.name) and lhs.kind == rhs.kind;
}
-fn contains(entries: *const std.ArrayList(Dir.Entry), el: Dir.Entry) bool {
+fn contains(entries: *const std.array_list.Managed(Dir.Entry), el: Dir.Entry) bool {
for (entries.items) |entry| {
if (entryEql(entry, el)) return true;
}
diff --git a/lib/std/hash_map.zig b/lib/std/hash_map.zig
index f6d3fbabd7e6..eb40724f203a 100644
--- a/lib/std/hash_map.zig
+++ b/lib/std/hash_map.zig
@@ -1800,7 +1800,7 @@ test "put and remove loop in random order" {
var map = AutoHashMap(u32, u32).init(std.testing.allocator);
defer map.deinit();
- var keys = std.ArrayList(u32).init(std.testing.allocator);
+ var keys = std.array_list.Managed(u32).init(std.testing.allocator);
defer keys.deinit();
const size = 32;
@@ -1834,7 +1834,7 @@ test "remove one million elements in random order" {
var map = Map.init(std.heap.page_allocator);
defer map.deinit();
- var keys = std.ArrayList(u32).init(std.heap.page_allocator);
+ var keys = std.array_list.Managed(u32).init(std.heap.page_allocator);
defer keys.deinit();
var i: u32 = 0;
diff --git a/lib/std/heap.zig b/lib/std/heap.zig
index a2eac1245656..3bb4fef6a094 100644
--- a/lib/std/heap.zig
+++ b/lib/std/heap.zig
@@ -673,7 +673,7 @@ pub fn testAllocatorAlignedShrink(base_allocator: mem.Allocator) !void {
var slice = try allocator.alignedAlloc(u8, .@"16", alloc_size);
defer allocator.free(slice);
- var stuff_to_free = std.ArrayList([]align(16) u8).init(debug_allocator);
+ var stuff_to_free = std.array_list.Managed([]align(16) u8).init(debug_allocator);
// On Windows, VirtualAlloc returns addresses aligned to a 64K boundary,
// which is 16 pages, hence the 32. This test may require to increase
// the size of the allocations feeding the `allocator` parameter if they
diff --git a/lib/std/heap/debug_allocator.zig b/lib/std/heap/debug_allocator.zig
index 97b884ec6420..a4b1de5b47b5 100644
--- a/lib/std/heap/debug_allocator.zig
+++ b/lib/std/heap/debug_allocator.zig
@@ -1061,7 +1061,7 @@ test "small allocations - free in same order" {
defer std.testing.expect(gpa.deinit() == .ok) catch @panic("leak");
const allocator = gpa.allocator();
- var list = std.ArrayList(*u64).init(std.testing.allocator);
+ var list = std.array_list.Managed(*u64).init(std.testing.allocator);
defer list.deinit();
var i: usize = 0;
@@ -1080,7 +1080,7 @@ test "small allocations - free in reverse order" {
defer std.testing.expect(gpa.deinit() == .ok) catch @panic("leak");
const allocator = gpa.allocator();
- var list = std.ArrayList(*u64).init(std.testing.allocator);
+ var list = std.array_list.Managed(*u64).init(std.testing.allocator);
defer list.deinit();
var i: usize = 0;
@@ -1241,7 +1241,7 @@ test "shrink large object to large object with larger alignment" {
// This loop allocates until we find a page that is not aligned to the big
// alignment. Then we shrink the allocation after the loop, but increase the
// alignment to the higher one, that we know will force it to realloc.
- var stuff_to_free = std.ArrayList([]align(16) u8).init(debug_allocator);
+ var stuff_to_free = std.array_list.Managed([]align(16) u8).init(debug_allocator);
while (mem.isAligned(@intFromPtr(slice.ptr), big_alignment)) {
try stuff_to_free.append(slice);
slice = try allocator.alignedAlloc(u8, .@"16", alloc_size);
@@ -1313,7 +1313,7 @@ test "realloc large object to larger alignment" {
const big_alignment: usize = default_page_size * 2;
// This loop allocates until we find a page that is not aligned to the big alignment.
- var stuff_to_free = std.ArrayList([]align(16) u8).init(debug_allocator);
+ var stuff_to_free = std.array_list.Managed([]align(16) u8).init(debug_allocator);
while (mem.isAligned(@intFromPtr(slice.ptr), big_alignment)) {
try stuff_to_free.append(slice);
slice = try allocator.alignedAlloc(u8, .@"16", default_page_size * 2 + 50);
diff --git a/lib/std/http/test.zig b/lib/std/http/test.zig
index d663c476c2f5..b6e4058de1da 100644
--- a/lib/std/http/test.zig
+++ b/lib/std/http/test.zig
@@ -298,7 +298,7 @@ test "Server.Request.respondStreaming non-chunked, unknown content-length" {
const response = try stream_reader.interface().allocRemaining(gpa, .unlimited);
defer gpa.free(response);
- var expected_response = std.ArrayList(u8).init(gpa);
+ var expected_response = std.array_list.Managed(u8).init(gpa);
defer expected_response.deinit();
try expected_response.appendSlice("HTTP/1.1 200 OK\r\nconnection: close\r\n\r\n");
@@ -369,7 +369,7 @@ test "receiving arbitrary http headers from the client" {
const response = try stream_reader.interface().allocRemaining(gpa, .unlimited);
defer gpa.free(response);
- var expected_response = std.ArrayList(u8).init(gpa);
+ var expected_response = std.array_list.Managed(u8).init(gpa);
defer expected_response.deinit();
try expected_response.appendSlice("HTTP/1.1 200 OK\r\n");
diff --git a/lib/std/json/Scanner.zig b/lib/std/json/Scanner.zig
index b9c3c506a525..61bc474c790e 100644
--- a/lib/std/json/Scanner.zig
+++ b/lib/std/json/Scanner.zig
@@ -46,7 +46,6 @@ const Scanner = @This();
const std = @import("std");
const Allocator = std.mem.Allocator;
-const ArrayList = std.ArrayList;
const assert = std.debug.assert;
const BitStack = std.BitStack;
@@ -136,7 +135,7 @@ pub fn nextAllocMax(self: *@This(), allocator: Allocator, when: AllocWhen, max_v
};
switch (token_type) {
.number, .string => {
- var value_list = ArrayList(u8).init(allocator);
+ var value_list = std.array_list.Managed(u8).init(allocator);
errdefer {
value_list.deinit();
}
@@ -173,7 +172,7 @@ pub fn nextAllocMax(self: *@This(), allocator: Allocator, when: AllocWhen, max_v
}
/// Equivalent to `allocNextIntoArrayListMax(value_list, when, default_max_value_len);`
-pub fn allocNextIntoArrayList(self: *@This(), value_list: *ArrayList(u8), when: AllocWhen) AllocIntoArrayListError!?[]const u8 {
+pub fn allocNextIntoArrayList(self: *@This(), value_list: *std.array_list.Managed(u8), when: AllocWhen) AllocIntoArrayListError!?[]const u8 {
return self.allocNextIntoArrayListMax(value_list, when, default_max_value_len);
}
/// The next token type must be either `.number` or `.string`. See `peekNextTokenType()`.
@@ -186,7 +185,7 @@ pub fn allocNextIntoArrayList(self: *@This(), value_list: *ArrayList(u8), when:
/// can be resumed by passing the same array list in again.
/// This method does not indicate whether the token content being returned is for a `.number` or `.string` token type;
/// the caller of this method is expected to know which type of token is being processed.
-pub fn allocNextIntoArrayListMax(self: *@This(), value_list: *ArrayList(u8), when: AllocWhen, max_value_len: usize) AllocIntoArrayListError!?[]const u8 {
+pub fn allocNextIntoArrayListMax(self: *@This(), value_list: *std.array_list.Managed(u8), when: AllocWhen, max_value_len: usize) AllocIntoArrayListError!?[]const u8 {
while (true) {
const token = try self.next();
switch (token) {
@@ -1608,7 +1607,7 @@ pub const Reader = struct {
const token_type = try self.peekNextTokenType();
switch (token_type) {
.number, .string => {
- var value_list = ArrayList(u8).init(allocator);
+ var value_list = std.array_list.Managed(u8).init(allocator);
errdefer {
value_list.deinit();
}
@@ -1639,11 +1638,11 @@ pub const Reader = struct {
}
/// Equivalent to `allocNextIntoArrayListMax(value_list, when, default_max_value_len);`
- pub fn allocNextIntoArrayList(self: *@This(), value_list: *ArrayList(u8), when: AllocWhen) Reader.AllocError!?[]const u8 {
+ pub fn allocNextIntoArrayList(self: *@This(), value_list: *std.array_list.Managed(u8), when: AllocWhen) Reader.AllocError!?[]const u8 {
return self.allocNextIntoArrayListMax(value_list, when, default_max_value_len);
}
/// Calls `std.json.Scanner.allocNextIntoArrayListMax` and handles `error.BufferUnderrun`.
- pub fn allocNextIntoArrayListMax(self: *@This(), value_list: *ArrayList(u8), when: AllocWhen, max_value_len: usize) Reader.AllocError!?[]const u8 {
+ pub fn allocNextIntoArrayListMax(self: *@This(), value_list: *std.array_list.Managed(u8), when: AllocWhen, max_value_len: usize) Reader.AllocError!?[]const u8 {
while (true) {
return self.scanner.allocNextIntoArrayListMax(value_list, when, max_value_len) catch |err| switch (err) {
error.BufferUnderrun => {
@@ -1746,7 +1745,7 @@ pub const Reader = struct {
const OBJECT_MODE = 0;
const ARRAY_MODE = 1;
-fn appendSlice(list: *std.ArrayList(u8), buf: []const u8, max_value_len: usize) !void {
+fn appendSlice(list: *std.array_list.Managed(u8), buf: []const u8, max_value_len: usize) !void {
const new_len = std.math.add(usize, list.items.len, buf.len) catch return error.ValueTooLong;
if (new_len > max_value_len) return error.ValueTooLong;
try list.appendSlice(buf);
diff --git a/lib/std/json/dynamic.zig b/lib/std/json/dynamic.zig
index b47e7e1067bb..8aacf42865ca 100644
--- a/lib/std/json/dynamic.zig
+++ b/lib/std/json/dynamic.zig
@@ -1,7 +1,6 @@
const std = @import("std");
const debug = std.debug;
const ArenaAllocator = std.heap.ArenaAllocator;
-const ArrayList = std.ArrayList;
const StringArrayHashMap = std.StringArrayHashMap;
const Allocator = std.mem.Allocator;
const json = std.json;
@@ -12,7 +11,7 @@ const ParseError = @import("./static.zig").ParseError;
const isNumberFormattedLikeAnInteger = @import("Scanner.zig").isNumberFormattedLikeAnInteger;
pub const ObjectMap = StringArrayHashMap(Value);
-pub const Array = ArrayList(Value);
+pub const Array = std.array_list.Managed(Value);
/// Represents any JSON value, potentially containing other JSON values.
/// A .float value may be an approximation of the original value.
diff --git a/lib/std/json/static.zig b/lib/std/json/static.zig
index 44469adf4c60..540f5338f9e6 100644
--- a/lib/std/json/static.zig
+++ b/lib/std/json/static.zig
@@ -2,7 +2,7 @@ const std = @import("std");
const assert = std.debug.assert;
const Allocator = std.mem.Allocator;
const ArenaAllocator = std.heap.ArenaAllocator;
-const ArrayList = std.ArrayList;
+const ArrayList = std.array_list.Managed;
const Scanner = @import("Scanner.zig");
const Token = Scanner.Token;
diff --git a/lib/std/math/big/int.zig b/lib/std/math/big/int.zig
index 685dbead52f3..b0380444f4dc 100644
--- a/lib/std/math/big/int.zig
+++ b/lib/std/math/big/int.zig
@@ -1412,7 +1412,7 @@ pub const Mutable = struct {
///
/// `limbs_buffer` is used for temporary storage during the operation. When this function returns,
/// it will have the same length as it had when the function was called.
- pub fn gcd(rma: *Mutable, x: Const, y: Const, limbs_buffer: *std.ArrayList(Limb)) !void {
+ pub fn gcd(rma: *Mutable, x: Const, y: Const, limbs_buffer: *std.array_list.Managed(Limb)) !void {
const prev_len = limbs_buffer.items.len;
defer limbs_buffer.shrinkRetainingCapacity(prev_len);
const x_copy = if (rma.limbs.ptr == x.limbs.ptr) blk: {
@@ -1538,13 +1538,13 @@ pub const Mutable = struct {
/// Asserts that `rma` has enough limbs to store the result. Upper bound is given by `calcGcdNoAliasLimbLen`.
///
/// `limbs_buffer` is used for temporary storage during the operation.
- pub fn gcdNoAlias(rma: *Mutable, x: Const, y: Const, limbs_buffer: *std.ArrayList(Limb)) !void {
+ pub fn gcdNoAlias(rma: *Mutable, x: Const, y: Const, limbs_buffer: *std.array_list.Managed(Limb)) !void {
assert(rma.limbs.ptr != x.limbs.ptr); // illegal aliasing
assert(rma.limbs.ptr != y.limbs.ptr); // illegal aliasing
return gcdLehmer(rma, x, y, limbs_buffer);
}
- fn gcdLehmer(result: *Mutable, xa: Const, ya: Const, limbs_buffer: *std.ArrayList(Limb)) !void {
+ fn gcdLehmer(result: *Mutable, xa: Const, ya: Const, limbs_buffer: *std.array_list.Managed(Limb)) !void {
var x = try xa.toManaged(limbs_buffer.allocator);
defer x.deinit();
x.abs();
@@ -3267,7 +3267,7 @@ pub const Managed = struct {
pub fn gcd(rma: *Managed, x: *const Managed, y: *const Managed) !void {
try rma.ensureCapacity(@min(x.len(), y.len()));
var m = rma.toMutable();
- var limbs_buffer = std.ArrayList(Limb).init(rma.allocator);
+ var limbs_buffer = std.array_list.Managed(Limb).init(rma.allocator);
defer limbs_buffer.deinit();
try m.gcd(x.toConst(), y.toConst(), &limbs_buffer);
rma.setMetadata(m.positive, m.len);
diff --git a/lib/std/priority_dequeue.zig b/lib/std/priority_dequeue.zig
index 520288be7864..e2a01696e595 100644
--- a/lib/std/priority_dequeue.zig
+++ b/lib/std/priority_dequeue.zig
@@ -964,7 +964,7 @@ fn fuzzTestMinMax(rng: std.Random, queue_size: usize) !void {
}
fn generateRandomSlice(allocator: std.mem.Allocator, rng: std.Random, size: usize) ![]u32 {
- var array = std.ArrayList(u32).init(allocator);
+ var array = std.array_list.Managed(u32).init(allocator);
try array.ensureTotalCapacity(size);
var i: usize = 0;
diff --git a/lib/std/process.zig b/lib/std/process.zig
index 58d16eef1db5..2e9cb1fe85a8 100644
--- a/lib/std/process.zig
+++ b/lib/std/process.zig
@@ -1241,10 +1241,10 @@ pub fn argsAlloc(allocator: Allocator) ![][:0]u8 {
var it = try argsWithAllocator(allocator);
defer it.deinit();
- var contents = std.ArrayList(u8).init(allocator);
+ var contents = std.array_list.Managed(u8).init(allocator);
defer contents.deinit();
- var slice_list = std.ArrayList(usize).init(allocator);
+ var slice_list = std.array_list.Managed(usize).init(allocator);
defer slice_list.deinit();
while (it.next()) |arg| {
diff --git a/lib/std/process/Child.zig b/lib/std/process/Child.zig
index ce228176f4fa..e286a4ce5499 100644
--- a/lib/std/process/Child.zig
+++ b/lib/std/process/Child.zig
@@ -14,7 +14,7 @@ const assert = std.debug.assert;
const native_os = builtin.os.tag;
const Allocator = std.mem.Allocator;
const ChildProcess = @This();
-const ArrayList = std.ArrayListUnmanaged;
+const ArrayList = std.ArrayList;
pub const Id = switch (native_os) {
.windows => windows.HANDLE,
@@ -1545,7 +1545,7 @@ fn argvToCommandLineWindows(
allocator: mem.Allocator,
argv: []const []const u8,
) ArgvToCommandLineError![:0]u16 {
- var buf = std.ArrayList(u8).init(allocator);
+ var buf = std.array_list.Managed(u8).init(allocator);
defer buf.deinit();
if (argv.len != 0) {
@@ -1725,7 +1725,7 @@ fn argvToScriptCommandLineWindows(
/// Arguments, not including the script name itself. Expected to be encoded as WTF-8.
script_args: []const []const u8,
) ArgvToScriptCommandLineError![:0]u16 {
- var buf = try std.ArrayList(u8).initCapacity(allocator, 64);
+ var buf = try std.array_list.Managed(u8).initCapacity(allocator, 64);
defer buf.deinit();
// `/d` disables execution of AutoRun commands.
diff --git a/lib/std/std.zig b/lib/std/std.zig
index 5cca56262a45..d9383a2dd3cf 100644
--- a/lib/std/std.zig
+++ b/lib/std/std.zig
@@ -1,9 +1,5 @@
pub const ArrayHashMap = array_hash_map.ArrayHashMap;
pub const ArrayHashMapUnmanaged = array_hash_map.ArrayHashMapUnmanaged;
-pub const ArrayList = @import("array_list.zig").ArrayList;
-pub const ArrayListAligned = @import("array_list.zig").ArrayListAligned;
-pub const ArrayListAlignedUnmanaged = @import("array_list.zig").ArrayListAlignedUnmanaged;
-pub const ArrayListUnmanaged = @import("array_list.zig").ArrayListUnmanaged;
pub const AutoArrayHashMap = array_hash_map.AutoArrayHashMap;
pub const AutoArrayHashMapUnmanaged = array_hash_map.AutoArrayHashMapUnmanaged;
pub const AutoHashMap = hash_map.AutoHashMap;
@@ -43,6 +39,24 @@ pub const Treap = @import("treap.zig").Treap;
pub const Tz = tz.Tz;
pub const Uri = @import("Uri.zig");
+/// A contiguous, growable list of items in memory. This is a wrapper around a
+/// slice of `T` values.
+///
+/// The same allocator must be used throughout its entire lifetime. Initialize
+/// directly with `empty` or `initCapacity`, and deinitialize with `deinit` or
+/// `toOwnedSlice`.
+pub fn ArrayList(comptime T: type) type {
+ return array_list.Aligned(T, null);
+}
+pub const array_list = @import("array_list.zig");
+
+/// Deprecated; use `array_list.Aligned`.
+pub const ArrayListAligned = array_list.Aligned;
+/// Deprecated; use `array_list.Aligned`.
+pub const ArrayListAlignedUnmanaged = array_list.Aligned;
+/// Deprecated; use `ArrayList`.
+pub const ArrayListUnmanaged = ArrayList;
+
pub const array_hash_map = @import("array_hash_map.zig");
pub const atomic = @import("atomic.zig");
pub const base64 = @import("base64.zig");
diff --git a/lib/std/treap.zig b/lib/std/treap.zig
index 2508306f3358..36201e8a5879 100644
--- a/lib/std/treap.zig
+++ b/lib/std/treap.zig
@@ -641,7 +641,7 @@ test "node.{prev(),next()} with random data" {
var treap = TestTreap{};
// A slow, stupid but correct reference. Ordered.
- var golden = std.ArrayList(u64).init(std.testing.allocator);
+ var golden = std.array_list.Managed(u64).init(std.testing.allocator);
defer golden.deinit();
// Insert.
diff --git a/lib/std/unicode.zig b/lib/std/unicode.zig
index 15b57b4f29f6..0f849fb8b1d3 100644
--- a/lib/std/unicode.zig
+++ b/lib/std/unicode.zig
@@ -916,7 +916,7 @@ test fmtUtf8 {
}
fn utf16LeToUtf8ArrayListImpl(
- result: *std.ArrayList(u8),
+ result: *std.array_list.Managed(u8),
utf16le: []const u16,
comptime surrogates: Surrogates,
) (switch (surrogates) {
@@ -967,7 +967,7 @@ fn utf16LeToUtf8ArrayListImpl(
pub const Utf16LeToUtf8AllocError = mem.Allocator.Error || Utf16LeToUtf8Error;
-pub fn utf16LeToUtf8ArrayList(result: *std.ArrayList(u8), utf16le: []const u16) Utf16LeToUtf8AllocError!void {
+pub fn utf16LeToUtf8ArrayList(result: *std.array_list.Managed(u8), utf16le: []const u16) Utf16LeToUtf8AllocError!void {
try result.ensureUnusedCapacity(utf16le.len);
return utf16LeToUtf8ArrayListImpl(result, utf16le, .cannot_encode_surrogate_half);
}
@@ -975,7 +975,7 @@ pub fn utf16LeToUtf8ArrayList(result: *std.ArrayList(u8), utf16le: []const u16)
/// Caller must free returned memory.
pub fn utf16LeToUtf8Alloc(allocator: mem.Allocator, utf16le: []const u16) Utf16LeToUtf8AllocError![]u8 {
// optimistically guess that it will all be ascii.
- var result = try std.ArrayList(u8).initCapacity(allocator, utf16le.len);
+ var result = try std.array_list.Managed(u8).initCapacity(allocator, utf16le.len);
errdefer result.deinit();
try utf16LeToUtf8ArrayListImpl(&result, utf16le, .cannot_encode_surrogate_half);
@@ -985,7 +985,7 @@ pub fn utf16LeToUtf8Alloc(allocator: mem.Allocator, utf16le: []const u16) Utf16L
/// Caller must free returned memory.
pub fn utf16LeToUtf8AllocZ(allocator: mem.Allocator, utf16le: []const u16) Utf16LeToUtf8AllocError![:0]u8 {
// optimistically guess that it will all be ascii (and allocate space for the null terminator)
- var result = try std.ArrayList(u8).initCapacity(allocator, utf16le.len + 1);
+ var result = try std.array_list.Managed(u8).initCapacity(allocator, utf16le.len + 1);
errdefer result.deinit();
try utf16LeToUtf8ArrayListImpl(&result, utf16le, .cannot_encode_surrogate_half);
@@ -1117,7 +1117,7 @@ test utf16LeToUtf8 {
}
}
-fn utf8ToUtf16LeArrayListImpl(result: *std.ArrayList(u16), utf8: []const u8, comptime surrogates: Surrogates) !void {
+fn utf8ToUtf16LeArrayListImpl(result: *std.array_list.Managed(u16), utf8: []const u8, comptime surrogates: Surrogates) !void {
assert(result.unusedCapacitySlice().len >= utf8.len);
var remaining = utf8;
@@ -1155,14 +1155,14 @@ fn utf8ToUtf16LeArrayListImpl(result: *std.ArrayList(u16), utf8: []const u8, com
}
}
-pub fn utf8ToUtf16LeArrayList(result: *std.ArrayList(u16), utf8: []const u8) error{ InvalidUtf8, OutOfMemory }!void {
+pub fn utf8ToUtf16LeArrayList(result: *std.array_list.Managed(u16), utf8: []const u8) error{ InvalidUtf8, OutOfMemory }!void {
try result.ensureUnusedCapacity(utf8.len);
return utf8ToUtf16LeArrayListImpl(result, utf8, .cannot_encode_surrogate_half);
}
pub fn utf8ToUtf16LeAlloc(allocator: mem.Allocator, utf8: []const u8) error{ InvalidUtf8, OutOfMemory }![]u16 {
// optimistically guess that it will not require surrogate pairs
- var result = try std.ArrayList(u16).initCapacity(allocator, utf8.len);
+ var result = try std.array_list.Managed(u16).initCapacity(allocator, utf8.len);
errdefer result.deinit();
try utf8ToUtf16LeArrayListImpl(&result, utf8, .cannot_encode_surrogate_half);
@@ -1171,7 +1171,7 @@ pub fn utf8ToUtf16LeAlloc(allocator: mem.Allocator, utf8: []const u8) error{ Inv
pub fn utf8ToUtf16LeAllocZ(allocator: mem.Allocator, utf8: []const u8) error{ InvalidUtf8, OutOfMemory }![:0]u16 {
// optimistically guess that it will not require surrogate pairs
- var result = try std.ArrayList(u16).initCapacity(allocator, utf8.len + 1);
+ var result = try std.array_list.Managed(u16).initCapacity(allocator, utf8.len + 1);
errdefer result.deinit();
try utf8ToUtf16LeArrayListImpl(&result, utf8, .cannot_encode_surrogate_half);
@@ -1258,19 +1258,19 @@ test utf8ToUtf16Le {
test utf8ToUtf16LeArrayList {
{
- var list = std.ArrayList(u16).init(testing.allocator);
+ var list = std.array_list.Managed(u16).init(testing.allocator);
defer list.deinit();
try utf8ToUtf16LeArrayList(&list, "𐐷");
try testing.expectEqualSlices(u8, "\x01\xd8\x37\xdc", mem.sliceAsBytes(list.items));
}
{
- var list = std.ArrayList(u16).init(testing.allocator);
+ var list = std.array_list.Managed(u16).init(testing.allocator);
defer list.deinit();
try utf8ToUtf16LeArrayList(&list, "\u{10FFFF}");
try testing.expectEqualSlices(u8, "\xff\xdb\xff\xdf", mem.sliceAsBytes(list.items));
}
{
- var list = std.ArrayList(u16).init(testing.allocator);
+ var list = std.array_list.Managed(u16).init(testing.allocator);
defer list.deinit();
const result = utf8ToUtf16LeArrayList(&list, "\xf4\x90\x80\x80");
try testing.expectError(error.InvalidUtf8, result);
@@ -1331,7 +1331,7 @@ test utf8ToUtf16LeAllocZ {
test "ArrayList functions on a re-used list" {
// utf8ToUtf16LeArrayList
{
- var list = std.ArrayList(u16).init(testing.allocator);
+ var list = std.array_list.Managed(u16).init(testing.allocator);
defer list.deinit();
const init_slice = utf8ToUtf16LeStringLiteral("abcdefg");
@@ -1345,7 +1345,7 @@ test "ArrayList functions on a re-used list" {
// utf16LeToUtf8ArrayList
{
- var list = std.ArrayList(u8).init(testing.allocator);
+ var list = std.array_list.Managed(u8).init(testing.allocator);
defer list.deinit();
const init_slice = "abcdefg";
@@ -1359,7 +1359,7 @@ test "ArrayList functions on a re-used list" {
// wtf8ToWtf16LeArrayList
{
- var list = std.ArrayList(u16).init(testing.allocator);
+ var list = std.array_list.Managed(u16).init(testing.allocator);
defer list.deinit();
const init_slice = utf8ToUtf16LeStringLiteral("abcdefg");
@@ -1373,7 +1373,7 @@ test "ArrayList functions on a re-used list" {
// wtf16LeToWtf8ArrayList
{
- var list = std.ArrayList(u8).init(testing.allocator);
+ var list = std.array_list.Managed(u8).init(testing.allocator);
defer list.deinit();
const init_slice = "abcdefg";
@@ -1750,7 +1750,7 @@ pub const Wtf8Iterator = struct {
}
};
-pub fn wtf16LeToWtf8ArrayList(result: *std.ArrayList(u8), utf16le: []const u16) mem.Allocator.Error!void {
+pub fn wtf16LeToWtf8ArrayList(result: *std.array_list.Managed(u8), utf16le: []const u16) mem.Allocator.Error!void {
try result.ensureUnusedCapacity(utf16le.len);
return utf16LeToUtf8ArrayListImpl(result, utf16le, .can_encode_surrogate_half);
}
@@ -1758,7 +1758,7 @@ pub fn wtf16LeToWtf8ArrayList(result: *std.ArrayList(u8), utf16le: []const u16)
/// Caller must free returned memory.
pub fn wtf16LeToWtf8Alloc(allocator: mem.Allocator, wtf16le: []const u16) mem.Allocator.Error![]u8 {
// optimistically guess that it will all be ascii.
- var result = try std.ArrayList(u8).initCapacity(allocator, wtf16le.len);
+ var result = try std.array_list.Managed(u8).initCapacity(allocator, wtf16le.len);
errdefer result.deinit();
try utf16LeToUtf8ArrayListImpl(&result, wtf16le, .can_encode_surrogate_half);
@@ -1768,7 +1768,7 @@ pub fn wtf16LeToWtf8Alloc(allocator: mem.Allocator, wtf16le: []const u16) mem.Al
/// Caller must free returned memory.
pub fn wtf16LeToWtf8AllocZ(allocator: mem.Allocator, wtf16le: []const u16) mem.Allocator.Error![:0]u8 {
// optimistically guess that it will all be ascii (and allocate space for the null terminator)
- var result = try std.ArrayList(u8).initCapacity(allocator, wtf16le.len + 1);
+ var result = try std.array_list.Managed(u8).initCapacity(allocator, wtf16le.len + 1);
errdefer result.deinit();
try utf16LeToUtf8ArrayListImpl(&result, wtf16le, .can_encode_surrogate_half);
@@ -1779,14 +1779,14 @@ pub fn wtf16LeToWtf8(wtf8: []u8, wtf16le: []const u16) usize {
return utf16LeToUtf8Impl(wtf8, wtf16le, .can_encode_surrogate_half) catch |err| switch (err) {};
}
-pub fn wtf8ToWtf16LeArrayList(result: *std.ArrayList(u16), wtf8: []const u8) error{ InvalidWtf8, OutOfMemory }!void {
+pub fn wtf8ToWtf16LeArrayList(result: *std.array_list.Managed(u16), wtf8: []const u8) error{ InvalidWtf8, OutOfMemory }!void {
try result.ensureUnusedCapacity(wtf8.len);
return utf8ToUtf16LeArrayListImpl(result, wtf8, .can_encode_surrogate_half);
}
pub fn wtf8ToWtf16LeAlloc(allocator: mem.Allocator, wtf8: []const u8) error{ InvalidWtf8, OutOfMemory }![]u16 {
// optimistically guess that it will not require surrogate pairs
- var result = try std.ArrayList(u16).initCapacity(allocator, wtf8.len);
+ var result = try std.array_list.Managed(u16).initCapacity(allocator, wtf8.len);
errdefer result.deinit();
try utf8ToUtf16LeArrayListImpl(&result, wtf8, .can_encode_surrogate_half);
@@ -1795,7 +1795,7 @@ pub fn wtf8ToWtf16LeAlloc(allocator: mem.Allocator, wtf8: []const u8) error{ Inv
pub fn wtf8ToWtf16LeAllocZ(allocator: mem.Allocator, wtf8: []const u8) error{ InvalidWtf8, OutOfMemory }![:0]u16 {
// optimistically guess that it will not require surrogate pairs
- var result = try std.ArrayList(u16).initCapacity(allocator, wtf8.len + 1);
+ var result = try std.array_list.Managed(u16).initCapacity(allocator, wtf8.len + 1);
errdefer result.deinit();
try utf8ToUtf16LeArrayListImpl(&result, wtf8, .can_encode_surrogate_half);
diff --git a/lib/std/zig.zig b/lib/std/zig.zig
index a692a63795a7..cb4be0de64ca 100644
--- a/lib/std/zig.zig
+++ b/lib/std/zig.zig
@@ -349,7 +349,7 @@ pub const LtoMode = enum { none, full, thin };
/// Renders a `std.Target.Cpu` value into a textual representation that can be parsed
/// via the `-mcpu` flag passed to the Zig compiler.
/// Appends the result to `buffer`.
-pub fn serializeCpu(buffer: *std.ArrayList(u8), cpu: std.Target.Cpu) Allocator.Error!void {
+pub fn serializeCpu(buffer: *std.array_list.Managed(u8), cpu: std.Target.Cpu) Allocator.Error!void {
const all_features = cpu.arch.allFeaturesList();
var populated_cpu_features = cpu.model.features;
populated_cpu_features.populateDependencies(all_features);
@@ -377,7 +377,7 @@ pub fn serializeCpu(buffer: *std.ArrayList(u8), cpu: std.Target.Cpu) Allocator.E
}
pub fn serializeCpuAlloc(ally: Allocator, cpu: std.Target.Cpu) Allocator.Error![]u8 {
- var buffer = std.ArrayList(u8).init(ally);
+ var buffer = std.array_list.Managed(u8).init(ally);
try serializeCpu(&buffer, cpu);
return buffer.toOwnedSlice();
}
@@ -633,7 +633,7 @@ pub fn parseTargetQueryOrReportFatalError(
return std.Target.Query.parse(opts_with_diags) catch |err| switch (err) {
error.UnknownCpuModel => {
help: {
- var help_text = std.ArrayList(u8).init(allocator);
+ var help_text = std.array_list.Managed(u8).init(allocator);
defer help_text.deinit();
for (diags.arch.?.allCpuModels()) |cpu| {
help_text.print(" {s}\n", .{cpu.name}) catch break :help;
@@ -646,7 +646,7 @@ pub fn parseTargetQueryOrReportFatalError(
},
error.UnknownCpuFeature => {
help: {
- var help_text = std.ArrayList(u8).init(allocator);
+ var help_text = std.array_list.Managed(u8).init(allocator);
defer help_text.deinit();
for (diags.arch.?.allFeaturesList()) |feature| {
help_text.print(" {s}: {s}\n", .{ feature.name, feature.description }) catch break :help;
@@ -659,7 +659,7 @@ pub fn parseTargetQueryOrReportFatalError(
},
error.UnknownObjectFormat => {
help: {
- var help_text = std.ArrayList(u8).init(allocator);
+ var help_text = std.array_list.Managed(u8).init(allocator);
defer help_text.deinit();
inline for (@typeInfo(std.Target.ObjectFormat).@"enum".fields) |field| {
help_text.print(" {s}\n", .{field.name}) catch break :help;
@@ -670,7 +670,7 @@ pub fn parseTargetQueryOrReportFatalError(
},
error.UnknownArchitecture => {
help: {
- var help_text = std.ArrayList(u8).init(allocator);
+ var help_text = std.array_list.Managed(u8).init(allocator);
defer help_text.deinit();
inline for (@typeInfo(std.Target.Cpu.Arch).@"enum".fields) |field| {
help_text.print(" {s}\n", .{field.name}) catch break :help;
diff --git a/lib/std/zig/Ast/Render.zig b/lib/std/zig/Ast/Render.zig
index a33ec740a1cf..e2bea4d098d1 100644
--- a/lib/std/zig/Ast/Render.zig
+++ b/lib/std/zig/Ast/Render.zig
@@ -3456,8 +3456,8 @@ const AutoIndentingStream = struct {
indent_count: usize = 0,
indent_delta: usize,
- indent_stack: std.ArrayList(StackElem),
- space_stack: std.ArrayList(SpaceElem),
+ indent_stack: std.array_list.Managed(StackElem),
+ space_stack: std.array_list.Managed(SpaceElem),
space_mode: ?usize = null,
disable_indent_committing: usize = 0,
current_line_empty: bool = true,
diff --git a/lib/std/zig/AstGen.zig b/lib/std/zig/AstGen.zig
index ab81f343bdf1..59155af91f07 100644
--- a/lib/std/zig/AstGen.zig
+++ b/lib/std/zig/AstGen.zig
@@ -1784,7 +1784,7 @@ fn structInitExpr(
while (it.next()) |entry| {
const record = entry.value_ptr.*;
if (record.items.len > 1) {
- var error_notes = std.ArrayList(u32).init(astgen.arena);
+ var error_notes = std.array_list.Managed(u32).init(astgen.arena);
for (record.items[1..]) |duplicate| {
try error_notes.append(try astgen.errNoteTok(duplicate, "duplicate name here", .{}));
diff --git a/lib/std/zig/LibCDirs.zig b/lib/std/zig/LibCDirs.zig
index 8f19aa345876..689a535e30a5 100644
--- a/lib/std/zig/LibCDirs.zig
+++ b/lib/std/zig/LibCDirs.zig
@@ -89,8 +89,8 @@ pub fn detect(
}
fn detectFromInstallation(arena: Allocator, target: *const std.Target, lci: *const LibCInstallation) !LibCDirs {
- var list = try std.ArrayList([]const u8).initCapacity(arena, 5);
- var framework_list = std.ArrayList([]const u8).init(arena);
+ var list = try std.array_list.Managed([]const u8).initCapacity(arena, 5);
+ var framework_list = std.array_list.Managed([]const u8).init(arena);
list.appendAssumeCapacity(lci.include_dir.?);
diff --git a/lib/std/zig/LibCInstallation.zig b/lib/std/zig/LibCInstallation.zig
index 010239b07692..7f6b89ddfc4e 100644
--- a/lib/std/zig/LibCInstallation.zig
+++ b/lib/std/zig/LibCInstallation.zig
@@ -250,7 +250,7 @@ fn findNativeIncludeDirPosix(self: *LibCInstallation, args: FindNativeOptions) F
const dev_null = if (is_windows) "nul" else "/dev/null";
- var argv = std.ArrayList([]const u8).init(allocator);
+ var argv = std.array_list.Managed([]const u8).init(allocator);
defer argv.deinit();
try appendCcExe(&argv, skip_cc_env_var);
@@ -294,7 +294,7 @@ fn findNativeIncludeDirPosix(self: *LibCInstallation, args: FindNativeOptions) F
}
var it = std.mem.tokenizeAny(u8, run_res.stderr, "\n\r");
- var search_paths = std.ArrayList([]const u8).init(allocator);
+ var search_paths = std.array_list.Managed([]const u8).init(allocator);
defer search_paths.deinit();
while (it.next()) |line| {
if (line.len != 0 and line[0] == ' ') {
@@ -365,7 +365,7 @@ fn findNativeIncludeDirWindows(
var install_buf: [2]std.zig.WindowsSdk.Installation = undefined;
const installs = fillInstallations(&install_buf, sdk);
- var result_buf = std.ArrayList(u8).init(allocator);
+ var result_buf = std.array_list.Managed(u8).init(allocator);
defer result_buf.deinit();
for (installs) |install| {
@@ -404,7 +404,7 @@ fn findNativeCrtDirWindows(
var install_buf: [2]std.zig.WindowsSdk.Installation = undefined;
const installs = fillInstallations(&install_buf, sdk);
- var result_buf = std.ArrayList(u8).init(allocator);
+ var result_buf = std.array_list.Managed(u8).init(allocator);
defer result_buf.deinit();
const arch_sub_dir = switch (args.target.cpu.arch) {
@@ -471,7 +471,7 @@ fn findNativeKernel32LibDir(
var install_buf: [2]std.zig.WindowsSdk.Installation = undefined;
const installs = fillInstallations(&install_buf, sdk);
- var result_buf = std.ArrayList(u8).init(allocator);
+ var result_buf = std.array_list.Managed(u8).init(allocator);
defer result_buf.deinit();
const arch_sub_dir = switch (args.target.cpu.arch) {
@@ -578,7 +578,7 @@ fn ccPrintFileName(args: CCPrintFileNameOptions) ![:0]u8 {
break :blk false;
};
- var argv = std.ArrayList([]const u8).init(allocator);
+ var argv = std.array_list.Managed([]const u8).init(allocator);
defer argv.deinit();
const arg1 = try std.fmt.allocPrint(allocator, "-print-file-name={s}", .{args.search_basename});
@@ -671,7 +671,7 @@ fn fillInstallations(
const inf_loop_env_key = "ZIG_IS_DETECTING_LIBC_PATHS";
-fn appendCcExe(args: *std.ArrayList([]const u8), skip_cc_env_var: bool) !void {
+fn appendCcExe(args: *std.array_list.Managed([]const u8), skip_cc_env_var: bool) !void {
const default_cc_exe = if (is_windows) "cc.exe" else "cc";
try args.ensureUnusedCapacity(1);
if (skip_cc_env_var) {
diff --git a/lib/std/zig/WindowsSdk.zig b/lib/std/zig/WindowsSdk.zig
index 61e1defb1290..eb0c5a610ee4 100644
--- a/lib/std/zig/WindowsSdk.zig
+++ b/lib/std/zig/WindowsSdk.zig
@@ -92,8 +92,8 @@ fn iterateAndFilterByVersion(
std.mem.order(u8, lhs.build, rhs.build);
}
};
- var versions = std.ArrayList(Version).init(allocator);
- var dirs = std.ArrayList([]const u8).init(allocator);
+ var versions = std.array_list.Managed(Version).init(allocator);
+ var dirs = std.array_list.Managed([]const u8).init(allocator);
defer {
versions.deinit();
for (dirs.items) |filtered_dir| allocator.free(filtered_dir);
@@ -450,7 +450,7 @@ pub const Installation = struct {
return error.PathTooLong;
}
- var path = std.ArrayList(u8).fromOwnedSlice(allocator, path_maybe_with_trailing_slash);
+ var path = std.array_list.Managed(u8).fromOwnedSlice(allocator, path_maybe_with_trailing_slash);
errdefer path.deinit();
// String might contain trailing slash, so trim it here
@@ -522,7 +522,7 @@ pub const Installation = struct {
return error.PathTooLong;
}
- var path = std.ArrayList(u8).fromOwnedSlice(allocator, path_maybe_with_trailing_slash);
+ var path = std.array_list.Managed(u8).fromOwnedSlice(allocator, path_maybe_with_trailing_slash);
errdefer path.deinit();
// String might contain trailing slash, so trim it here
@@ -548,7 +548,7 @@ pub const Installation = struct {
return error.VersionTooLong;
}
- var version = std.ArrayList(u8).fromOwnedSlice(allocator, version_without_0);
+ var version = std.array_list.Managed(u8).fromOwnedSlice(allocator, version_without_0);
errdefer version.deinit();
try version.appendSlice(".0");
@@ -802,7 +802,7 @@ const MsvcLibDir = struct {
}
fn libDirFromInstallationPath(allocator: std.mem.Allocator, installation_path: []const u8, arch: std.Target.Cpu.Arch) error{ OutOfMemory, PathNotFound }![]const u8 {
- var lib_dir_buf = try std.ArrayList(u8).initCapacity(allocator, installation_path.len + 64);
+ var lib_dir_buf = try std.array_list.Managed(u8).initCapacity(allocator, installation_path.len + 64);
errdefer lib_dir_buf.deinit();
lib_dir_buf.appendSliceAssumeCapacity(installation_path);
@@ -897,7 +897,7 @@ const MsvcLibDir = struct {
return error.PathNotFound;
}
- var msvc_dir = std.ArrayList(u8).fromOwnedSlice(allocator, msvc_include_dir_maybe_with_trailing_slash);
+ var msvc_dir = std.array_list.Managed(u8).fromOwnedSlice(allocator, msvc_include_dir_maybe_with_trailing_slash);
errdefer msvc_dir.deinit();
// String might contain trailing slash, so trim it here
@@ -929,7 +929,7 @@ const MsvcLibDir = struct {
}
fn findViaVs7Key(allocator: std.mem.Allocator, arch: std.Target.Cpu.Arch) error{ OutOfMemory, PathNotFound }![]const u8 {
- var base_path: std.ArrayList(u8) = base_path: {
+ var base_path: std.array_list.Managed(u8) = base_path: {
try_env: {
var env_map = std.process.getEnvMap(allocator) catch |err| switch (err) {
error.OutOfMemory => return error.OutOfMemory,
@@ -940,7 +940,7 @@ const MsvcLibDir = struct {
if (env_map.get("VS140COMNTOOLS")) |VS140COMNTOOLS| {
if (VS140COMNTOOLS.len < "C:\\Common7\\Tools".len) break :try_env;
if (!std.fs.path.isAbsolute(VS140COMNTOOLS)) break :try_env;
- var list = std.ArrayList(u8).init(allocator);
+ var list = std.array_list.Managed(u8).init(allocator);
errdefer list.deinit();
try list.appendSlice(VS140COMNTOOLS); // C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools
@@ -964,7 +964,7 @@ const MsvcLibDir = struct {
break :try_vs7_key;
}
- var path = std.ArrayList(u8).fromOwnedSlice(allocator, path_maybe_with_trailing_slash);
+ var path = std.array_list.Managed(u8).fromOwnedSlice(allocator, path_maybe_with_trailing_slash);
errdefer path.deinit();
// String might contain trailing slash, so trim it here
diff --git a/lib/std/zig/llvm/BitcodeReader.zig b/lib/std/zig/llvm/BitcodeReader.zig
index f691f12a8c9c..e0d1632527ca 100644
--- a/lib/std/zig/llvm/BitcodeReader.zig
+++ b/lib/std/zig/llvm/BitcodeReader.zig
@@ -60,7 +60,7 @@ pub const Record = struct {
blob: []const u8,
fn toOwnedAbbrev(record: Record, allocator: std.mem.Allocator) !Abbrev {
- var operands = std.ArrayList(Abbrev.Operand).init(allocator);
+ var operands = std.array_list.Managed(Abbrev.Operand).init(allocator);
defer operands.deinit();
assert(record.id == Abbrev.Builtin.define_abbrev.toRecordId());
@@ -194,8 +194,8 @@ fn nextRecord(bc: *BitcodeReader) !?Record {
defer bc.record_arena = record_arena.state;
_ = record_arena.reset(.retain_capacity);
- var operands = try std.ArrayList(u64).initCapacity(record_arena.allocator(), abbrev.operands.len);
- var blob = std.ArrayList(u8).init(record_arena.allocator());
+ var operands = try std.array_list.Managed(u64).initCapacity(record_arena.allocator(), abbrev.operands.len);
+ var blob = std.array_list.Managed(u8).init(record_arena.allocator());
for (abbrev.operands, 0..) |abbrev_operand, abbrev_operand_i| switch (abbrev_operand) {
.literal => |value| operands.appendAssumeCapacity(value),
.encoding => |abbrev_encoding| switch (abbrev_encoding) {
diff --git a/lib/std/zig/llvm/Builder.zig b/lib/std/zig/llvm/Builder.zig
index ba6faaec2c98..61c4d1b44e3a 100644
--- a/lib/std/zig/llvm/Builder.zig
+++ b/lib/std/zig/llvm/Builder.zig
@@ -9107,7 +9107,7 @@ pub fn getIntrinsic(
var attributes: struct {
builder: *Builder,
- list: std.ArrayList(Attribute.Index),
+ list: std.array_list.Managed(Attribute.Index),
fn deinit(state: *@This()) void {
state.list.deinit();
@@ -9120,7 +9120,7 @@ pub fn getIntrinsic(
item.* = try state.builder.attr(attribute);
return state.builder.attrs(state.list.items);
}
- } = .{ .builder = self, .list = std.ArrayList(Attribute.Index).init(allocator) };
+ } = .{ .builder = self, .list = std.array_list.Managed(Attribute.Index).init(allocator) };
defer attributes.deinit();
var overload_index: usize = 0;
diff --git a/lib/std/zig/llvm/bitcode_writer.zig b/lib/std/zig/llvm/bitcode_writer.zig
index 0b8c12858bfd..35bd8800850c 100644
--- a/lib/std/zig/llvm/bitcode_writer.zig
+++ b/lib/std/zig/llvm/bitcode_writer.zig
@@ -19,7 +19,7 @@ pub fn BitcodeWriter(comptime types: []const type) type {
return struct {
const BcWriter = @This();
- buffer: std.ArrayList(u32),
+ buffer: std.array_list.Managed(u32),
bit_buffer: u32 = 0,
bit_count: u5 = 0,
@@ -31,7 +31,7 @@ pub fn BitcodeWriter(comptime types: []const type) type {
pub fn init(allocator: std.mem.Allocator, widths: [types.len]u16) BcWriter {
return .{
- .buffer = std.ArrayList(u32).init(allocator),
+ .buffer = std.array_list.Managed(u32).init(allocator),
.widths = widths,
};
}
diff --git a/src/Builtin.zig b/src/Builtin.zig
index b4e05a608932..7680d495d700 100644
--- a/src/Builtin.zig
+++ b/src/Builtin.zig
@@ -40,12 +40,12 @@ pub fn hash(opts: @This()) [std.Build.Cache.bin_digest_len]u8 {
}
pub fn generate(opts: @This(), allocator: Allocator) Allocator.Error![:0]u8 {
- var buffer = std.ArrayList(u8).init(allocator);
+ var buffer = std.array_list.Managed(u8).init(allocator);
try append(opts, &buffer);
return buffer.toOwnedSliceSentinel(0);
}
-pub fn append(opts: @This(), buffer: *std.ArrayList(u8)) Allocator.Error!void {
+pub fn append(opts: @This(), buffer: *std.array_list.Managed(u8)) Allocator.Error!void {
const target = opts.target;
const arch_family_name = @tagName(target.cpu.arch.family());
const zig_backend = opts.zig_backend;
diff --git a/src/Compilation.zig b/src/Compilation.zig
index 9e7e2dd89ca5..6f76d021a544 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -3644,10 +3644,10 @@ pub fn saveState(comp: *Compilation) !void {
const gpa = comp.gpa;
- var bufs = std.ArrayList([]const u8).init(gpa);
+ var bufs = std.array_list.Managed([]const u8).init(gpa);
defer bufs.deinit();
- var pt_headers = std.ArrayList(Header.PerThread).init(gpa);
+ var pt_headers = std.array_list.Managed(Header.PerThread).init(gpa);
defer pt_headers.deinit();
if (comp.zcu) |zcu| {
@@ -3865,7 +3865,7 @@ pub fn saveState(comp: *Compilation) !void {
try af.finish();
}
-fn addBuf(list: *std.ArrayList([]const u8), buf: []const u8) void {
+fn addBuf(list: *std.array_list.Managed([]const u8), buf: []const u8) void {
if (buf.len == 0) return;
list.appendAssumeCapacity(buf);
}
@@ -5657,7 +5657,7 @@ pub fn cImport(comp: *Compilation, c_src: []const u8, owner_mod: *Package.Module
log.info("C import source: {s}", .{out_h_path});
}
- var argv = std.ArrayList([]const u8).init(comp.gpa);
+ var argv = std.array_list.Managed([]const u8).init(comp.gpa);
defer argv.deinit();
try argv.append(@tagName(comp.config.c_frontend)); // argv[0] is program name, actual args start at [1]
@@ -6113,7 +6113,7 @@ fn updateCObject(comp: *Compilation, c_object: *CObject, c_obj_prog_node: std.Pr
const target = comp.getTarget();
const o_ext = target.ofmt.fileExt(target.cpu.arch);
const digest = if (!comp.disable_c_depfile and try man.hit()) man.final() else blk: {
- var argv = std.ArrayList([]const u8).init(gpa);
+ var argv = std.array_list.Managed([]const u8).init(gpa);
defer argv.deinit();
// In case we are doing passthrough mode, we need to detect -S and -emit-llvm.
@@ -6458,7 +6458,7 @@ fn updateWin32Resource(comp: *Compilation, win32_resource: *Win32Resource, win32
try o_dir.writeFile(.{ .sub_path = rc_basename, .data = input });
- var argv = std.ArrayList([]const u8).init(comp.gpa);
+ var argv = std.array_list.Managed([]const u8).init(comp.gpa);
defer argv.deinit();
try argv.appendSlice(&.{
@@ -6515,7 +6515,7 @@ fn updateWin32Resource(comp: *Compilation, win32_resource: *Win32Resource, win32
// so we need a temporary filename.
const out_res_path = try comp.tmpFilePath(arena, res_filename);
- var argv = std.ArrayList([]const u8).init(comp.gpa);
+ var argv = std.array_list.Managed([]const u8).init(comp.gpa);
defer argv.deinit();
const depfile_filename = try std.fmt.allocPrint(arena, "{s}.d.json", .{rc_basename_noext});
@@ -6698,7 +6698,7 @@ pub fn tmpFilePath(comp: Compilation, ally: Allocator, suffix: []const u8) error
pub fn addTranslateCCArgs(
comp: *Compilation,
arena: Allocator,
- argv: *std.ArrayList([]const u8),
+ argv: *std.array_list.Managed([]const u8),
ext: FileExt,
out_dep_path: ?[]const u8,
owner_mod: *Package.Module,
@@ -6713,7 +6713,7 @@ pub fn addTranslateCCArgs(
pub fn addCCArgs(
comp: *const Compilation,
arena: Allocator,
- argv: *std.ArrayList([]const u8),
+ argv: *std.array_list.Managed([]const u8),
ext: FileExt,
out_dep_path: ?[]const u8,
mod: *Package.Module,
diff --git a/src/Package/Fetch.zig b/src/Package/Fetch.zig
index bcfdc8cb19c6..96b93a1dfac0 100644
--- a/src/Package/Fetch.zig
+++ b/src/Package/Fetch.zig
@@ -173,7 +173,7 @@ pub const JobQueue = struct {
/// Creates the dependencies.zig source code for the build runner to obtain
/// via `@import("@dependencies")`.
- pub fn createDependenciesSource(jq: *JobQueue, buf: *std.ArrayList(u8)) Allocator.Error!void {
+ pub fn createDependenciesSource(jq: *JobQueue, buf: *std.array_list.Managed(u8)) Allocator.Error!void {
const keys = jq.table.keys();
assert(keys.len != 0); // caller should have added the first one
@@ -285,7 +285,7 @@ pub const JobQueue = struct {
try buf.appendSlice("};\n");
}
- pub fn createEmptyDependenciesSource(buf: *std.ArrayList(u8)) Allocator.Error!void {
+ pub fn createEmptyDependenciesSource(buf: *std.array_list.Managed(u8)) Allocator.Error!void {
try buf.appendSlice(
\\pub const packages = struct {};
\\pub const root_deps: []const struct { []const u8, []const u8 } = &.{};
@@ -1474,10 +1474,10 @@ fn computeHash(f: *Fetch, pkg_path: Cache.Path, filter: Filter) RunError!Compute
const root_dir = pkg_path.root_dir.handle;
// Collect all files, recursively, then sort.
- var all_files = std.ArrayList(*HashedFile).init(gpa);
+ var all_files = std.array_list.Managed(*HashedFile).init(gpa);
defer all_files.deinit();
- var deleted_files = std.ArrayList(*DeletedFile).init(gpa);
+ var deleted_files = std.array_list.Managed(*DeletedFile).init(gpa);
defer deleted_files.deinit();
// Track directories which had any files deleted from them so that empty directories
diff --git a/src/Package/Module.zig b/src/Package/Module.zig
index aa680fd5b464..ca5afd217e2f 100644
--- a/src/Package/Module.zig
+++ b/src/Package/Module.zig
@@ -336,8 +336,8 @@ pub fn create(arena: Allocator, options: CreateOptions) !*Package.Module {
if (resolved_target.llvm_cpu_features) |x| break :b x;
if (!options.global.use_llvm) break :b null;
- var buf = std.ArrayList(u8).init(arena);
- var disabled_features = std.ArrayList(u8).init(arena);
+ var buf = std.array_list.Managed(u8).init(arena);
+ var disabled_features = std.array_list.Managed(u8).init(arena);
defer disabled_features.deinit();
// Append disabled features after enabled ones, so that their effects aren't overwritten.
diff --git a/src/RangeSet.zig b/src/RangeSet.zig
index ddf3fbd849f0..ec04078b0d7c 100644
--- a/src/RangeSet.zig
+++ b/src/RangeSet.zig
@@ -10,7 +10,7 @@ const RangeSet = @This();
const LazySrcLoc = Zcu.LazySrcLoc;
zcu: *Zcu,
-ranges: std.ArrayList(Range),
+ranges: std.array_list.Managed(Range),
pub const Range = struct {
first: InternPool.Index,
@@ -21,7 +21,7 @@ pub const Range = struct {
pub fn init(allocator: std.mem.Allocator, zcu: *Zcu) RangeSet {
return .{
.zcu = zcu,
- .ranges = std.ArrayList(Range).init(allocator),
+ .ranges = std.array_list.Managed(Range).init(allocator),
};
}
diff --git a/src/Sema.zig b/src/Sema.zig
index 8680ff0d0512..1c70341486ef 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -63,7 +63,7 @@ func_index: InternPool.Index,
func_is_naked: bool,
/// Used to restore the error return trace when returning a non-error from a function.
error_return_trace_index_on_fn_entry: Air.Inst.Ref = .none,
-comptime_err_ret_trace: *std.ArrayList(LazySrcLoc),
+comptime_err_ret_trace: *std.array_list.Managed(LazySrcLoc),
/// When semantic analysis needs to know the return type of the function whose body
/// is being analyzed, this `Type` should be used instead of going through `func`.
/// This will correctly handle the case of a comptime/inline function call of a
@@ -376,7 +376,7 @@ pub const Block = struct {
/// What mode to generate float operations in, set by @setFloatMode
float_mode: std.builtin.FloatMode = .strict,
- c_import_buf: ?*std.ArrayList(u8) = null,
+ c_import_buf: ?*std.array_list.Managed(u8) = null,
/// If not `null`, this boolean is set when a `dbg_var_ptr`, `dbg_var_val`, or `dbg_arg_inline`.
/// instruction is emitted. It signals that the innermost lexically
@@ -3931,7 +3931,7 @@ fn resolveComptimeKnownAllocPtr(sema: *Sema, block: *Block, alloc: Air.Inst.Ref,
// Whilst constructing our mapping, we will also initialize optional and error union payloads when
// we encounter the corresponding pointers. For this reason, the ordering of `to_map` matters.
- var to_map = try std.ArrayList(Air.Inst.Index).initCapacity(sema.arena, stores.len);
+ var to_map = try std.array_list.Managed(Air.Inst.Index).initCapacity(sema.arena, stores.len);
for (stores) |store_inst_idx| {
const store_inst = sema.air_instructions.get(@intFromEnum(store_inst_idx));
@@ -5665,7 +5665,7 @@ fn zirCImport(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileEr
if (!build_options.have_llvm)
return sema.fail(parent_block, src, "C import unavailable; Zig compiler built without LLVM extensions", .{});
- var c_import_buf = std.ArrayList(u8).init(gpa);
+ var c_import_buf = std.array_list.Managed(u8).init(gpa);
defer c_import_buf.deinit();
var child_block: Block = .{
@@ -10701,7 +10701,7 @@ const SwitchProngAnalysis = struct {
const prong_count = field_indices.len - in_mem_coercible.count();
const estimated_extra = prong_count * 6 + (prong_count / 10); // 2 for Case, 1 item, probably 3 insts; plus hints
- var cases_extra = try std.ArrayList(u32).initCapacity(sema.gpa, estimated_extra);
+ var cases_extra = try std.array_list.Managed(u32).initCapacity(sema.gpa, estimated_extra);
defer cases_extra.deinit();
{
@@ -17603,7 +17603,7 @@ fn typeInfoDecls(
const declaration_ty = try sema.getBuiltinType(src, .@"Type.Declaration");
- var decl_vals = std.ArrayList(InternPool.Index).init(gpa);
+ var decl_vals = std.array_list.Managed(InternPool.Index).init(gpa);
defer decl_vals.deinit();
var seen_namespaces = std.AutoHashMap(*Namespace, void).init(gpa);
@@ -17645,7 +17645,7 @@ fn typeInfoNamespaceDecls(
sema: *Sema,
opt_namespace_index: InternPool.OptionalNamespaceIndex,
declaration_ty: Type,
- decl_vals: *std.ArrayList(InternPool.Index),
+ decl_vals: *std.array_list.Managed(InternPool.Index),
seen_namespaces: *std.AutoHashMap(*Namespace, void),
) !void {
const pt = sema.pt;
@@ -29670,7 +29670,7 @@ fn coerceInMemoryAllowedErrorSets(
}
}
- var missing_error_buf = std.ArrayList(InternPool.NullTerminatedString).init(gpa);
+ var missing_error_buf = std.array_list.Managed(InternPool.NullTerminatedString).init(gpa);
defer missing_error_buf.deinit();
switch (src_ty.toIntern()) {
@@ -37151,7 +37151,7 @@ pub fn resolveDeclaredEnum(
var arena: std.heap.ArenaAllocator = .init(gpa);
defer arena.deinit();
- var comptime_err_ret_trace: std.ArrayList(Zcu.LazySrcLoc) = .init(gpa);
+ var comptime_err_ret_trace: std.array_list.Managed(Zcu.LazySrcLoc) = .init(gpa);
defer comptime_err_ret_trace.deinit();
var sema: Sema = .{
diff --git a/src/Sema/bitcast.zig b/src/Sema/bitcast.zig
index 8fcc40c67ce0..cca27f0927cc 100644
--- a/src/Sema/bitcast.zig
+++ b/src/Sema/bitcast.zig
@@ -102,7 +102,7 @@ fn bitCastInner(
.arena = sema.arena,
.skip_bits = skip_bits,
.remaining_bits = dest_ty.bitSize(zcu),
- .unpacked = std.ArrayList(InternPool.Index).init(sema.arena),
+ .unpacked = std.array_list.Managed(InternPool.Index).init(sema.arena),
};
switch (endian) {
.little => {
@@ -163,7 +163,7 @@ fn bitCastSpliceInner(
.arena = sema.arena,
.skip_bits = 0,
.remaining_bits = splice_offset,
- .unpacked = std.ArrayList(InternPool.Index).init(sema.arena),
+ .unpacked = std.array_list.Managed(InternPool.Index).init(sema.arena),
};
switch (endian) {
.little => {
@@ -216,7 +216,7 @@ const UnpackValueBits = struct {
skip_bits: u64,
remaining_bits: u64,
extra_bits: u64 = undefined,
- unpacked: std.ArrayList(InternPool.Index),
+ unpacked: std.array_list.Managed(InternPool.Index),
fn add(unpack: *UnpackValueBits, val: Value) BitCastError!void {
const pt = unpack.pt;
diff --git a/src/Type.zig b/src/Type.zig
index 9316bec11e12..aeb952fc01a6 100644
--- a/src/Type.zig
+++ b/src/Type.zig
@@ -3805,7 +3805,7 @@ fn resolveStructInner(
var analysis_arena = std.heap.ArenaAllocator.init(gpa);
defer analysis_arena.deinit();
- var comptime_err_ret_trace = std.ArrayList(Zcu.LazySrcLoc).init(gpa);
+ var comptime_err_ret_trace = std.array_list.Managed(Zcu.LazySrcLoc).init(gpa);
defer comptime_err_ret_trace.deinit();
const zir = zcu.namespacePtr(struct_obj.namespace).fileScope(zcu).zir.?;
@@ -3864,7 +3864,7 @@ fn resolveUnionInner(
var analysis_arena = std.heap.ArenaAllocator.init(gpa);
defer analysis_arena.deinit();
- var comptime_err_ret_trace = std.ArrayList(Zcu.LazySrcLoc).init(gpa);
+ var comptime_err_ret_trace = std.array_list.Managed(Zcu.LazySrcLoc).init(gpa);
defer comptime_err_ret_trace.deinit();
const zir = zcu.namespacePtr(union_obj.namespace).fileScope(zcu).zir.?;
diff --git a/src/Zcu/PerThread.zig b/src/Zcu/PerThread.zig
index 7c2961b6ae4b..9d801976f728 100644
--- a/src/Zcu/PerThread.zig
+++ b/src/Zcu/PerThread.zig
@@ -727,7 +727,7 @@ fn analyzeMemoizedState(pt: Zcu.PerThread, stage: InternPool.MemoizedStateStage)
var analysis_arena: std.heap.ArenaAllocator = .init(gpa);
defer analysis_arena.deinit();
- var comptime_err_ret_trace: std.ArrayList(Zcu.LazySrcLoc) = .init(gpa);
+ var comptime_err_ret_trace: std.array_list.Managed(Zcu.LazySrcLoc) = .init(gpa);
defer comptime_err_ret_trace.deinit();
var sema: Sema = .{
@@ -870,7 +870,7 @@ fn analyzeComptimeUnit(pt: Zcu.PerThread, cu_id: InternPool.ComptimeUnit.Id) Zcu
var analysis_arena: std.heap.ArenaAllocator = .init(gpa);
defer analysis_arena.deinit();
- var comptime_err_ret_trace: std.ArrayList(Zcu.LazySrcLoc) = .init(gpa);
+ var comptime_err_ret_trace: std.array_list.Managed(Zcu.LazySrcLoc) = .init(gpa);
defer comptime_err_ret_trace.deinit();
var sema: Sema = .{
@@ -1097,7 +1097,7 @@ fn analyzeNavVal(pt: Zcu.PerThread, nav_id: InternPool.Nav.Index) Zcu.CompileErr
var analysis_arena: std.heap.ArenaAllocator = .init(gpa);
defer analysis_arena.deinit();
- var comptime_err_ret_trace: std.ArrayList(Zcu.LazySrcLoc) = .init(gpa);
+ var comptime_err_ret_trace: std.array_list.Managed(Zcu.LazySrcLoc) = .init(gpa);
defer comptime_err_ret_trace.deinit();
var sema: Sema = .{
@@ -1471,7 +1471,7 @@ fn analyzeNavType(pt: Zcu.PerThread, nav_id: InternPool.Nav.Index) Zcu.CompileEr
var analysis_arena: std.heap.ArenaAllocator = .init(gpa);
defer analysis_arena.deinit();
- var comptime_err_ret_trace: std.ArrayList(Zcu.LazySrcLoc) = .init(gpa);
+ var comptime_err_ret_trace: std.array_list.Managed(Zcu.LazySrcLoc) = .init(gpa);
defer comptime_err_ret_trace.deinit();
var sema: Sema = .{
@@ -2807,7 +2807,7 @@ fn analyzeFnBodyInner(pt: Zcu.PerThread, func_index: InternPool.Index) Zcu.SemaE
var analysis_arena = std.heap.ArenaAllocator.init(gpa);
defer analysis_arena.deinit();
- var comptime_err_ret_trace = std.ArrayList(Zcu.LazySrcLoc).init(gpa);
+ var comptime_err_ret_trace = std.array_list.Managed(Zcu.LazySrcLoc).init(gpa);
defer comptime_err_ret_trace.deinit();
// In the case of a generic function instance, this is the type of the
diff --git a/src/arch/riscv64/CodeGen.zig b/src/arch/riscv64/CodeGen.zig
index ffff65d4d1fc..d51470544d9f 100644
--- a/src/arch/riscv64/CodeGen.zig
+++ b/src/arch/riscv64/CodeGen.zig
@@ -101,7 +101,7 @@ reused_operands: std.StaticBitSet(Air.Liveness.bpi - 1) = undefined,
/// within different branches. Special consideration is needed when a branch
/// joins with its parent, to make sure all instructions have the same MCValue
/// across each runtime branch upon joining.
-branch_stack: *std.ArrayList(Branch),
+branch_stack: *std.array_list.Managed(Branch),
// Currently set vector properties, null means they haven't been set yet in the function.
avl: ?u64,
@@ -674,7 +674,7 @@ fn restoreState(func: *Func, state: State, deaths: []const Air.Inst.Index, compt
var stack align(@max(@alignOf(ExpectedContents), @alignOf(std.heap.StackFallbackAllocator(0)))) =
if (opts.update_tracking) {} else std.heap.stackFallback(@sizeOf(ExpectedContents), func.gpa);
- var reg_locks = if (opts.update_tracking) {} else try std.ArrayList(RegisterLock).initCapacity(
+ var reg_locks = if (opts.update_tracking) {} else try std.array_list.Managed(RegisterLock).initCapacity(
stack.get(),
@typeInfo(ExpectedContents).array.len,
);
@@ -753,7 +753,7 @@ pub fn generate(
const fn_type = Type.fromInterned(func.ty);
const mod = zcu.navFileScope(func.owner_nav).mod.?;
- var branch_stack = std.ArrayList(Branch).init(gpa);
+ var branch_stack = std.array_list.Managed(Branch).init(gpa);
defer {
assert(branch_stack.items.len == 1);
branch_stack.items[0].deinit(gpa);
@@ -4883,7 +4883,7 @@ fn genCall(
stack_frame_align.* = stack_frame_align.max(needed_call_frame.abi_align);
}
- var reg_locks = std.ArrayList(?RegisterLock).init(allocator);
+ var reg_locks = std.array_list.Managed(?RegisterLock).init(allocator);
defer reg_locks.deinit();
try reg_locks.ensureTotalCapacity(8);
defer for (reg_locks.items) |reg_lock| if (reg_lock) |lock| func.register_manager.unlockReg(lock);
@@ -6056,7 +6056,7 @@ fn airAsm(func: *Func, inst: Air.Inst.Index) !void {
extra_i += inputs.len;
var result: MCValue = .none;
- var args = std.ArrayList(MCValue).init(func.gpa);
+ var args = std.array_list.Managed(MCValue).init(func.gpa);
try args.ensureTotalCapacity(outputs.len + inputs.len);
defer {
for (args.items) |arg| if (arg.getReg()) |reg| func.register_manager.unlockReg(.{
diff --git a/src/arch/sparc64/CodeGen.zig b/src/arch/sparc64/CodeGen.zig
index 6ab5dea4ec31..48d44e39f973 100644
--- a/src/arch/sparc64/CodeGen.zig
+++ b/src/arch/sparc64/CodeGen.zig
@@ -88,7 +88,7 @@ reused_operands: std.StaticBitSet(Air.Liveness.bpi - 1) = undefined,
/// within different branches. Special consideration is needed when a branch
/// joins with its parent, to make sure all instructions have the same MCValue
/// across each runtime branch upon joining.
-branch_stack: *std.ArrayList(Branch),
+branch_stack: *std.array_list.Managed(Branch),
// Key is the block instruction
blocks: std.AutoHashMapUnmanaged(Air.Inst.Index, BlockData) = .empty,
@@ -276,7 +276,7 @@ pub fn generate(
const file_scope = zcu.navFileScope(func.owner_nav);
const target = &file_scope.mod.?.resolved_target.result;
- var branch_stack = std.ArrayList(Branch).init(gpa);
+ var branch_stack = std.array_list.Managed(Branch).init(gpa);
defer {
assert(branch_stack.items.len == 1);
branch_stack.items[0].deinit(gpa);
diff --git a/src/arch/wasm/CodeGen.zig b/src/arch/wasm/CodeGen.zig
index e56fb1df9609..b8e48a38425f 100644
--- a/src/arch/wasm/CodeGen.zig
+++ b/src/arch/wasm/CodeGen.zig
@@ -1301,7 +1301,7 @@ fn resolveCallingConventionValues(
};
if (cc == .naked) return result;
- var args = std.ArrayList(WValue).init(gpa);
+ var args = std.array_list.Managed(WValue).init(gpa);
defer args.deinit();
// Check if we store the result as a pointer to the stack rather than
@@ -7132,7 +7132,7 @@ fn airErrorSetHasValue(cg: *CodeGen, inst: Air.Inst.Index) InnerError!void {
const result = try cg.allocLocal(Type.bool);
const names = error_set_ty.errorSetNames(zcu);
- var values = try std.ArrayList(u32).initCapacity(cg.gpa, names.len);
+ var values = try std.array_list.Managed(u32).initCapacity(cg.gpa, names.len);
defer values.deinit();
var lowest: ?u32 = null;
diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig
index ad2d1b580fd4..0cdde383c8bb 100644
--- a/src/arch/x86_64/CodeGen.zig
+++ b/src/arch/x86_64/CodeGen.zig
@@ -169359,7 +169359,7 @@ fn restoreState(self: *CodeGen, state: State, deaths: []const Air.Inst.Index, co
var stack align(@max(@alignOf(ExpectedContents), @alignOf(std.heap.StackFallbackAllocator(0)))) =
if (opts.update_tracking) {} else std.heap.stackFallback(@sizeOf(ExpectedContents), self.gpa);
- var reg_locks = if (opts.update_tracking) {} else try std.ArrayList(RegisterLock).initCapacity(
+ var reg_locks = if (opts.update_tracking) {} else try std.array_list.Managed(RegisterLock).initCapacity(
stack.get(),
@typeInfo(ExpectedContents).array.len,
);
@@ -178175,7 +178175,7 @@ fn genCall(self: *CodeGen, info: union(enum) {
const frame_indices = try allocator.alloc(FrameIndex, args.len);
defer allocator.free(frame_indices);
- var reg_locks: std.ArrayList(?RegisterLock) = .init(allocator);
+ var reg_locks: std.array_list.Managed(?RegisterLock) = .init(allocator);
defer reg_locks.deinit();
try reg_locks.ensureTotalCapacity(16);
defer for (reg_locks.items) |reg_lock| if (reg_lock) |lock| self.register_manager.unlockReg(lock);
@@ -179786,7 +179786,7 @@ fn airAsm(self: *CodeGen, inst: Air.Inst.Index) !void {
extra_i += inputs.len;
var result: MCValue = .none;
- var args: std.ArrayList(MCValue) = .init(self.gpa);
+ var args: std.array_list.Managed(MCValue) = .init(self.gpa);
try args.ensureTotalCapacity(outputs.len + inputs.len);
defer {
for (args.items) |arg| if (arg.getReg()) |reg| self.register_manager.unlockReg(.{
diff --git a/src/arch/x86_64/encoder.zig b/src/arch/x86_64/encoder.zig
index ed31c068dca8..8e71b066daac 100644
--- a/src/arch/x86_64/encoder.zig
+++ b/src/arch/x86_64/encoder.zig
@@ -1216,7 +1216,7 @@ const TestEncode = struct {
};
test "encode" {
- var buf = std.ArrayList(u8).init(testing.allocator);
+ var buf = std.array_list.Managed(u8).init(testing.allocator);
defer buf.deinit();
const inst: Instruction = try .new(.none, .mov, &.{
@@ -2647,7 +2647,7 @@ test "assemble" {
// zig fmt: on
var as = Assembler.init(input);
- var output = std.ArrayList(u8).init(testing.allocator);
+ var output = std.array_list.Managed(u8).init(testing.allocator);
defer output.deinit();
try as.assemble(output.writer());
try expectEqualHexStrings(expected, output.items, input);
@@ -2691,7 +2691,7 @@ test "assemble - Jcc" {
const input = @tagName(mnemonic[0]) ++ " 0x0";
const expected = [_]u8{ 0x0f, mnemonic[1], 0x0, 0x0, 0x0, 0x0 };
var as = Assembler.init(input);
- var output = std.ArrayList(u8).init(testing.allocator);
+ var output = std.array_list.Managed(u8).init(testing.allocator);
defer output.deinit();
try as.assemble(output.writer());
try expectEqualHexStrings(&expected, output.items, input);
@@ -2736,7 +2736,7 @@ test "assemble - SETcc" {
const input = @tagName(mnemonic[0]) ++ " al";
const expected = [_]u8{ 0x0f, mnemonic[1], 0xC0 };
var as = Assembler.init(input);
- var output = std.ArrayList(u8).init(testing.allocator);
+ var output = std.array_list.Managed(u8).init(testing.allocator);
defer output.deinit();
try as.assemble(output.writer());
try expectEqualHexStrings(&expected, output.items, input);
@@ -2781,7 +2781,7 @@ test "assemble - CMOVcc" {
const input = @tagName(mnemonic[0]) ++ " rax, rbx";
const expected = [_]u8{ 0x48, 0x0f, mnemonic[1], 0xC3 };
var as = Assembler.init(input);
- var output = std.ArrayList(u8).init(testing.allocator);
+ var output = std.array_list.Managed(u8).init(testing.allocator);
defer output.deinit();
try as.assemble(output.writer());
try expectEqualHexStrings(&expected, output.items, input);
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index 2e1c390c0960..15b6ce7f12cd 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -53,7 +53,7 @@ fn subArchName(target: *const std.Target, comptime family: std.Target.Cpu.Arch.F
}
pub fn targetTriple(allocator: Allocator, target: *const std.Target) ![]const u8 {
- var llvm_triple = std.ArrayList(u8).init(allocator);
+ var llvm_triple = std.array_list.Managed(u8).init(allocator);
defer llvm_triple.deinit();
const llvm_arch = switch (target.cpu.arch) {
@@ -820,7 +820,7 @@ pub const Object = struct {
}
{
- var module_flags = try std.ArrayList(Builder.Metadata).initCapacity(o.gpa, 8);
+ var module_flags = try std.array_list.Managed(Builder.Metadata).initCapacity(o.gpa, 8);
defer module_flags.deinit();
const behavior_error = try o.builder.metadataConstant(try o.builder.intConst(.i32, 1));
@@ -2583,7 +2583,7 @@ pub const Object = struct {
.@"fn" => {
const fn_info = zcu.typeToFunc(ty).?;
- var debug_param_types = std.ArrayList(Builder.Metadata).init(gpa);
+ var debug_param_types = std.array_list.Managed(Builder.Metadata).init(gpa);
defer debug_param_types.deinit();
try debug_param_types.ensureUnusedCapacity(3 + fn_info.param_types.len);
@@ -5254,7 +5254,7 @@ pub const FuncGen = struct {
const target = zcu.getTarget();
const sret = firstParamSRet(fn_info, zcu, target);
- var llvm_args = std.ArrayList(Builder.Value).init(self.gpa);
+ var llvm_args = std.array_list.Managed(Builder.Value).init(self.gpa);
defer llvm_args.deinit();
var attributes: Builder.FunctionAttributes.Wip = .{};
@@ -7536,7 +7536,7 @@ pub const FuncGen = struct {
const asm_source = std.mem.sliceAsBytes(self.air.extra.items[extra_i..])[0..extra.data.source_len];
// hackety hacks until stage2 has proper inline asm in the frontend.
- var rendered_template = std.ArrayList(u8).init(gpa);
+ var rendered_template = std.array_list.Managed(u8).init(gpa);
defer rendered_template.deinit();
const State = enum { start, percent, input, modifier };
diff --git a/src/codegen/spirv/CodeGen.zig b/src/codegen/spirv/CodeGen.zig
index 3b0edf706e79..b27fe7117217 100644
--- a/src/codegen/spirv/CodeGen.zig
+++ b/src/codegen/spirv/CodeGen.zig
@@ -970,10 +970,10 @@ fn constant(cg: *CodeGen, ty: Type, val: Value, repr: Repr) Error!Id {
return try cg.constInt(backing_ty, @as(u64, @bitCast(limbs)));
}
- var types = std.ArrayList(Type).init(gpa);
+ var types = std.array_list.Managed(Type).init(gpa);
defer types.deinit();
- var constituents = std.ArrayList(Id).init(gpa);
+ var constituents = std.array_list.Managed(Id).init(gpa);
defer constituents.deinit();
var it = struct_type.iterateRuntimeOrder(ip);
@@ -1519,13 +1519,13 @@ fn resolveType(cg: *CodeGen, ty: Type, repr: Repr) Error!Id {
return try cg.resolveType(.fromInterned(struct_type.backingIntTypeUnordered(ip)), .direct);
}
- var member_types = std.ArrayList(Id).init(gpa);
+ var member_types = std.array_list.Managed(Id).init(gpa);
defer member_types.deinit();
- var member_names = std.ArrayList([]const u8).init(gpa);
+ var member_names = std.array_list.Managed([]const u8).init(gpa);
defer member_names.deinit();
- var member_offsets = std.ArrayList(u32).init(gpa);
+ var member_offsets = std.array_list.Managed(u32).init(gpa);
defer member_offsets.deinit();
var it = struct_type.iterateRuntimeOrder(ip);
diff --git a/src/codegen/spirv/Module.zig b/src/codegen/spirv/Module.zig
index 856b1eaf67ef..d728360d7e07 100644
--- a/src/codegen/spirv/Module.zig
+++ b/src/codegen/spirv/Module.zig
@@ -281,7 +281,7 @@ pub fn addEntryPointDeps(
module: *Module,
decl_index: Decl.Index,
seen: *std.DynamicBitSetUnmanaged,
- interface: *std.ArrayList(Id),
+ interface: *std.array_list.Managed(Id),
) !void {
const decl = module.declPtr(decl_index);
const deps = module.decl_deps.items[decl.begin_dep..decl.end_dep];
@@ -307,7 +307,7 @@ fn entryPoints(module: *Module) !Section {
var entry_points = Section{};
errdefer entry_points.deinit(module.gpa);
- var interface = std.ArrayList(Id).init(module.gpa);
+ var interface = std.array_list.Managed(Id).init(module.gpa);
defer interface.deinit();
var seen = try std.DynamicBitSetUnmanaged.initEmpty(module.gpa, module.decls.items.len);
diff --git a/src/fmt.zig b/src/fmt.zig
index 358ebe634a11..42bf6f849c77 100644
--- a/src/fmt.zig
+++ b/src/fmt.zig
@@ -46,9 +46,9 @@ pub fn run(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
var check_flag = false;
var check_ast_flag = false;
var force_zon = false;
- var input_files = std.ArrayList([]const u8).init(gpa);
+ var input_files = std.array_list.Managed([]const u8).init(gpa);
defer input_files.deinit();
- var excluded_files = std.ArrayList([]const u8).init(gpa);
+ var excluded_files = std.array_list.Managed([]const u8).init(gpa);
defer excluded_files.deinit();
{
diff --git a/src/libs/freebsd.zig b/src/libs/freebsd.zig
index 29a0c3097886..41f0e292919b 100644
--- a/src/libs/freebsd.zig
+++ b/src/libs/freebsd.zig
@@ -76,7 +76,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
switch (crt_file) {
.scrt1_o => {
- var cflags = std.ArrayList([]const u8).init(arena);
+ var cflags = std.array_list.Managed([]const u8).init(arena);
try cflags.appendSlice(&.{
"-O2",
"-fno-common",
@@ -89,7 +89,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
try cflags.append("-mlongcall");
}
- var acflags = std.ArrayList([]const u8).init(arena);
+ var acflags = std.array_list.Managed([]const u8).init(arena);
try acflags.appendSlice(&.{
"-DLOCORE",
// See `Compilation.addCCArgs`.
@@ -510,7 +510,7 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
};
{
- var map_contents = std.ArrayList(u8).init(arena);
+ var map_contents = std.array_list.Managed(u8).init(arena);
for (metadata.all_versions[0 .. target_ver_index + 1]) |ver| {
try map_contents.writer().print("FBSD_{d}.{d} {{ }};\n", .{ ver.major, ver.minor });
}
@@ -518,7 +518,7 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
map_contents.deinit();
}
- var stubs_asm = std.ArrayList(u8).init(gpa);
+ var stubs_asm = std.array_list.Managed(u8).init(gpa);
defer stubs_asm.deinit();
for (libs, 0..) |lib, lib_i| {
@@ -529,7 +529,7 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
try stubs_writer.writeAll(".text\n");
var sym_i: usize = 0;
- var sym_name_buf = std.ArrayList(u8).init(arena);
+ var sym_name_buf = std.array_list.Managed(u8).init(arena);
var opt_symbol_name: ?[]const u8 = null;
var versions = try std.DynamicBitSetUnmanaged.initEmpty(arena, metadata.all_versions.len);
var weak_linkages = try std.DynamicBitSetUnmanaged.initEmpty(arena, metadata.all_versions.len);
diff --git a/src/libs/glibc.zig b/src/libs/glibc.zig
index e63355af33a2..b228ad60ad54 100644
--- a/src/libs/glibc.zig
+++ b/src/libs/glibc.zig
@@ -186,7 +186,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
switch (crt_file) {
.scrt1_o => {
const start_o: Compilation.CSourceFile = blk: {
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try add_include_dirs(comp, arena, &args);
try args.appendSlice(&[_][]const u8{
"-D_LIBC_REENTRANT",
@@ -210,7 +210,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
};
};
const abi_note_o: Compilation.CSourceFile = blk: {
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try args.appendSlice(&[_][]const u8{
"-I",
try lib_path(comp, arena, lib_libc_glibc ++ "csu"),
@@ -306,7 +306,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
for (deps) |dep| {
if (!dep.include) continue;
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try args.appendSlice(&[_][]const u8{
"-std=gnu11",
"-fgnu89-inline",
@@ -364,7 +364,7 @@ fn start_asm_path(comp: *Compilation, arena: Allocator, basename: []const u8) ![
const s = path.sep_str;
- var result = std.ArrayList(u8).init(arena);
+ var result = std.array_list.Managed(u8).init(arena);
try result.appendSlice(comp.dirs.zig_lib.path orelse ".");
try result.appendSlice(s ++ "libc" ++ s ++ "glibc" ++ s ++ "sysdeps" ++ s);
if (is_sparc) {
@@ -408,7 +408,7 @@ fn start_asm_path(comp: *Compilation, arena: Allocator, basename: []const u8) ![
return result.items;
}
-fn add_include_dirs(comp: *Compilation, arena: Allocator, args: *std.ArrayList([]const u8)) error{OutOfMemory}!void {
+fn add_include_dirs(comp: *Compilation, arena: Allocator, args: *std.array_list.Managed([]const u8)) error{OutOfMemory}!void {
const target = comp.getTarget();
const opt_nptl: ?[]const u8 = if (target.os.tag == .linux) "nptl" else "htl";
@@ -484,7 +484,7 @@ fn add_include_dirs(comp: *Compilation, arena: Allocator, args: *std.ArrayList([
fn add_include_dirs_arch(
arena: Allocator,
- args: *std.ArrayList([]const u8),
+ args: *std.array_list.Managed([]const u8),
target: *const std.Target,
opt_nptl: ?[]const u8,
dir: []const u8,
@@ -749,7 +749,7 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
};
{
- var map_contents = std.ArrayList(u8).init(arena);
+ var map_contents = std.array_list.Managed(u8).init(arena);
for (metadata.all_versions[0 .. target_ver_index + 1]) |ver| {
if (ver.patch == 0) {
try map_contents.writer().print("GLIBC_{d}.{d} {{ }};\n", .{ ver.major, ver.minor });
@@ -761,7 +761,7 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
map_contents.deinit(); // The most recent allocation of an arena can be freed :)
}
- var stubs_asm = std.ArrayList(u8).init(gpa);
+ var stubs_asm = std.array_list.Managed(u8).init(gpa);
defer stubs_asm.deinit();
for (libs, 0..) |lib, lib_i| {
@@ -773,7 +773,7 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
try stubs_asm.appendSlice(".text\n");
var sym_i: usize = 0;
- var sym_name_buf = std.ArrayList(u8).init(arena);
+ var sym_name_buf = std.array_list.Managed(u8).init(arena);
var opt_symbol_name: ?[]const u8 = null;
var versions_buffer: [32]u8 = undefined;
var versions_len: usize = undefined;
diff --git a/src/libs/libcxx.zig b/src/libs/libcxx.zig
index be73fb7ea453..40da4dd92ff7 100644
--- a/src/libs/libcxx.zig
+++ b/src/libs/libcxx.zig
@@ -190,7 +190,7 @@ pub fn buildLibCxx(comp: *Compilation, prog_node: std.Progress.Node) BuildError!
else
&libcxx_base_files;
- var c_source_files = try std.ArrayList(Compilation.CSourceFile).initCapacity(arena, libcxx_files.len);
+ var c_source_files = try std.array_list.Managed(Compilation.CSourceFile).initCapacity(arena, libcxx_files.len);
for (libcxx_files) |cxx_src| {
// These don't compile on WASI due to e.g. `fchmod` usage.
@@ -201,7 +201,7 @@ pub fn buildLibCxx(comp: *Compilation, prog_node: std.Progress.Node) BuildError!
if (std.mem.startsWith(u8, cxx_src, "src/support/ibm/") and target.os.tag != .zos)
continue;
- var cflags = std.ArrayList([]const u8).init(arena);
+ var cflags = std.array_list.Managed([]const u8).init(arena);
try addCxxArgs(comp, arena, &cflags);
@@ -233,7 +233,7 @@ pub fn buildLibCxx(comp: *Compilation, prog_node: std.Progress.Node) BuildError!
// These depend on only the zig lib directory file path, which is
// purposefully either in the cache or not in the cache. The decision
// should not be overridden here.
- var cache_exempt_flags = std.ArrayList([]const u8).init(arena);
+ var cache_exempt_flags = std.array_list.Managed([]const u8).init(arena);
try cache_exempt_flags.append("-I");
try cache_exempt_flags.append(cxx_include_path);
@@ -385,7 +385,7 @@ pub fn buildLibCxxAbi(comp: *Compilation, prog_node: std.Progress.Node) BuildErr
return error.AlreadyReported;
};
- var c_source_files = try std.ArrayList(Compilation.CSourceFile).initCapacity(arena, libcxxabi_files.len);
+ var c_source_files = try std.array_list.Managed(Compilation.CSourceFile).initCapacity(arena, libcxxabi_files.len);
for (libcxxabi_files) |cxxabi_src| {
if (!comp.config.any_non_single_threaded and std.mem.startsWith(u8, cxxabi_src, "src/cxa_thread_atexit.cpp"))
@@ -394,7 +394,7 @@ pub fn buildLibCxxAbi(comp: *Compilation, prog_node: std.Progress.Node) BuildErr
(std.mem.eql(u8, cxxabi_src, "src/cxa_exception.cpp") or std.mem.eql(u8, cxxabi_src, "src/cxa_personality.cpp")))
continue;
- var cflags = std.ArrayList([]const u8).init(arena);
+ var cflags = std.array_list.Managed([]const u8).init(arena);
try addCxxArgs(comp, arena, &cflags);
@@ -425,7 +425,7 @@ pub fn buildLibCxxAbi(comp: *Compilation, prog_node: std.Progress.Node) BuildErr
// These depend on only the zig lib directory file path, which is
// purposefully either in the cache or not in the cache. The decision
// should not be overridden here.
- var cache_exempt_flags = std.ArrayList([]const u8).init(arena);
+ var cache_exempt_flags = std.array_list.Managed([]const u8).init(arena);
try cache_exempt_flags.append("-I");
try cache_exempt_flags.append(cxxabi_include_path);
@@ -497,7 +497,7 @@ pub fn buildLibCxxAbi(comp: *Compilation, prog_node: std.Progress.Node) BuildErr
pub fn addCxxArgs(
comp: *const Compilation,
arena: std.mem.Allocator,
- cflags: *std.ArrayList([]const u8),
+ cflags: *std.array_list.Managed([]const u8),
) error{OutOfMemory}!void {
const target = comp.getTarget();
const optimize_mode = comp.compilerRtOptMode();
diff --git a/src/libs/libtsan.zig b/src/libs/libtsan.zig
index 7c31c15bd316..41fc82617a85 100644
--- a/src/libs/libtsan.zig
+++ b/src/libs/libtsan.zig
@@ -113,12 +113,12 @@ pub fn buildTsan(comp: *Compilation, prog_node: std.Progress.Node) BuildError!vo
return error.AlreadyReported;
};
- var c_source_files = std.ArrayList(Compilation.CSourceFile).init(arena);
+ var c_source_files = std.array_list.Managed(Compilation.CSourceFile).init(arena);
try c_source_files.ensureUnusedCapacity(tsan_sources.len);
const tsan_include_path = try comp.dirs.zig_lib.join(arena, &.{"libtsan"});
for (tsan_sources) |tsan_src| {
- var cflags = std.ArrayList([]const u8).init(arena);
+ var cflags = std.array_list.Managed([]const u8).init(arena);
try cflags.append("-I");
try cflags.append(tsan_include_path);
@@ -139,7 +139,7 @@ pub fn buildTsan(comp: *Compilation, prog_node: std.Progress.Node) BuildError!vo
};
try c_source_files.ensureUnusedCapacity(platform_tsan_sources.len);
for (platform_tsan_sources) |tsan_src| {
- var cflags = std.ArrayList([]const u8).init(arena);
+ var cflags = std.array_list.Managed([]const u8).init(arena);
try cflags.append("-I");
try cflags.append(tsan_include_path);
@@ -163,7 +163,7 @@ pub fn buildTsan(comp: *Compilation, prog_node: std.Progress.Node) BuildError!vo
.x86_64 => "tsan_rtl_amd64.S",
else => return error.TSANUnsupportedCPUArchitecture,
};
- var cflags = std.ArrayList([]const u8).init(arena);
+ var cflags = std.array_list.Managed([]const u8).init(arena);
try cflags.append("-I");
try cflags.append(tsan_include_path);
@@ -182,7 +182,7 @@ pub fn buildTsan(comp: *Compilation, prog_node: std.Progress.Node) BuildError!vo
"libtsan", "sanitizer_common",
});
for (sanitizer_common_sources) |common_src| {
- var cflags = std.ArrayList([]const u8).init(arena);
+ var cflags = std.array_list.Managed([]const u8).init(arena);
try cflags.append("-I");
try cflags.append(sanitizer_common_include_path);
@@ -206,7 +206,7 @@ pub fn buildTsan(comp: *Compilation, prog_node: std.Progress.Node) BuildError!vo
&sanitizer_nolibc_sources;
try c_source_files.ensureUnusedCapacity(to_c_or_not_to_c_sources.len);
for (to_c_or_not_to_c_sources) |c_src| {
- var cflags = std.ArrayList([]const u8).init(arena);
+ var cflags = std.array_list.Managed([]const u8).init(arena);
try cflags.append("-I");
try cflags.append(sanitizer_common_include_path);
@@ -226,7 +226,7 @@ pub fn buildTsan(comp: *Compilation, prog_node: std.Progress.Node) BuildError!vo
try c_source_files.ensureUnusedCapacity(sanitizer_symbolizer_sources.len);
for (sanitizer_symbolizer_sources) |c_src| {
- var cflags = std.ArrayList([]const u8).init(arena);
+ var cflags = std.array_list.Managed([]const u8).init(arena);
try cflags.append("-I");
try cflags.append(tsan_include_path);
@@ -246,7 +246,7 @@ pub fn buildTsan(comp: *Compilation, prog_node: std.Progress.Node) BuildError!vo
try c_source_files.ensureUnusedCapacity(interception_sources.len);
for (interception_sources) |c_src| {
- var cflags = std.ArrayList([]const u8).init(arena);
+ var cflags = std.array_list.Managed([]const u8).init(arena);
try cflags.append("-I");
try cflags.append(interception_include_path);
@@ -323,7 +323,7 @@ pub fn buildTsan(comp: *Compilation, prog_node: std.Progress.Node) BuildError!vo
comp.tsan_lib = crt_file;
}
-fn addCcArgs(target: *const std.Target, args: *std.ArrayList([]const u8)) error{OutOfMemory}!void {
+fn addCcArgs(target: *const std.Target, args: *std.array_list.Managed([]const u8)) error{OutOfMemory}!void {
try args.appendSlice(&[_][]const u8{
"-nostdinc++",
"-fvisibility=hidden",
diff --git a/src/libs/libunwind.zig b/src/libs/libunwind.zig
index 32b2dbb94772..765058087f3c 100644
--- a/src/libs/libunwind.zig
+++ b/src/libs/libunwind.zig
@@ -87,7 +87,7 @@ pub fn buildStaticLib(comp: *Compilation, prog_node: std.Progress.Node) BuildErr
const root_name = "unwind";
var c_source_files: [unwind_src_list.len]Compilation.CSourceFile = undefined;
for (unwind_src_list, 0..) |unwind_src, i| {
- var cflags = std.ArrayList([]const u8).init(arena);
+ var cflags = std.array_list.Managed([]const u8).init(arena);
switch (Compilation.classifyFileExt(unwind_src)) {
.c => {
diff --git a/src/libs/mingw.zig b/src/libs/mingw.zig
index 09f0f635bffb..612a5a0db66d 100644
--- a/src/libs/mingw.zig
+++ b/src/libs/mingw.zig
@@ -33,7 +33,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
switch (crt_file) {
.crt2_o => {
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try addCrtCcArgs(comp, arena, &args);
if (comp.mingw_unicode_entry_point) {
try args.appendSlice(&.{ "-DUNICODE", "-D_UNICODE" });
@@ -53,7 +53,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
},
.dllcrt2_o => {
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try addCrtCcArgs(comp, arena, &args);
var files = [_]Compilation.CSourceFile{
.{
@@ -70,10 +70,10 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
},
.libmingw32_lib => {
- var c_source_files = std.ArrayList(Compilation.CSourceFile).init(arena);
+ var c_source_files = std.array_list.Managed(Compilation.CSourceFile).init(arena);
{
- var crt_args = std.ArrayList([]const u8).init(arena);
+ var crt_args = std.array_list.Managed([]const u8).init(arena);
try addCrtCcArgs(comp, arena, &crt_args);
for (mingw32_generic_src) |dep| {
@@ -150,7 +150,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
}
{
- var winpthreads_args = std.ArrayList([]const u8).init(arena);
+ var winpthreads_args = std.array_list.Managed([]const u8).init(arena);
try addCcArgs(comp, arena, &winpthreads_args);
try winpthreads_args.appendSlice(&[_][]const u8{
"-DIN_WINPTHREAD",
@@ -186,7 +186,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
fn addCcArgs(
comp: *Compilation,
arena: Allocator,
- args: *std.ArrayList([]const u8),
+ args: *std.array_list.Managed([]const u8),
) error{OutOfMemory}!void {
try args.appendSlice(&[_][]const u8{
"-std=gnu11",
@@ -200,7 +200,7 @@ fn addCcArgs(
fn addCrtCcArgs(
comp: *Compilation,
arena: Allocator,
- args: *std.ArrayList([]const u8),
+ args: *std.array_list.Managed([]const u8),
) error{OutOfMemory}!void {
try addCcArgs(comp, arena, args);
@@ -401,7 +401,7 @@ fn findDef(
else => unreachable,
};
- var override_path = std.ArrayList(u8).init(allocator);
+ var override_path = std.array_list.Managed(u8).init(allocator);
defer override_path.deinit();
const s = path.sep_str;
diff --git a/src/libs/musl.zig b/src/libs/musl.zig
index 97204b107580..750252aa563b 100644
--- a/src/libs/musl.zig
+++ b/src/libs/musl.zig
@@ -29,7 +29,7 @@ pub fn buildCrtFile(comp: *Compilation, in_crt_file: CrtFile, prog_node: std.Pro
switch (in_crt_file) {
.crt1_o => {
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try addCcArgs(comp, arena, &args, false);
try args.append("-DCRT");
var files = [_]Compilation.CSourceFile{
@@ -49,7 +49,7 @@ pub fn buildCrtFile(comp: *Compilation, in_crt_file: CrtFile, prog_node: std.Pro
});
},
.rcrt1_o => {
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try addCcArgs(comp, arena, &args, false);
try args.append("-DCRT");
var files = [_]Compilation.CSourceFile{
@@ -70,7 +70,7 @@ pub fn buildCrtFile(comp: *Compilation, in_crt_file: CrtFile, prog_node: std.Pro
});
},
.scrt1_o => {
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try addCcArgs(comp, arena, &args, false);
try args.append("-DCRT");
var files = [_]Compilation.CSourceFile{
@@ -112,10 +112,10 @@ pub fn buildCrtFile(comp: *Compilation, in_crt_file: CrtFile, prog_node: std.Pro
}
}
- var c_source_files = std.ArrayList(Compilation.CSourceFile).init(comp.gpa);
+ var c_source_files = std.array_list.Managed(Compilation.CSourceFile).init(comp.gpa);
defer c_source_files.deinit();
- var override_path = std.ArrayList(u8).init(comp.gpa);
+ var override_path = std.array_list.Managed(u8).init(comp.gpa);
defer override_path.deinit();
const s = path.sep_str;
@@ -161,7 +161,7 @@ pub fn buildCrtFile(comp: *Compilation, in_crt_file: CrtFile, prog_node: std.Pro
continue;
}
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try addCcArgs(comp, arena, &args, ext == .o3);
const c_source_file = try c_source_files.addOne();
c_source_file.* = .{
@@ -390,7 +390,7 @@ fn addSrcFile(arena: Allocator, source_table: *std.StringArrayHashMap(Ext), file
fn addCcArgs(
comp: *Compilation,
arena: Allocator,
- args: *std.ArrayList([]const u8),
+ args: *std.array_list.Managed([]const u8),
want_O3: bool,
) error{OutOfMemory}!void {
const target = comp.getTarget();
diff --git a/src/libs/netbsd.zig b/src/libs/netbsd.zig
index 534145e4d764..04aa4ccfeb4b 100644
--- a/src/libs/netbsd.zig
+++ b/src/libs/netbsd.zig
@@ -69,13 +69,13 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
switch (crt_file) {
.scrt0_o => {
- var cflags = std.ArrayList([]const u8).init(arena);
+ var cflags = std.array_list.Managed([]const u8).init(arena);
try cflags.appendSlice(&.{
"-DHAVE_INITFINI_ARRAY",
"-w", // Disable all warnings.
});
- var acflags = std.ArrayList([]const u8).init(arena);
+ var acflags = std.array_list.Managed([]const u8).init(arena);
try acflags.appendSlice(&.{
// See `Compilation.addCCArgs`.
try std.fmt.allocPrint(arena, "-D__NetBSD_Version__={d}", .{(target_version.major * 100_000_000) + (target_version.minor * 1_000_000)}),
@@ -454,7 +454,7 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
break :blk latest_index;
};
- var stubs_asm = std.ArrayList(u8).init(gpa);
+ var stubs_asm = std.array_list.Managed(u8).init(gpa);
defer stubs_asm.deinit();
for (libs, 0..) |lib, lib_i| {
@@ -465,7 +465,7 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye
try stubs_writer.writeAll(".text\n");
var sym_i: usize = 0;
- var sym_name_buf = std.ArrayList(u8).init(arena);
+ var sym_name_buf = std.array_list.Managed(u8).init(arena);
var opt_symbol_name: ?[]const u8 = null;
var inc_fbs = std.io.fixedBufferStream(metadata.inclusions);
diff --git a/src/libs/wasi_libc.zig b/src/libs/wasi_libc.zig
index 390d08f0385b..d71740e5e60c 100644
--- a/src/libs/wasi_libc.zig
+++ b/src/libs/wasi_libc.zig
@@ -41,7 +41,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
switch (crt_file) {
.crt1_reactor_o => {
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try addCCArgs(comp, arena, &args, .{});
try addLibcBottomHalfIncludes(comp, arena, &args);
var files = [_]Compilation.CSourceFile{
@@ -56,7 +56,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
return comp.build_crt_file("crt1-reactor", .Obj, .@"wasi crt1-reactor.o", prog_node, &files, .{});
},
.crt1_command_o => {
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try addCCArgs(comp, arena, &args, .{});
try addLibcBottomHalfIncludes(comp, arena, &args);
var files = [_]Compilation.CSourceFile{
@@ -71,11 +71,11 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
return comp.build_crt_file("crt1-command", .Obj, .@"wasi crt1-command.o", prog_node, &files, .{});
},
.libc_a => {
- var libc_sources = std.ArrayList(Compilation.CSourceFile).init(arena);
+ var libc_sources = std.array_list.Managed(Compilation.CSourceFile).init(arena);
{
// Compile emmalloc.
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try addCCArgs(comp, arena, &args, .{ .want_O3 = true, .no_strict_aliasing = true });
for (emmalloc_src_files) |file_path| {
try libc_sources.append(.{
@@ -90,7 +90,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
{
// Compile libc-bottom-half.
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
try addLibcBottomHalfIncludes(comp, arena, &args);
@@ -107,7 +107,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
{
// Compile libc-top-half.
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
try addLibcTopHalfIncludes(comp, arena, &args);
@@ -124,7 +124,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
{
// Compile libdl.
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
try addLibcBottomHalfIncludes(comp, arena, &args);
@@ -141,7 +141,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
{
// Compile libwasi-emulated-process-clocks.
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
try args.appendSlice(&.{
"-I",
@@ -167,7 +167,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
{
// Compile libwasi-emulated-getpid.
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
try addLibcBottomHalfIncludes(comp, arena, &args);
@@ -184,7 +184,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
{
// Compile libwasi-emulated-mman.
- var args = std.ArrayList([]const u8).init(arena);
+ var args = std.array_list.Managed([]const u8).init(arena);
try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
try addLibcBottomHalfIncludes(comp, arena, &args);
@@ -201,7 +201,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
{
// Compile libwasi-emulated-signal.
- var bottom_args = std.ArrayList([]const u8).init(arena);
+ var bottom_args = std.array_list.Managed([]const u8).init(arena);
try addCCArgs(comp, arena, &bottom_args, .{ .want_O3 = true });
for (emulated_signal_bottom_half_src_files) |file_path| {
@@ -214,7 +214,7 @@ pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progre
});
}
- var top_args = std.ArrayList([]const u8).init(arena);
+ var top_args = std.array_list.Managed([]const u8).init(arena);
try addCCArgs(comp, arena, &top_args, .{ .want_O3 = true });
try addLibcTopHalfIncludes(comp, arena, &top_args);
try top_args.append("-D_WASI_EMULATED_SIGNAL");
@@ -259,7 +259,7 @@ const CCOptions = struct {
fn addCCArgs(
comp: *Compilation,
arena: Allocator,
- args: *std.ArrayList([]const u8),
+ args: *std.array_list.Managed([]const u8),
options: CCOptions,
) error{OutOfMemory}!void {
const target = comp.getTarget();
@@ -298,7 +298,7 @@ fn addCCArgs(
fn addLibcBottomHalfIncludes(
comp: *Compilation,
arena: Allocator,
- args: *std.ArrayList([]const u8),
+ args: *std.array_list.Managed([]const u8),
) error{OutOfMemory}!void {
try args.appendSlice(&[_][]const u8{
"-I",
@@ -370,7 +370,7 @@ fn addLibcBottomHalfIncludes(
fn addLibcTopHalfIncludes(
comp: *Compilation,
arena: Allocator,
- args: *std.ArrayList([]const u8),
+ args: *std.array_list.Managed([]const u8),
) error{OutOfMemory}!void {
try args.appendSlice(&[_][]const u8{
"-I",
diff --git a/src/link.zig b/src/link.zig
index a06e8ea9320c..09f4d38606bc 100644
--- a/src/link.zig
+++ b/src/link.zig
@@ -166,7 +166,7 @@ pub const Diags = struct {
) Allocator.Error!void {
const gpa = diags.gpa;
- var context_lines = std.ArrayList([]const u8).init(gpa);
+ var context_lines = std.array_list.Managed([]const u8).init(gpa);
defer context_lines.deinit();
var current_err: ?*Lld = null;
diff --git a/src/link/C.zig b/src/link/C.zig
index 941d33e5f749..d29a73477a0e 100644
--- a/src/link/C.zig
+++ b/src/link/C.zig
@@ -766,7 +766,7 @@ pub fn flushEmitH(zcu: *Zcu) !void {
// We collect a list of buffers to write, and write them all at once with pwritev 😎
const num_buffers = emit_h.decl_table.count() + 1;
- var all_buffers = try std.ArrayList(std.posix.iovec_const).initCapacity(zcu.gpa, num_buffers);
+ var all_buffers = try std.array_list.Managed(std.posix.iovec_const).initCapacity(zcu.gpa, num_buffers);
defer all_buffers.deinit();
var file_size: u64 = zig_h.len;
diff --git a/src/link/Coff.zig b/src/link/Coff.zig
index 1b8986d33735..eb3e98be7dde 100644
--- a/src/link/Coff.zig
+++ b/src/link/Coff.zig
@@ -771,7 +771,7 @@ fn writeAtom(coff: *Coff, atom_index: Atom.Index, code: []u8, resolve_relocs: bo
// if we are running in hot-code swapping mode or not.
// TODO: how crazy would it be to try and apply the actual image base of the loaded
// process for the in-file values rather than the Windows defaults?
- var relocs = std.ArrayList(*Relocation).init(gpa);
+ var relocs = std.array_list.Managed(*Relocation).init(gpa);
defer relocs.deinit();
if (resolve_relocs) {
@@ -1680,7 +1680,7 @@ fn flushInner(coff: *Coff, arena: Allocator, tid: Zcu.PerThread.Id) !void {
const section = coff.sections.get(@intFromEnum(sym.section_number) - 1).header;
const file_offset = section.pointer_to_raw_data + sym.value - section.virtual_address;
- var code = std.ArrayList(u8).init(gpa);
+ var code = std.array_list.Managed(u8).init(gpa);
defer code.deinit();
try code.resize(math.cast(usize, atom.size) orelse return error.Overflow);
assert(atom.size > 0);
@@ -1893,7 +1893,7 @@ pub fn updateLineNumber(coff: *Coff, pt: Zcu.PerThread, ti_id: InternPool.Tracke
fn writeBaseRelocations(coff: *Coff) !void {
const gpa = coff.base.comp.gpa;
- var page_table = std.AutoHashMap(u32, std.ArrayList(coff_util.BaseRelocation)).init(gpa);
+ var page_table = std.AutoHashMap(u32, std.array_list.Managed(coff_util.BaseRelocation)).init(gpa);
defer {
var it = page_table.valueIterator();
while (it.next()) |inner| {
@@ -1915,7 +1915,7 @@ fn writeBaseRelocations(coff: *Coff) !void {
const page = mem.alignBackward(u32, rva, coff.page_size);
const gop = try page_table.getOrPut(page);
if (!gop.found_existing) {
- gop.value_ptr.* = std.ArrayList(coff_util.BaseRelocation).init(gpa);
+ gop.value_ptr.* = std.array_list.Managed(coff_util.BaseRelocation).init(gpa);
}
try gop.value_ptr.append(.{
.offset = @as(u12, @intCast(rva - page)),
@@ -1936,7 +1936,7 @@ fn writeBaseRelocations(coff: *Coff) !void {
const page = mem.alignBackward(u32, rva, coff.page_size);
const gop = try page_table.getOrPut(page);
if (!gop.found_existing) {
- gop.value_ptr.* = std.ArrayList(coff_util.BaseRelocation).init(gpa);
+ gop.value_ptr.* = std.array_list.Managed(coff_util.BaseRelocation).init(gpa);
}
try gop.value_ptr.append(.{
.offset = @as(u12, @intCast(rva - page)),
@@ -1947,7 +1947,7 @@ fn writeBaseRelocations(coff: *Coff) !void {
}
// Sort pages by address.
- var pages = try std.ArrayList(u32).initCapacity(gpa, page_table.count());
+ var pages = try std.array_list.Managed(u32).initCapacity(gpa, page_table.count());
defer pages.deinit();
{
var it = page_table.keyIterator();
@@ -1957,7 +1957,7 @@ fn writeBaseRelocations(coff: *Coff) !void {
}
mem.sort(u32, pages.items, {}, std.sort.asc(u32));
- var buffer = std.ArrayList(u8).init(gpa);
+ var buffer = std.array_list.Managed(u8).init(gpa);
defer buffer.deinit();
for (pages.items) |page| {
@@ -2030,7 +2030,7 @@ fn writeImportTables(coff: *Coff) !void {
try coff.growSection(coff.idata_section_index.?, needed_size);
// Do the actual writes
- var buffer = std.ArrayList(u8).init(gpa);
+ var buffer = std.array_list.Managed(u8).init(gpa);
defer buffer.deinit();
try buffer.ensureTotalCapacityPrecise(needed_size);
buffer.resize(needed_size) catch unreachable;
@@ -2153,7 +2153,7 @@ fn writeStrtab(coff: *Coff) !void {
log.debug("writing strtab from 0x{x} to 0x{x}", .{ coff.strtab_offset.?, coff.strtab_offset.? + needed_size });
- var buffer = std.ArrayList(u8).init(gpa);
+ var buffer = std.array_list.Managed(u8).init(gpa);
defer buffer.deinit();
try buffer.ensureTotalCapacityPrecise(needed_size);
buffer.appendSliceAssumeCapacity(coff.strtab.buffer.items);
@@ -2179,7 +2179,7 @@ fn writeDataDirectoriesHeaders(coff: *Coff) !void {
fn writeHeader(coff: *Coff) !void {
const target = &coff.base.comp.root_mod.resolved_target.result;
const gpa = coff.base.comp.gpa;
- var buffer = std.ArrayList(u8).init(gpa);
+ var buffer = std.array_list.Managed(u8).init(gpa);
defer buffer.deinit();
const writer = buffer.writer();
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
index be6c050e5ef3..7ea87c4cedfc 100644
--- a/src/link/Elf.zig
+++ b/src/link/Elf.zig
@@ -882,7 +882,7 @@ fn flushInner(self: *Elf, arena: Allocator, tid: Zcu.PerThread.Id) !void {
self.rela_plt.clearRetainingCapacity();
if (self.zigObjectPtr()) |zo| {
- var undefs: std.AutoArrayHashMap(SymbolResolver.Index, std.ArrayList(Ref)) = .init(gpa);
+ var undefs: std.AutoArrayHashMap(SymbolResolver.Index, std.array_list.Managed(Ref)) = .init(gpa);
defer {
for (undefs.values()) |*refs| refs.deinit();
undefs.deinit();
@@ -1326,7 +1326,7 @@ fn scanRelocs(self: *Elf) !void {
const gpa = self.base.comp.gpa;
const shared_objects = self.shared_objects.values();
- var undefs: std.AutoArrayHashMap(SymbolResolver.Index, std.ArrayList(Ref)) = .init(gpa);
+ var undefs: std.AutoArrayHashMap(SymbolResolver.Index, std.array_list.Managed(Ref)) = .init(gpa);
defer {
for (undefs.values()) |*refs| refs.deinit();
undefs.deinit();
@@ -1849,7 +1849,7 @@ pub fn updateMergeSectionSizes(self: *Elf) !void {
pub fn writeMergeSections(self: *Elf) !void {
const gpa = self.base.comp.gpa;
- var buffer = std.ArrayList(u8).init(gpa);
+ var buffer = std.array_list.Managed(u8).init(gpa);
defer buffer.deinit();
for (self.merge_sections.items) |*msec| {
@@ -2214,7 +2214,7 @@ fn sortInitFini(self: *Elf) !void {
}
if (!is_init_fini and !is_ctor_dtor) continue;
- var entries = std.ArrayList(Entry).init(gpa);
+ var entries = std.array_list.Managed(Entry).init(gpa);
try entries.ensureTotalCapacityPrecise(atom_list.atoms.keys().len);
defer entries.deinit();
@@ -2771,7 +2771,7 @@ pub fn allocateAllocSections(self: *Elf) !void {
// virtual and file offsets. However, the simple one will do for one
// as we are more interested in quick turnaround and compatibility
// with `findFreeSpace` mechanics than anything else.
- const Cover = std.ArrayList(u32);
+ const Cover = std.array_list.Managed(u32);
const gpa = self.base.comp.gpa;
var covers: [max_number_of_object_segments]Cover = undefined;
for (&covers) |*cover| {
@@ -2999,13 +2999,13 @@ fn allocateSpecialPhdrs(self: *Elf) void {
fn writeAtoms(self: *Elf) !void {
const gpa = self.base.comp.gpa;
- var undefs: std.AutoArrayHashMap(SymbolResolver.Index, std.ArrayList(Ref)) = .init(gpa);
+ var undefs: std.AutoArrayHashMap(SymbolResolver.Index, std.array_list.Managed(Ref)) = .init(gpa);
defer {
for (undefs.values()) |*refs| refs.deinit();
undefs.deinit();
}
- var buffer = std.ArrayList(u8).init(gpa);
+ var buffer = std.array_list.Managed(u8).init(gpa);
defer buffer.deinit();
const slice = self.sections.slice();
@@ -3048,7 +3048,7 @@ pub fn updateSymtabSize(self: *Elf) !void {
const gpa = self.base.comp.gpa;
const shared_objects = self.shared_objects.values();
- var files = std.ArrayList(File.Index).init(gpa);
+ var files = std.array_list.Managed(File.Index).init(gpa);
defer files.deinit();
try files.ensureTotalCapacityPrecise(self.objects.items.len + shared_objects.len + 2);
@@ -3166,7 +3166,7 @@ fn writeSyntheticSections(self: *Elf) !void {
if (self.section_indexes.verneed) |shndx| {
const shdr = slice.items(.shdr)[shndx];
- var buffer = try std.ArrayList(u8).initCapacity(gpa, self.verneed.size());
+ var buffer = try std.array_list.Managed(u8).initCapacity(gpa, self.verneed.size());
defer buffer.deinit();
try self.verneed.write(buffer.writer());
try self.pwriteAll(buffer.items, shdr.sh_offset);
@@ -3174,7 +3174,7 @@ fn writeSyntheticSections(self: *Elf) !void {
if (self.section_indexes.dynamic) |shndx| {
const shdr = slice.items(.shdr)[shndx];
- var buffer = try std.ArrayList(u8).initCapacity(gpa, self.dynamic.size(self));
+ var buffer = try std.array_list.Managed(u8).initCapacity(gpa, self.dynamic.size(self));
defer buffer.deinit();
try self.dynamic.write(self, buffer.writer());
try self.pwriteAll(buffer.items, shdr.sh_offset);
@@ -3182,7 +3182,7 @@ fn writeSyntheticSections(self: *Elf) !void {
if (self.section_indexes.dynsymtab) |shndx| {
const shdr = slice.items(.shdr)[shndx];
- var buffer = try std.ArrayList(u8).initCapacity(gpa, self.dynsym.size());
+ var buffer = try std.array_list.Managed(u8).initCapacity(gpa, self.dynsym.size());
defer buffer.deinit();
try self.dynsym.write(self, buffer.writer());
try self.pwriteAll(buffer.items, shdr.sh_offset);
@@ -3201,7 +3201,7 @@ fn writeSyntheticSections(self: *Elf) !void {
};
const shdr = slice.items(.shdr)[shndx];
const sh_size = try self.cast(usize, shdr.sh_size);
- var buffer = try std.ArrayList(u8).initCapacity(gpa, @intCast(sh_size - existing_size));
+ var buffer = try std.array_list.Managed(u8).initCapacity(gpa, @intCast(sh_size - existing_size));
defer buffer.deinit();
try eh_frame.writeEhFrame(self, buffer.writer());
assert(buffer.items.len == sh_size - existing_size);
@@ -3211,7 +3211,7 @@ fn writeSyntheticSections(self: *Elf) !void {
if (self.section_indexes.eh_frame_hdr) |shndx| {
const shdr = slice.items(.shdr)[shndx];
const sh_size = try self.cast(usize, shdr.sh_size);
- var buffer = try std.ArrayList(u8).initCapacity(gpa, sh_size);
+ var buffer = try std.array_list.Managed(u8).initCapacity(gpa, sh_size);
defer buffer.deinit();
try eh_frame.writeEhFrameHdr(self, buffer.writer());
try self.pwriteAll(buffer.items, shdr.sh_offset);
@@ -3219,7 +3219,7 @@ fn writeSyntheticSections(self: *Elf) !void {
if (self.section_indexes.got) |index| {
const shdr = slice.items(.shdr)[index];
- var buffer = try std.ArrayList(u8).initCapacity(gpa, self.got.size(self));
+ var buffer = try std.array_list.Managed(u8).initCapacity(gpa, self.got.size(self));
defer buffer.deinit();
try self.got.write(self, buffer.writer());
try self.pwriteAll(buffer.items, shdr.sh_offset);
@@ -3235,7 +3235,7 @@ fn writeSyntheticSections(self: *Elf) !void {
if (self.section_indexes.plt) |shndx| {
const shdr = slice.items(.shdr)[shndx];
- var buffer = try std.ArrayList(u8).initCapacity(gpa, self.plt.size(self));
+ var buffer = try std.array_list.Managed(u8).initCapacity(gpa, self.plt.size(self));
defer buffer.deinit();
try self.plt.write(self, buffer.writer());
try self.pwriteAll(buffer.items, shdr.sh_offset);
@@ -3243,7 +3243,7 @@ fn writeSyntheticSections(self: *Elf) !void {
if (self.section_indexes.got_plt) |shndx| {
const shdr = slice.items(.shdr)[shndx];
- var buffer = try std.ArrayList(u8).initCapacity(gpa, self.got_plt.size(self));
+ var buffer = try std.array_list.Managed(u8).initCapacity(gpa, self.got_plt.size(self));
defer buffer.deinit();
try self.got_plt.write(self, buffer.writer());
try self.pwriteAll(buffer.items, shdr.sh_offset);
@@ -3251,7 +3251,7 @@ fn writeSyntheticSections(self: *Elf) !void {
if (self.section_indexes.plt_got) |shndx| {
const shdr = slice.items(.shdr)[shndx];
- var buffer = try std.ArrayList(u8).initCapacity(gpa, self.plt_got.size(self));
+ var buffer = try std.array_list.Managed(u8).initCapacity(gpa, self.plt_got.size(self));
defer buffer.deinit();
try self.plt_got.write(self, buffer.writer());
try self.pwriteAll(buffer.items, shdr.sh_offset);
diff --git a/src/link/Elf/Atom.zig b/src/link/Elf/Atom.zig
index 4bb88f2af3a1..e3d17c056324 100644
--- a/src/link/Elf/Atom.zig
+++ b/src/link/Elf/Atom.zig
@@ -221,7 +221,7 @@ pub fn relocs(self: Atom, elf_file: *Elf) []const elf.Elf64_Rela {
}
}
-pub fn writeRelocs(self: Atom, elf_file: *Elf, out_relocs: *std.ArrayList(elf.Elf64_Rela)) !void {
+pub fn writeRelocs(self: Atom, elf_file: *Elf, out_relocs: *std.array_list.Managed(elf.Elf64_Rela)) !void {
relocs_log.debug("0x{x}: {s}", .{ self.address(elf_file), self.name(elf_file) });
const cpu_arch = elf_file.getTarget().cpu.arch;
@@ -607,7 +607,7 @@ fn reportUndefined(
};
const gop = try undefs.getOrPut(idx);
if (!gop.found_existing) {
- gop.value_ptr.* = std.ArrayList(Elf.Ref).init(gpa);
+ gop.value_ptr.* = std.array_list.Managed(Elf.Ref).init(gpa);
}
try gop.value_ptr.append(.{ .index = self.atom_index, .file = self.file_index });
return true;
diff --git a/src/link/Elf/AtomList.zig b/src/link/Elf/AtomList.zig
index 513b0c372ff0..0caa69ca9074 100644
--- a/src/link/Elf/AtomList.zig
+++ b/src/link/Elf/AtomList.zig
@@ -89,7 +89,7 @@ pub fn allocate(list: *AtomList, elf_file: *Elf) !void {
list.dirty = false;
}
-pub fn write(list: AtomList, buffer: *std.ArrayList(u8), undefs: anytype, elf_file: *Elf) !void {
+pub fn write(list: AtomList, buffer: *std.array_list.Managed(u8), undefs: anytype, elf_file: *Elf) !void {
const gpa = elf_file.base.comp.gpa;
const osec = elf_file.sections.items(.shdr)[list.output_section_index];
assert(osec.sh_type != elf.SHT_NOBITS);
@@ -126,7 +126,7 @@ pub fn write(list: AtomList, buffer: *std.ArrayList(u8), undefs: anytype, elf_fi
buffer.clearRetainingCapacity();
}
-pub fn writeRelocatable(list: AtomList, buffer: *std.ArrayList(u8), elf_file: *Elf) !void {
+pub fn writeRelocatable(list: AtomList, buffer: *std.array_list.Managed(u8), elf_file: *Elf) !void {
const gpa = elf_file.base.comp.gpa;
const osec = elf_file.sections.items(.shdr)[list.output_section_index];
assert(osec.sh_type != elf.SHT_NOBITS);
diff --git a/src/link/Elf/SharedObject.zig b/src/link/Elf/SharedObject.zig
index b5c8773f2cca..a2c86e5c1efd 100644
--- a/src/link/Elf/SharedObject.zig
+++ b/src/link/Elf/SharedObject.zig
@@ -423,7 +423,7 @@ pub fn initSymbolAliases(self: *SharedObject, elf_file: *Elf) !void {
const comp = elf_file.base.comp;
const gpa = comp.gpa;
- var aliases = std.ArrayList(Symbol.Index).init(gpa);
+ var aliases = std.array_list.Managed(Symbol.Index).init(gpa);
defer aliases.deinit();
try aliases.ensureTotalCapacityPrecise(self.symbols.items.len);
diff --git a/src/link/Elf/eh_frame.zig b/src/link/Elf/eh_frame.zig
index 98284d7840de..ee1e0c5f5d8c 100644
--- a/src/link/Elf/eh_frame.zig
+++ b/src/link/Elf/eh_frame.zig
@@ -195,7 +195,7 @@ pub fn calcEhFrameSize(elf_file: *Elf) !usize {
break :blk math.cast(usize, sym.atom(elf_file).?.size) orelse return error.Overflow;
} else 0;
- var cies = std.ArrayList(Cie).init(gpa);
+ var cies = std.array_list.Managed(Cie).init(gpa);
defer cies.deinit();
for (elf_file.objects.items) |index| {
@@ -413,7 +413,7 @@ fn emitReloc(elf_file: *Elf, r_offset: u64, sym: *const Symbol, rel: elf.Elf64_R
};
}
-pub fn writeEhFrameRelocs(elf_file: *Elf, relocs: *std.ArrayList(elf.Elf64_Rela)) !void {
+pub fn writeEhFrameRelocs(elf_file: *Elf, relocs: *std.array_list.Managed(elf.Elf64_Rela)) !void {
relocs_log.debug("{x}: .eh_frame", .{
elf_file.sections.items(.shdr)[elf_file.section_indexes.eh_frame.?].sh_addr,
});
@@ -493,7 +493,7 @@ pub fn writeEhFrameHdr(elf_file: *Elf, writer: anytype) !void {
}
};
- var entries = std.ArrayList(Entry).init(gpa);
+ var entries = std.array_list.Managed(Entry).init(gpa);
defer entries.deinit();
try entries.ensureTotalCapacityPrecise(num_fdes);
diff --git a/src/link/Elf/gc.zig b/src/link/Elf/gc.zig
index 61eb2098da5b..92d80580b837 100644
--- a/src/link/Elf/gc.zig
+++ b/src/link/Elf/gc.zig
@@ -1,14 +1,14 @@
pub fn gcAtoms(elf_file: *Elf) !void {
const comp = elf_file.base.comp;
const gpa = comp.gpa;
- var roots = std.ArrayList(*Atom).init(gpa);
+ var roots = std.array_list.Managed(*Atom).init(gpa);
defer roots.deinit();
try collectRoots(&roots, elf_file);
mark(roots, elf_file);
prune(elf_file);
}
-fn collectRoots(roots: *std.ArrayList(*Atom), elf_file: *Elf) !void {
+fn collectRoots(roots: *std.array_list.Managed(*Atom), elf_file: *Elf) !void {
if (elf_file.linkerDefinedPtr()) |obj| {
if (obj.entrySymbol(elf_file)) |sym| {
try markSymbol(sym, roots, elf_file);
@@ -82,7 +82,7 @@ fn collectRoots(roots: *std.ArrayList(*Atom), elf_file: *Elf) !void {
}
}
-fn markSymbol(sym: *Symbol, roots: *std.ArrayList(*Atom), elf_file: *Elf) !void {
+fn markSymbol(sym: *Symbol, roots: *std.array_list.Managed(*Atom), elf_file: *Elf) !void {
if (sym.mergeSubsection(elf_file)) |msub| {
msub.alive = true;
return;
@@ -133,7 +133,7 @@ fn markLive(atom: *Atom, elf_file: *Elf) void {
}
}
-fn mark(roots: std.ArrayList(*Atom), elf_file: *Elf) void {
+fn mark(roots: std.array_list.Managed(*Atom), elf_file: *Elf) void {
for (roots.items) |root| {
gc_track_live_log.debug("root atom({d})", .{root.atom_index});
markLive(root, elf_file);
diff --git a/src/link/Elf/relocatable.zig b/src/link/Elf/relocatable.zig
index 7599e8290826..58f18bd08bf8 100644
--- a/src/link/Elf/relocatable.zig
+++ b/src/link/Elf/relocatable.zig
@@ -44,7 +44,7 @@ pub fn flushStaticLib(elf_file: *Elf, comp: *Compilation) !void {
try zig_object.readFileContents(elf_file);
}
- var files = std.ArrayList(File.Index).init(gpa);
+ var files = std.array_list.Managed(File.Index).init(gpa);
defer files.deinit();
try files.ensureTotalCapacityPrecise(elf_file.objects.items.len + 1);
if (elf_file.zigObjectPtr()) |zig_object| files.appendAssumeCapacity(zig_object.index);
@@ -100,7 +100,7 @@ pub fn flushStaticLib(elf_file: *Elf, comp: *Compilation) !void {
state_log.debug("ar_strtab\n{f}\n", .{ar_strtab});
}
- var buffer = std.ArrayList(u8).init(gpa);
+ var buffer = std.array_list.Managed(u8).init(gpa);
defer buffer.deinit();
try buffer.ensureTotalCapacityPrecise(total_size);
@@ -347,7 +347,7 @@ fn allocateAllocSections(elf_file: *Elf) !void {
fn writeAtoms(elf_file: *Elf) !void {
const gpa = elf_file.base.comp.gpa;
- var buffer = std.ArrayList(u8).init(gpa);
+ var buffer = std.array_list.Managed(u8).init(gpa);
defer buffer.deinit();
const slice = elf_file.sections.slice();
@@ -377,7 +377,7 @@ fn writeSyntheticSections(elf_file: *Elf) !void {
const num_relocs = math.cast(usize, @divExact(shdr.sh_size, shdr.sh_entsize)) orelse
return error.Overflow;
- var relocs = try std.ArrayList(elf.Elf64_Rela).initCapacity(gpa, num_relocs);
+ var relocs = try std.array_list.Managed(elf.Elf64_Rela).initCapacity(gpa, num_relocs);
defer relocs.deinit();
for (atom_list.items) |ref| {
@@ -407,7 +407,7 @@ fn writeSyntheticSections(elf_file: *Elf) !void {
};
const shdr = slice.items(.shdr)[shndx];
const sh_size = math.cast(usize, shdr.sh_size) orelse return error.Overflow;
- var buffer = try std.ArrayList(u8).initCapacity(gpa, @intCast(sh_size - existing_size));
+ var buffer = try std.array_list.Managed(u8).initCapacity(gpa, @intCast(sh_size - existing_size));
defer buffer.deinit();
try eh_frame.writeEhFrameRelocatable(elf_file, buffer.writer());
log.debug("writing .eh_frame from 0x{x} to 0x{x}", .{
@@ -421,7 +421,7 @@ fn writeSyntheticSections(elf_file: *Elf) !void {
const shdr = slice.items(.shdr)[shndx];
const num_relocs = math.cast(usize, @divExact(shdr.sh_size, shdr.sh_entsize)) orelse
return error.Overflow;
- var relocs = try std.ArrayList(elf.Elf64_Rela).initCapacity(gpa, num_relocs);
+ var relocs = try std.array_list.Managed(elf.Elf64_Rela).initCapacity(gpa, num_relocs);
defer relocs.deinit();
try eh_frame.writeEhFrameRelocs(elf_file, &relocs);
assert(relocs.items.len == num_relocs);
@@ -446,7 +446,7 @@ fn writeGroups(elf_file: *Elf) !void {
for (elf_file.group_sections.items) |cgs| {
const shdr = elf_file.sections.items(.shdr)[cgs.shndx];
const sh_size = math.cast(usize, shdr.sh_size) orelse return error.Overflow;
- var buffer = try std.ArrayList(u8).initCapacity(gpa, sh_size);
+ var buffer = try std.array_list.Managed(u8).initCapacity(gpa, sh_size);
defer buffer.deinit();
try cgs.write(elf_file, buffer.writer());
assert(buffer.items.len == sh_size);
diff --git a/src/link/Elf/synthetic_sections.zig b/src/link/Elf/synthetic_sections.zig
index efad44f68b57..d860ba6944e5 100644
--- a/src/link/Elf/synthetic_sections.zig
+++ b/src/link/Elf/synthetic_sections.zig
@@ -18,7 +18,7 @@ pub const DynamicSection = struct {
if (rpath_list.len == 0) return;
const comp = elf_file.base.comp;
const gpa = comp.gpa;
- var rpath = std.ArrayList(u8).init(gpa);
+ var rpath = std.array_list.Managed(u8).init(gpa);
defer rpath.deinit();
for (rpath_list, 0..) |path, i| {
if (i > 0) try rpath.append(':');
@@ -1350,7 +1350,7 @@ pub const VerneedSection = struct {
const comp = elf_file.base.comp;
const gpa = comp.gpa;
- var verneed = std.ArrayList(VersionedSymbol).init(gpa);
+ var verneed = std.array_list.Managed(VersionedSymbol).init(gpa);
defer verneed.deinit();
try verneed.ensureTotalCapacity(dynsyms.len);
diff --git a/src/link/Lld.zig b/src/link/Lld.zig
index 3d7938c52ed3..48872f7077f9 100644
--- a/src/link/Lld.zig
+++ b/src/link/Lld.zig
@@ -409,7 +409,7 @@ fn coffLink(lld: *Lld, arena: Allocator) !void {
);
} else {
// Create an LLD command line and invoke it.
- var argv = std.ArrayList([]const u8).init(gpa);
+ var argv = std.array_list.Managed([]const u8).init(gpa);
defer argv.deinit();
// We will invoke ourselves as a child process to gain access to LLD.
// This is necessary because LLD does not behave properly as a library -
@@ -863,7 +863,7 @@ fn elfLink(lld: *Lld, arena: Allocator) !void {
);
} else {
// Create an LLD command line and invoke it.
- var argv = std.ArrayList([]const u8).init(gpa);
+ var argv = std.array_list.Managed([]const u8).init(gpa);
defer argv.deinit();
// We will invoke ourselves as a child process to gain access to LLD.
// This is necessary because LLD does not behave properly as a library -
@@ -1412,7 +1412,7 @@ fn wasmLink(lld: *Lld, arena: Allocator) !void {
);
} else {
// Create an LLD command line and invoke it.
- var argv = std.ArrayList([]const u8).init(gpa);
+ var argv = std.array_list.Managed([]const u8).init(gpa);
defer argv.deinit();
// We will invoke ourselves as a child process to gain access to LLD.
// This is necessary because LLD does not behave properly as a library -
diff --git a/src/link/MachO.zig b/src/link/MachO.zig
index a3845727aa6f..434c27bfa357 100644
--- a/src/link/MachO.zig
+++ b/src/link/MachO.zig
@@ -359,7 +359,7 @@ pub fn flush(
if (self.base.isStaticLib()) return relocatable.flushStaticLib(self, comp, zcu_obj_path);
if (self.base.isObject()) return relocatable.flushObject(self, comp, zcu_obj_path);
- var positionals = std.ArrayList(link.Input).init(gpa);
+ var positionals = std.array_list.Managed(link.Input).init(gpa);
defer positionals.deinit();
try positionals.ensureUnusedCapacity(comp.link_inputs.len);
@@ -404,7 +404,7 @@ pub fn flush(
diags.addParseError(link_input.path().?, "failed to read input file: {s}", .{@errorName(err)});
}
- var system_libs = std.ArrayList(SystemLib).init(gpa);
+ var system_libs = std.array_list.Managed(SystemLib).init(gpa);
defer system_libs.deinit();
// frameworks
@@ -632,7 +632,7 @@ fn dumpArgv(self: *MachO, comp: *Compilation) !void {
break :p try p.toString(arena);
} else null;
- var argv = std.ArrayList([]const u8).init(arena);
+ var argv = std.array_list.Managed([]const u8).init(arena);
try argv.append("zig");
@@ -827,8 +827,8 @@ pub fn resolveLibSystem(
) !void {
const diags = &self.base.comp.link_diags;
- var test_path = std.ArrayList(u8).init(arena);
- var checked_paths = std.ArrayList([]const u8).init(arena);
+ var test_path = std.array_list.Managed(u8).init(arena);
+ var checked_paths = std.array_list.Managed([]const u8).init(arena);
success: {
if (self.sdk_layout) |sdk_layout| switch (sdk_layout) {
@@ -1065,8 +1065,8 @@ fn isHoisted(self: *MachO, install_name: []const u8) bool {
/// TODO delete this, libraries must be instead resolved when instantiating the compilation pipeline
fn accessLibPath(
arena: Allocator,
- test_path: *std.ArrayList(u8),
- checked_paths: *std.ArrayList([]const u8),
+ test_path: *std.array_list.Managed(u8),
+ checked_paths: *std.array_list.Managed([]const u8),
search_dir: []const u8,
name: []const u8,
) !bool {
@@ -1088,8 +1088,8 @@ fn accessLibPath(
fn accessFrameworkPath(
arena: Allocator,
- test_path: *std.ArrayList(u8),
- checked_paths: *std.ArrayList([]const u8),
+ test_path: *std.array_list.Managed(u8),
+ checked_paths: *std.array_list.Managed([]const u8),
search_dir: []const u8,
name: []const u8,
) !bool {
@@ -1138,7 +1138,7 @@ fn parseDependentDylibs(self: *MachO) !void {
while (index < self.dylibs.items.len) : (index += 1) {
const dylib_index = self.dylibs.items[index];
- var dependents = std.ArrayList(File.Index).init(gpa);
+ var dependents = std.array_list.Managed(File.Index).init(gpa);
defer dependents.deinit();
try dependents.ensureTotalCapacityPrecise(self.getFile(dylib_index).?.dylib.dependents.items.len);
@@ -1151,8 +1151,8 @@ fn parseDependentDylibs(self: *MachO) !void {
// 3. If name is a relative path, substitute @rpath, @loader_path, @executable_path with
// dependees list of rpaths, and search there.
// 4. Finally, just search the provided relative path directly in CWD.
- var test_path = std.ArrayList(u8).init(arena);
- var checked_paths = std.ArrayList([]const u8).init(arena);
+ var test_path = std.array_list.Managed(u8).init(arena);
+ var checked_paths = std.array_list.Managed([]const u8).init(arena);
const full_path = full_path: {
{
@@ -1550,7 +1550,7 @@ fn reportUndefs(self: *MachO) !void {
const max_notes = 4;
// We will sort by name, and then by file to ensure deterministic output.
- var keys = try std.ArrayList(SymbolResolver.Index).initCapacity(gpa, self.undefs.keys().len);
+ var keys = try std.array_list.Managed(SymbolResolver.Index).initCapacity(gpa, self.undefs.keys().len);
defer keys.deinit();
keys.appendSliceAssumeCapacity(self.undefs.keys());
self.sortGlobalSymbolsByName(keys.items);
@@ -1813,7 +1813,7 @@ pub fn sortSections(self: *MachO) !void {
const gpa = self.base.comp.gpa;
- var entries = try std.ArrayList(Entry).initCapacity(gpa, self.sections.slice().len);
+ var entries = try std.array_list.Managed(Entry).initCapacity(gpa, self.sections.slice().len);
defer entries.deinit();
for (0..self.sections.slice().len) |index| {
entries.appendAssumeCapacity(.{ .index = @intCast(index) });
@@ -2123,7 +2123,7 @@ fn initSegments(self: *MachO) !void {
}
};
- var entries = try std.ArrayList(Entry).initCapacity(gpa, self.segments.items.len);
+ var entries = try std.array_list.Managed(Entry).initCapacity(gpa, self.segments.items.len);
defer entries.deinit();
for (0..self.segments.items.len) |index| {
entries.appendAssumeCapacity(.{ .index = @intCast(index) });
@@ -2689,7 +2689,7 @@ pub fn writeDataInCode(self: *MachO) !void {
defer tracy.end();
const gpa = self.base.comp.gpa;
const cmd = self.data_in_code_cmd;
- var buffer = try std.ArrayList(u8).initCapacity(gpa, self.data_in_code.size());
+ var buffer = try std.array_list.Managed(u8).initCapacity(gpa, self.data_in_code.size());
defer buffer.deinit();
try self.data_in_code.write(self, buffer.writer());
try self.pwriteAll(buffer.items, cmd.dataoff);
@@ -2701,7 +2701,7 @@ fn writeIndsymtab(self: *MachO) !void {
const gpa = self.base.comp.gpa;
const cmd = self.dysymtab_cmd;
const needed_size = cmd.nindirectsyms * @sizeOf(u32);
- var buffer = try std.ArrayList(u8).initCapacity(gpa, needed_size);
+ var buffer = try std.array_list.Managed(u8).initCapacity(gpa, needed_size);
defer buffer.deinit();
try self.indsymtab.write(self, buffer.writer());
try self.pwriteAll(buffer.items, cmd.indirectsymoff);
@@ -2746,7 +2746,7 @@ fn calcSymtabSize(self: *MachO) !void {
const gpa = self.base.comp.gpa;
- var files = std.ArrayList(File.Index).init(gpa);
+ var files = std.array_list.Managed(File.Index).init(gpa);
defer files.deinit();
try files.ensureTotalCapacityPrecise(self.objects.items.len + self.dylibs.items.len + 2);
if (self.zig_object) |index| files.appendAssumeCapacity(index);
@@ -3015,7 +3015,7 @@ pub fn writeCodeSignature(self: *MachO, code_sig: *CodeSignature) !void {
const seg = self.getTextSegment();
const offset = self.codesig_cmd.dataoff;
- var buffer = std.ArrayList(u8).init(self.base.comp.gpa);
+ var buffer = std.array_list.Managed(u8).init(self.base.comp.gpa);
defer buffer.deinit();
try buffer.ensureTotalCapacityPrecise(code_sig.size());
try code_sig.writeAdhocSignature(self, .{
@@ -3837,7 +3837,7 @@ fn reportDuplicates(self: *MachO) error{ HasDuplicates, OutOfMemory }!void {
const max_notes = 3;
// We will sort by name, and then by file to ensure deterministic output.
- var keys = try std.ArrayList(SymbolResolver.Index).initCapacity(gpa, self.dupes.keys().len);
+ var keys = try std.array_list.Managed(SymbolResolver.Index).initCapacity(gpa, self.dupes.keys().len);
defer keys.deinit();
keys.appendSliceAssumeCapacity(self.dupes.keys());
self.sortGlobalSymbolsByName(keys.items);
@@ -4269,7 +4269,7 @@ pub const Platform = struct {
/// Caller owns the memory.
pub fn allocPrintTarget(plat: Platform, gpa: Allocator, cpu_arch: std.Target.Cpu.Arch) error{OutOfMemory}![]u8 {
- var buffer = std.ArrayList(u8).init(gpa);
+ var buffer = std.array_list.Managed(u8).init(gpa);
defer buffer.deinit();
try buffer.writer().print("{f}", .{plat.fmtTarget(cpu_arch)});
return buffer.toOwnedSlice();
diff --git a/src/link/MachO/CodeSignature.zig b/src/link/MachO/CodeSignature.zig
index c8a092eab6f9..67365050377b 100644
--- a/src/link/MachO/CodeSignature.zig
+++ b/src/link/MachO/CodeSignature.zig
@@ -276,7 +276,7 @@ pub fn writeAdhocSignature(
.count = 0,
};
- var blobs = std.ArrayList(Blob).init(allocator);
+ var blobs = std.array_list.Managed(Blob).init(allocator);
defer blobs.deinit();
self.code_directory.inner.execSegBase = opts.exec_seg_base;
@@ -304,7 +304,7 @@ pub fn writeAdhocSignature(
var hash: [hash_size]u8 = undefined;
if (self.requirements) |*req| {
- var buf = std.ArrayList(u8).init(allocator);
+ var buf = std.array_list.Managed(u8).init(allocator);
defer buf.deinit();
try req.write(buf.writer());
Sha256.hash(buf.items, &hash, .{});
@@ -316,7 +316,7 @@ pub fn writeAdhocSignature(
}
if (self.entitlements) |*ents| {
- var buf = std.ArrayList(u8).init(allocator);
+ var buf = std.array_list.Managed(u8).init(allocator);
defer buf.deinit();
try ents.write(buf.writer());
Sha256.hash(buf.items, &hash, .{});
diff --git a/src/link/MachO/Dylib.zig b/src/link/MachO/Dylib.zig
index 5bb5025e9ee6..8dda3a74ac7c 100644
--- a/src/link/MachO/Dylib.zig
+++ b/src/link/MachO/Dylib.zig
@@ -814,7 +814,7 @@ pub const TargetMatcher = struct {
const targets = switch (tbd) {
.v3 => |v3| blk: {
- var targets = std.ArrayList([]const u8).init(arena.allocator());
+ var targets = std.array_list.Managed([]const u8).init(arena.allocator());
for (v3.archs) |arch| {
if (mem.eql(u8, v3.platform, "zippered")) {
// From Xcode 10.3 → 11.3.1, macos SDK .tbd files specify platform as 'zippered'
diff --git a/src/link/MachO/InternalObject.zig b/src/link/MachO/InternalObject.zig
index e9355591e4ca..d284df299a31 100644
--- a/src/link/MachO/InternalObject.zig
+++ b/src/link/MachO/InternalObject.zig
@@ -402,7 +402,7 @@ pub fn resolveLiterals(self: *InternalObject, lp: *MachO.LiteralPool, macho_file
const gpa = macho_file.base.comp.gpa;
- var buffer = std.ArrayList(u8).init(gpa);
+ var buffer = std.array_list.Managed(u8).init(gpa);
defer buffer.deinit();
const slice = self.sections.slice();
diff --git a/src/link/MachO/Object.zig b/src/link/MachO/Object.zig
index 6b1dac3e72c1..b0687330a3c2 100644
--- a/src/link/MachO/Object.zig
+++ b/src/link/MachO/Object.zig
@@ -199,7 +199,7 @@ pub fn parse(self: *Object, macho_file: *MachO) !void {
}
};
- var nlists = try std.ArrayList(NlistIdx).initCapacity(gpa, self.symtab.items(.nlist).len);
+ var nlists = try std.array_list.Managed(NlistIdx).initCapacity(gpa, self.symtab.items(.nlist).len);
defer nlists.deinit();
for (self.symtab.items(.nlist), 0..) |nlist, i| {
if (nlist.stab() or !nlist.sect()) continue;
@@ -633,7 +633,7 @@ pub fn resolveLiterals(self: *Object, lp: *MachO.LiteralPool, macho_file: *MachO
const gpa = macho_file.base.comp.gpa;
const file = macho_file.getFileHandle(self.file_handle);
- var buffer = std.ArrayList(u8).init(gpa);
+ var buffer = std.array_list.Managed(u8).init(gpa);
defer buffer.deinit();
var sections_data = std.AutoHashMap(u32, []const u8).init(gpa);
diff --git a/src/link/MachO/dead_strip.zig b/src/link/MachO/dead_strip.zig
index 79ff4e17073c..7c33a769879d 100644
--- a/src/link/MachO/dead_strip.zig
+++ b/src/link/MachO/dead_strip.zig
@@ -1,12 +1,12 @@
pub fn gcAtoms(macho_file: *MachO) !void {
const gpa = macho_file.base.comp.gpa;
- var objects = try std.ArrayList(File.Index).initCapacity(gpa, macho_file.objects.items.len + 1);
+ var objects = try std.array_list.Managed(File.Index).initCapacity(gpa, macho_file.objects.items.len + 1);
defer objects.deinit();
for (macho_file.objects.items) |index| objects.appendAssumeCapacity(index);
if (macho_file.internal_object) |index| objects.appendAssumeCapacity(index);
- var roots = std.ArrayList(*Atom).init(gpa);
+ var roots = std.array_list.Managed(*Atom).init(gpa);
defer roots.deinit();
try collectRoots(&roots, objects.items, macho_file);
@@ -14,7 +14,7 @@ pub fn gcAtoms(macho_file: *MachO) !void {
prune(objects.items, macho_file);
}
-fn collectRoots(roots: *std.ArrayList(*Atom), objects: []const File.Index, macho_file: *MachO) !void {
+fn collectRoots(roots: *std.array_list.Managed(*Atom), objects: []const File.Index, macho_file: *MachO) !void {
for (objects) |index| {
const object = macho_file.getFile(index).?;
for (object.getSymbols(), 0..) |*sym, i| {
@@ -76,7 +76,7 @@ fn collectRoots(roots: *std.ArrayList(*Atom), objects: []const File.Index, macho
}
}
-fn markSymbol(sym: *Symbol, roots: *std.ArrayList(*Atom), macho_file: *MachO) !void {
+fn markSymbol(sym: *Symbol, roots: *std.array_list.Managed(*Atom), macho_file: *MachO) !void {
const atom = sym.getAtom(macho_file) orelse return;
if (markAtom(atom)) try roots.append(atom);
}
diff --git a/src/link/MachO/dyld_info/Rebase.zig b/src/link/MachO/dyld_info/Rebase.zig
index 13764546f656..dae0d3ffeb09 100644
--- a/src/link/MachO/dyld_info/Rebase.zig
+++ b/src/link/MachO/dyld_info/Rebase.zig
@@ -25,7 +25,7 @@ pub fn updateSize(rebase: *Rebase, macho_file: *MachO) !void {
const gpa = macho_file.base.comp.gpa;
- var objects = try std.ArrayList(File.Index).initCapacity(gpa, macho_file.objects.items.len + 2);
+ var objects = try std.array_list.Managed(File.Index).initCapacity(gpa, macho_file.objects.items.len + 2);
defer objects.deinit();
objects.appendSliceAssumeCapacity(macho_file.objects.items);
if (macho_file.getZigObject()) |obj| objects.appendAssumeCapacity(obj.index);
diff --git a/src/link/MachO/dyld_info/Trie.zig b/src/link/MachO/dyld_info/Trie.zig
index d96f2a54c880..18ea348e7a4e 100644
--- a/src/link/MachO/dyld_info/Trie.zig
+++ b/src/link/MachO/dyld_info/Trie.zig
@@ -134,7 +134,7 @@ fn finalize(self: *Trie, allocator: Allocator) !void {
const tracy = trace(@src());
defer tracy.end();
- var ordered_nodes = std.ArrayList(Node.Index).init(allocator);
+ var ordered_nodes = std.array_list.Managed(Node.Index).init(allocator);
defer ordered_nodes.deinit();
try ordered_nodes.ensureTotalCapacityPrecise(self.nodes.items(.is_terminal).len);
diff --git a/src/link/MachO/dyld_info/bind.zig b/src/link/MachO/dyld_info/bind.zig
index 9711f689ea77..bc5484a846dc 100644
--- a/src/link/MachO/dyld_info/bind.zig
+++ b/src/link/MachO/dyld_info/bind.zig
@@ -34,7 +34,7 @@ pub const Bind = struct {
const gpa = macho_file.base.comp.gpa;
const cpu_arch = macho_file.getTarget().cpu.arch;
- var objects = try std.ArrayList(File.Index).initCapacity(gpa, macho_file.objects.items.len + 2);
+ var objects = try std.array_list.Managed(File.Index).initCapacity(gpa, macho_file.objects.items.len + 2);
defer objects.deinit();
objects.appendSliceAssumeCapacity(macho_file.objects.items);
if (macho_file.getZigObject()) |obj| objects.appendAssumeCapacity(obj.index);
@@ -286,7 +286,7 @@ pub const WeakBind = struct {
const gpa = macho_file.base.comp.gpa;
const cpu_arch = macho_file.getTarget().cpu.arch;
- var objects = try std.ArrayList(File.Index).initCapacity(gpa, macho_file.objects.items.len + 2);
+ var objects = try std.array_list.Managed(File.Index).initCapacity(gpa, macho_file.objects.items.len + 2);
defer objects.deinit();
objects.appendSliceAssumeCapacity(macho_file.objects.items);
if (macho_file.getZigObject()) |obj| objects.appendAssumeCapacity(obj.index);
diff --git a/src/link/MachO/eh_frame.zig b/src/link/MachO/eh_frame.zig
index 975b4784a8b9..9252dd83f4d7 100644
--- a/src/link/MachO/eh_frame.zig
+++ b/src/link/MachO/eh_frame.zig
@@ -275,7 +275,7 @@ pub fn calcSize(macho_file: *MachO) !u32 {
var offset: u32 = 0;
- var cies = std.ArrayList(Cie).init(macho_file.base.comp.gpa);
+ var cies = std.array_list.Managed(Cie).init(macho_file.base.comp.gpa);
defer cies.deinit();
for (macho_file.objects.items) |index| {
diff --git a/src/link/MachO/relocatable.zig b/src/link/MachO/relocatable.zig
index 4bbdb73a3e8c..e962ce3fd258 100644
--- a/src/link/MachO/relocatable.zig
+++ b/src/link/MachO/relocatable.zig
@@ -3,7 +3,7 @@ pub fn flushObject(macho_file: *MachO, comp: *Compilation, module_obj_path: ?Pat
const diags = &macho_file.base.comp.link_diags;
// TODO: "positional arguments" is a CLI concept, not a linker concept. Delete this unnecessary array list.
- var positionals = std.ArrayList(link.Input).init(gpa);
+ var positionals = std.array_list.Managed(link.Input).init(gpa);
defer positionals.deinit();
try positionals.ensureUnusedCapacity(comp.link_inputs.len);
positionals.appendSliceAssumeCapacity(comp.link_inputs);
@@ -81,7 +81,7 @@ pub fn flushStaticLib(macho_file: *MachO, comp: *Compilation, module_obj_path: ?
const gpa = comp.gpa;
const diags = &macho_file.base.comp.link_diags;
- var positionals = std.ArrayList(link.Input).init(gpa);
+ var positionals = std.array_list.Managed(link.Input).init(gpa);
defer positionals.deinit();
try positionals.ensureUnusedCapacity(comp.link_inputs.len);
@@ -143,7 +143,7 @@ pub fn flushStaticLib(macho_file: *MachO, comp: *Compilation, module_obj_path: ?
try zo.readFileContents(macho_file);
}
- var files = std.ArrayList(File.Index).init(gpa);
+ var files = std.array_list.Managed(File.Index).init(gpa);
defer files.deinit();
try files.ensureTotalCapacityPrecise(macho_file.objects.items.len + 1);
if (macho_file.getZigObject()) |zo| files.appendAssumeCapacity(zo.index);
@@ -205,7 +205,7 @@ pub fn flushStaticLib(macho_file: *MachO, comp: *Compilation, module_obj_path: ?
state_log.debug("ar_symtab\n{f}\n", .{ar_symtab.fmt(macho_file)});
}
- var buffer = std.ArrayList(u8).init(gpa);
+ var buffer = std.array_list.Managed(u8).init(gpa);
defer buffer.deinit();
try buffer.ensureTotalCapacityPrecise(total_size);
const writer = buffer.writer();
@@ -417,7 +417,7 @@ fn calcSymtabSize(macho_file: *MachO) error{OutOfMemory}!void {
var nimports: u32 = 0;
var strsize: u32 = 1;
- var objects = try std.ArrayList(File.Index).initCapacity(gpa, macho_file.objects.items.len + 1);
+ var objects = try std.array_list.Managed(File.Index).initCapacity(gpa, macho_file.objects.items.len + 1);
defer objects.deinit();
if (macho_file.getZigObject()) |zo| objects.appendAssumeCapacity(zo.index);
objects.appendSliceAssumeCapacity(macho_file.objects.items);
diff --git a/src/link/SpirV/BinaryModule.zig b/src/link/SpirV/BinaryModule.zig
index 7ba9e80bdcc1..3b8f9bd7b60c 100644
--- a/src/link/SpirV/BinaryModule.zig
+++ b/src/link/SpirV/BinaryModule.zig
@@ -280,7 +280,7 @@ pub const Parser = struct {
self: *Parser,
binary: BinaryModule,
inst: Instruction,
- offsets: *std.ArrayList(u16),
+ offsets: *std.array_list.Managed(u16),
) !void {
const index = self.opcode_table.get(mapSetAndOpcode(.core, @intFromEnum(inst.opcode))).?;
const operands = InstructionSet.core.instructions()[index].operands;
@@ -333,7 +333,7 @@ pub const Parser = struct {
inst: Instruction,
operands: []const spec.Operand,
start_offset: usize,
- offsets: *std.ArrayList(u16),
+ offsets: *std.array_list.Managed(u16),
) !usize {
var offset = start_offset;
for (operands) |operand| {
@@ -348,7 +348,7 @@ pub const Parser = struct {
inst: Instruction,
operand: spec.Operand,
start_offset: usize,
- offsets: *std.ArrayList(u16),
+ offsets: *std.array_list.Managed(u16),
) !usize {
var offset = start_offset;
switch (operand.quantifier) {
@@ -371,7 +371,7 @@ pub const Parser = struct {
inst: Instruction,
kind: spec.OperandKind,
start_offset: usize,
- offsets: *std.ArrayList(u16),
+ offsets: *std.array_list.Managed(u16),
) !usize {
var offset = start_offset;
if (offset >= inst.operands.len) return error.InvalidPhysicalFormat;
diff --git a/src/link/SpirV/lower_invocation_globals.zig b/src/link/SpirV/lower_invocation_globals.zig
index 72e49b49e014..f709cfc88db3 100644
--- a/src/link/SpirV/lower_invocation_globals.zig
+++ b/src/link/SpirV/lower_invocation_globals.zig
@@ -74,9 +74,9 @@ const ModuleInfo = struct {
param_types: []const ResultId,
}).init(arena);
var calls = std.AutoArrayHashMap(ResultId, void).init(arena);
- var callee_store = std.ArrayList(ResultId).init(arena);
+ var callee_store = std.array_list.Managed(ResultId).init(arena);
var function_invocation_globals = std.AutoArrayHashMap(ResultId, void).init(arena);
- var result_id_offsets = std.ArrayList(u16).init(arena);
+ var result_id_offsets = std.array_list.Managed(u16).init(arena);
var invocation_globals = std.AutoArrayHashMap(ResultId, InvocationGlobal).init(arena);
var maybe_current_function: ?ResultId = null;
@@ -498,8 +498,8 @@ const ModuleBuilder = struct {
binary: BinaryModule,
info: ModuleInfo,
) !void {
- var result_id_offsets = std.ArrayList(u16).init(self.arena);
- var operands = std.ArrayList(u32).init(self.arena);
+ var result_id_offsets = std.array_list.Managed(u16).init(self.arena);
+ var operands = std.array_list.Managed(u32).init(self.arena);
var maybe_current_function: ?ResultId = null;
var it = binary.iterateInstructionsFrom(binary.sections.functions);
diff --git a/src/link/Wasm/Flush.zig b/src/link/Wasm/Flush.zig
index c1402942e936..cc8df067434d 100644
--- a/src/link/Wasm/Flush.zig
+++ b/src/link/Wasm/Flush.zig
@@ -1051,7 +1051,7 @@ pub fn finish(f: *Flush, wasm: *Wasm) !void {
},
}
- var debug_bytes = std.ArrayList(u8).init(gpa);
+ var debug_bytes = std.array_list.Managed(u8).init(gpa);
defer debug_bytes.deinit();
try emitProducerSection(gpa, binary_bytes);
@@ -1396,7 +1396,7 @@ pub fn emitExpr(wasm: *const Wasm, binary_bytes: *std.ArrayListUnmanaged(u8), ex
try binary_bytes.appendSlice(gpa, slice[0 .. slice.len + 1]); // +1 to include end opcode
}
-fn emitSegmentInfo(wasm: *Wasm, binary_bytes: *std.ArrayList(u8)) !void {
+fn emitSegmentInfo(wasm: *Wasm, binary_bytes: *std.array_list.Managed(u8)) !void {
const gpa = wasm.base.comp.gpa;
const writer = binary_bytes.writer(gpa);
try leb.writeUleb128(writer, @intFromEnum(Wasm.SubsectionType.segment_info));
diff --git a/src/link/tapi.zig b/src/link/tapi.zig
index 1ebd00663662..4c1471a6b471 100644
--- a/src/link/tapi.zig
+++ b/src/link/tapi.zig
@@ -83,7 +83,7 @@ pub const Tbd = union(enum) {
/// Caller owns memory.
pub fn targets(self: Tbd, gpa: Allocator) error{OutOfMemory}![]const []const u8 {
- var out = std.ArrayList([]const u8).init(gpa);
+ var out = std.array_list.Managed([]const u8).init(gpa);
defer out.deinit();
switch (self) {
diff --git a/src/link/tapi/Tokenizer.zig b/src/link/tapi/Tokenizer.zig
index eb1ffc0e81fc..3b6c5ab1ee08 100644
--- a/src/link/tapi/Tokenizer.zig
+++ b/src/link/tapi/Tokenizer.zig
@@ -297,7 +297,7 @@ fn testExpected(source: []const u8, expected: []const Token.Id) !void {
.buffer = source,
};
- var given = std.ArrayList(Token.Id).init(testing.allocator);
+ var given = std.array_list.Managed(Token.Id).init(testing.allocator);
defer given.deinit();
while (true) {
diff --git a/src/link/tapi/parse.zig b/src/link/tapi/parse.zig
index 0f418dea30e7..5b5a07d8328d 100644
--- a/src/link/tapi/parse.zig
+++ b/src/link/tapi/parse.zig
@@ -231,7 +231,7 @@ pub const Tree = struct {
pub fn parse(self: *Tree, source: []const u8) !void {
var tokenizer = Tokenizer{ .buffer = source };
- var tokens = std.ArrayList(Token).init(self.allocator);
+ var tokens = std.array_list.Managed(Token).init(self.allocator);
defer tokens.deinit();
var line: usize = 0;
diff --git a/src/link/tapi/yaml.zig b/src/link/tapi/yaml.zig
index dd392bc3b2a6..a318b3f4f32f 100644
--- a/src/link/tapi/yaml.zig
+++ b/src/link/tapi/yaml.zig
@@ -172,7 +172,7 @@ pub const Value = union(enum) {
return Value{ .map = out_map };
} else if (node.cast(Node.List)) |list| {
- var out_list = std.ArrayList(Value).init(arena);
+ var out_list = std.array_list.Managed(Value).init(arena);
try out_list.ensureUnusedCapacity(list.values.items.len);
for (list.values.items) |elem| {
@@ -211,7 +211,7 @@ pub const Value = union(enum) {
.float => return Value{ .float = math.lossyCast(f64, input) },
.@"struct" => |info| if (info.is_tuple) {
- var list = std.ArrayList(Value).init(arena);
+ var list = std.array_list.Managed(Value).init(arena);
errdefer list.deinit();
try list.ensureTotalCapacityPrecise(info.fields.len);
@@ -262,7 +262,7 @@ pub const Value = union(enum) {
return Value{ .string = try arena.dupe(u8, input) };
}
- var list = std.ArrayList(Value).init(arena);
+ var list = std.array_list.Managed(Value).init(arena);
errdefer list.deinit();
try list.ensureTotalCapacityPrecise(input.len);
@@ -298,7 +298,7 @@ pub const Value = union(enum) {
pub const Yaml = struct {
arena: ArenaAllocator,
tree: ?Tree = null,
- docs: std.ArrayList(Value),
+ docs: std.array_list.Managed(Value),
pub fn deinit(self: *Yaml) void {
self.arena.deinit();
@@ -311,7 +311,7 @@ pub const Yaml = struct {
var tree = Tree.init(arena.allocator());
try tree.parse(source);
- var docs = std.ArrayList(Value).init(arena.allocator());
+ var docs = std.array_list.Managed(Value).init(arena.allocator());
try docs.ensureTotalCapacityPrecise(tree.docs.items.len);
for (tree.docs.items) |node| {
diff --git a/src/link/tapi/yaml/test.zig b/src/link/tapi/yaml/test.zig
index d354a94b1dcc..21527961dd05 100644
--- a/src/link/tapi/yaml/test.zig
+++ b/src/link/tapi/yaml/test.zig
@@ -407,7 +407,7 @@ test "duplicate map keys" {
}
fn testStringify(expected: []const u8, input: anytype) !void {
- var output = std.ArrayList(u8).init(testing.allocator);
+ var output = std.array_list.Managed(u8).init(testing.allocator);
defer output.deinit();
try yaml_mod.stringify(testing.allocator, input, output.writer());
diff --git a/src/main.zig b/src/main.zig
index 32b6e91fde63..e725c7a16011 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -6,7 +6,6 @@ const fs = std.fs;
const mem = std.mem;
const process = std.process;
const Allocator = mem.Allocator;
-const ArrayList = std.ArrayList;
const Ast = std.zig.Ast;
const Color = std.zig.Color;
const warn = std.log.warn;
@@ -1876,8 +1875,8 @@ fn buildOutputType(
var c_out_mode: ?COutMode = null;
var out_path: ?[]const u8 = null;
var is_shared_lib = false;
- var preprocessor_args = std.ArrayList([]const u8).init(arena);
- var linker_args = std.ArrayList([]const u8).init(arena);
+ var preprocessor_args = std.array_list.Managed([]const u8).init(arena);
+ var linker_args = std.array_list.Managed([]const u8).init(arena);
var it = ClangArgIterator.init(arena, all_args);
var emit_llvm = false;
var needed = false;
@@ -3136,16 +3135,16 @@ fn buildOutputType(
}
}
- var resolved_frameworks = std.ArrayList(Compilation.Framework).init(arena);
+ var resolved_frameworks = std.array_list.Managed(Compilation.Framework).init(arena);
if (create_module.frameworks.keys().len > 0) {
- var test_path = std.ArrayList(u8).init(gpa);
+ var test_path = std.array_list.Managed(u8).init(gpa);
defer test_path.deinit();
- var checked_paths = std.ArrayList(u8).init(gpa);
+ var checked_paths = std.array_list.Managed(u8).init(gpa);
defer checked_paths.deinit();
- var failed_frameworks = std.ArrayList(struct {
+ var failed_frameworks = std.array_list.Managed(struct {
name: []const u8,
checked_paths: []const u8,
}).init(arena);
@@ -3774,7 +3773,7 @@ fn createModule(
try llvm_to_zig_name.put(llvm_name, feature.name);
}
- var mcpu_buffer = std.ArrayList(u8).init(gpa);
+ var mcpu_buffer = std.array_list.Managed(u8).init(gpa);
defer mcpu_buffer.deinit();
try mcpu_buffer.appendSlice(cli_mod.target_mcpu orelse "baseline");
@@ -4332,7 +4331,7 @@ fn runOrTest(
}),
};
- var argv = std.ArrayList([]const u8).init(gpa);
+ var argv = std.array_list.Managed([]const u8).init(gpa);
defer argv.deinit();
if (test_exec_args.len == 0) {
@@ -4453,7 +4452,7 @@ fn runOrTestHotSwap(
};
defer gpa.free(exe_path);
- var argv = std.ArrayList([]const u8).init(gpa);
+ var argv = std.array_list.Managed([]const u8).init(gpa);
defer argv.deinit();
if (test_exec_args.len == 0) {
@@ -4570,7 +4569,7 @@ fn cmdTranslateC(
break :digest .{ bin_digest, hex_digest };
} else digest: {
if (fancy_output) |p| p.cache_hit = false;
- var argv = std.ArrayList([]const u8).init(arena);
+ var argv = std.array_list.Managed([]const u8).init(arena);
switch (comp.config.c_frontend) {
.aro => {},
.clang => {
@@ -4877,7 +4876,7 @@ fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
var override_global_cache_dir: ?[]const u8 = try EnvVar.ZIG_GLOBAL_CACHE_DIR.get(arena);
var override_local_cache_dir: ?[]const u8 = try EnvVar.ZIG_LOCAL_CACHE_DIR.get(arena);
var override_build_runner: ?[]const u8 = try EnvVar.ZIG_BUILD_RUNNER.get(arena);
- var child_argv = std.ArrayList([]const u8).init(arena);
+ var child_argv = std.array_list.Managed([]const u8).init(arena);
var reference_trace: ?u32 = null;
var debug_compile_errors = false;
var verbose_link = (native_os != .wasi or builtin.link_libc) and
@@ -5304,7 +5303,7 @@ fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
if (fetch_only) return cleanExit();
- var source_buf = std.ArrayList(u8).init(gpa);
+ var source_buf = std.array_list.Managed(u8).init(gpa);
defer source_buf.deinit();
try job_queue.createDependenciesSource(&source_buf);
const deps_mod = try createDependenciesModule(
@@ -5986,7 +5985,7 @@ pub const ClangArgIterator = struct {
// NOTE: The ArgIteratorResponseFile returns tokens from next() that are slices of an
// internal buffer. This internal buffer is arena allocated, so it is not cleaned up here.
- var resp_arg_list = std.ArrayList([]const u8).init(arena);
+ var resp_arg_list = std.array_list.Managed([]const u8).init(arena);
defer resp_arg_list.deinit();
{
while (self.arg_iterator_response_file.next()) |token| {
@@ -6868,8 +6867,8 @@ const ClangSearchSanitizer = struct {
};
fn accessFrameworkPath(
- test_path: *std.ArrayList(u8),
- checked_paths: *std.ArrayList(u8),
+ test_path: *std.array_list.Managed(u8),
+ checked_paths: *std.array_list.Managed(u8),
framework_dir_path: []const u8,
framework_name: []const u8,
) !bool {
@@ -7214,7 +7213,7 @@ fn createEmptyDependenciesModule(
dirs: Compilation.Directories,
global_options: Compilation.Config,
) !void {
- var source = std.ArrayList(u8).init(arena);
+ var source = std.array_list.Managed(u8).init(arena);
try Package.Fetch.JobQueue.createEmptyDependenciesSource(&source);
_ = try createDependenciesModule(
arena,
@@ -7418,7 +7417,7 @@ fn loadManifest(
const Templates = struct {
zig_lib_directory: Cache.Directory,
dir: fs.Dir,
- buffer: std.ArrayList(u8),
+ buffer: std.array_list.Managed(u8),
fn deinit(templates: *Templates) void {
templates.zig_lib_directory.handle.close();
@@ -7510,7 +7509,7 @@ fn findTemplates(gpa: Allocator, arena: Allocator) Templates {
return .{
.zig_lib_directory = zig_lib_directory,
.dir = template_dir,
- .buffer = std.ArrayList(u8).init(gpa),
+ .buffer = std.array_list.Managed(u8).init(gpa),
};
}
diff --git a/src/translate_c.zig b/src/translate_c.zig
index f7457810f2d2..d481643e3589 100644
--- a/src/translate_c.zig
+++ b/src/translate_c.zig
@@ -924,10 +924,10 @@ fn transRecordDecl(c: *Context, scope: *Scope, record_decl: *const clang.RecordD
break :blk Tag.opaque_literal.init();
};
- var fields = std.ArrayList(ast.Payload.Record.Field).init(c.gpa);
+ var fields = std.array_list.Managed(ast.Payload.Record.Field).init(c.gpa);
defer fields.deinit();
- var functions = std.ArrayList(Node).init(c.gpa);
+ var functions = std.array_list.Managed(Node).init(c.gpa);
defer functions.deinit();
const flexible_field = flexibleArrayField(c, record_def);
@@ -2606,7 +2606,7 @@ fn transInitListExprRecord(
const ty_node = try transType(c, scope, ty, loc);
const init_count = expr.getNumInits();
- var field_inits = std.ArrayList(ast.Payload.ContainerInit.Initializer).init(c.gpa);
+ var field_inits = std.array_list.Managed(ast.Payload.ContainerInit.Initializer).init(c.gpa);
defer field_inits.deinit();
if (init_count == 0) {
@@ -3116,7 +3116,7 @@ fn transSwitch(
defer cond_scope.deinit();
const switch_expr = try transExpr(c, &cond_scope.base, stmt.getCond(), .used);
- var cases = std.ArrayList(Node).init(c.gpa);
+ var cases = std.array_list.Managed(Node).init(c.gpa);
defer cases.deinit();
var has_default = false;
@@ -3130,7 +3130,7 @@ fn transSwitch(
while (it != end_it) : (it += 1) {
switch (it[0].getStmtClass()) {
.CaseStmtClass => {
- var items = std.ArrayList(Node).init(c.gpa);
+ var items = std.array_list.Managed(Node).init(c.gpa);
defer items.deinit();
const sub = try transCaseStmt(c, base_scope, it[0], &items);
const res = try transSwitchProngStmt(c, base_scope, sub, it, end_it);
@@ -3185,7 +3185,7 @@ fn transSwitch(
/// Collects all items for this case, returns the first statement after the labels.
/// If items ends up empty, the prong should be translated as an else.
-fn transCaseStmt(c: *Context, scope: *Scope, stmt: *const clang.Stmt, items: *std.ArrayList(Node)) TransError!*const clang.Stmt {
+fn transCaseStmt(c: *Context, scope: *Scope, stmt: *const clang.Stmt, items: *std.array_list.Managed(Node)) TransError!*const clang.Stmt {
var sub = stmt;
var seen_default = false;
while (true) {
@@ -4716,7 +4716,7 @@ fn transCreateNodeNumber(c: *Context, num: anytype, num_kind: enum { int, float
}
fn transCreateNodeMacroFn(c: *Context, name: []const u8, ref: Node, proto_alias: *ast.Payload.Func) !Node {
- var fn_params = std.ArrayList(ast.Payload.Param).init(c.gpa);
+ var fn_params = std.array_list.Managed(ast.Payload.Param).init(c.gpa);
defer fn_params.deinit();
for (proto_alias.data.params) |param| {
@@ -5115,7 +5115,7 @@ fn finishTransFnProto(
const scope = &c.global_scope.base;
const param_count: usize = if (fn_proto_ty != null) fn_proto_ty.?.getNumParams() else 0;
- var fn_params = try std.ArrayList(ast.Payload.Param).initCapacity(c.gpa, param_count);
+ var fn_params = try std.array_list.Managed(ast.Payload.Param).initCapacity(c.gpa, param_count);
defer fn_params.deinit();
var i: usize = 0;
@@ -5333,7 +5333,7 @@ fn transPreprocessorEntities(c: *Context, unit: *clang.ASTUnit) Error!void {
// TODO if we see #undef, delete it from the table
var it = unit.getLocalPreprocessingEntities_begin();
const it_end = unit.getLocalPreprocessingEntities_end();
- var tok_list = std.ArrayList(CToken).init(c.gpa);
+ var tok_list = std.array_list.Managed(CToken).init(c.gpa);
defer tok_list.deinit();
const scope = c.global_scope;
@@ -5484,7 +5484,7 @@ fn transMacroFnDefine(c: *Context, m: *MacroCtx) ParseError!void {
try m.skip(c, .l_paren);
- var fn_params = std.ArrayList(ast.Payload.Param).init(c.gpa);
+ var fn_params = std.array_list.Managed(ast.Payload.Param).init(c.gpa);
defer fn_params.deinit();
while (true) {
@@ -6459,7 +6459,7 @@ fn parseCPostfixExprInner(c: *Context, m: *MacroCtx, scope: *Scope, type_name: ?
m.i += 1;
node = try Tag.call.create(c.arena, .{ .lhs = node, .args = &[0]Node{} });
} else {
- var args = std.ArrayList(Node).init(c.gpa);
+ var args = std.array_list.Managed(Node).init(c.gpa);
defer args.deinit();
while (true) {
const arg = try parseCCondExpr(c, m, scope);
@@ -6480,7 +6480,7 @@ fn parseCPostfixExprInner(c: *Context, m: *MacroCtx, scope: *Scope, type_name: ?
.l_brace => {
// Check for designated field initializers
if (m.peek().? == .period) {
- var init_vals = std.ArrayList(ast.Payload.ContainerInitDot.Initializer).init(c.gpa);
+ var init_vals = std.array_list.Managed(ast.Payload.ContainerInitDot.Initializer).init(c.gpa);
defer init_vals.deinit();
while (true) {
@@ -6506,7 +6506,7 @@ fn parseCPostfixExprInner(c: *Context, m: *MacroCtx, scope: *Scope, type_name: ?
continue;
}
- var init_vals = std.ArrayList(Node).init(c.gpa);
+ var init_vals = std.array_list.Managed(Node).init(c.gpa);
defer init_vals.deinit();
while (true) {
diff --git a/test/behavior/struct.zig b/test/behavior/struct.zig
index a0ca20329864..29e9986e5e3c 100644
--- a/test/behavior/struct.zig
+++ b/test/behavior/struct.zig
@@ -1826,7 +1826,7 @@ test "assign to slice.len of global variable" {
const S = struct {
const allocator = std.testing.allocator;
- var list = std.ArrayList(u32).init(allocator);
+ var list = std.array_list.Managed(u32).init(allocator);
};
S.list.items.len = 0;
diff --git a/test/behavior/var_args.zig b/test/behavior/var_args.zig
index bd06404149a4..b97e486fbc4c 100644
--- a/test/behavior/var_args.zig
+++ b/test/behavior/var_args.zig
@@ -200,14 +200,14 @@ test "variadic functions" {
if (builtin.cpu.arch.isSPARC() and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/23718
const S = struct {
- fn printf(list_ptr: *std.ArrayList(u8), format: [*:0]const u8, ...) callconv(.c) void {
+ fn printf(list_ptr: *std.array_list.Managed(u8), format: [*:0]const u8, ...) callconv(.c) void {
var ap = @cVaStart();
defer @cVaEnd(&ap);
vprintf(list_ptr, format, &ap);
}
fn vprintf(
- list: *std.ArrayList(u8),
+ list: *std.array_list.Managed(u8),
format: [*:0]const u8,
ap: *std.builtin.VaList,
) callconv(.c) void {
@@ -225,7 +225,7 @@ test "variadic functions" {
}
};
- var list = std.ArrayList(u8).init(std.testing.allocator);
+ var list = std.array_list.Managed(u8).init(std.testing.allocator);
defer list.deinit();
S.printf(&list, "dsd", @as(c_int, 1), @as([*:0]const u8, "hello"), @as(c_int, 5));
try std.testing.expectEqualStrings("1hello5", list.items);
diff --git a/test/src/Cases.zig b/test/src/Cases.zig
index 7632a1523276..18bca9841ed7 100644
--- a/test/src/Cases.zig
+++ b/test/src/Cases.zig
@@ -1,7 +1,15 @@
+const Cases = @This();
+const builtin = @import("builtin");
+const std = @import("std");
+const assert = std.debug.assert;
+const Allocator = std.mem.Allocator;
+const getExternalExecutor = std.zig.system.getExternalExecutor;
+const ArrayList = std.ArrayList;
+
gpa: Allocator,
arena: Allocator,
-cases: std.ArrayList(Case),
-translate: std.ArrayList(Translate),
+cases: std.array_list.Managed(Case),
+translate: std.array_list.Managed(Translate),
pub const IncrementalCase = struct {
base_path: []const u8,
@@ -40,7 +48,7 @@ pub const Case = struct {
output_mode: std.builtin.OutputMode,
optimize_mode: std.builtin.OptimizeMode = .Debug,
- files: std.ArrayList(File),
+ files: std.array_list.Managed(File),
case: ?union(enum) {
/// Check that it compiles with no errors.
Compile: void,
@@ -77,7 +85,7 @@ pub const Case = struct {
/// `lower_to_build_steps`. If null, file imports will assert.
import_path: ?[]const u8 = null,
- deps: std.ArrayList(DepModule),
+ deps: std.array_list.Managed(DepModule),
pub fn addSourceFile(case: *Case, name: []const u8, src: [:0]const u8) void {
case.files.append(.{ .path = name, .src = src }) catch @panic("OOM");
@@ -148,7 +156,7 @@ pub fn addExe(
.files = .init(ctx.arena),
.case = null,
.output_mode = .Exe,
- .deps = std.ArrayList(DepModule).init(ctx.arena),
+ .deps = std.array_list.Managed(DepModule).init(ctx.arena),
}) catch @panic("out of memory");
return &ctx.cases.items[ctx.cases.items.len - 1];
}
@@ -167,7 +175,7 @@ pub fn exeFromCompiledC(ctx: *Cases, name: []const u8, target_query: std.Target.
.files = .init(ctx.arena),
.case = null,
.output_mode = .Exe,
- .deps = std.ArrayList(DepModule).init(ctx.arena),
+ .deps = std.array_list.Managed(DepModule).init(ctx.arena),
.link_libc = true,
}) catch @panic("out of memory");
return &ctx.cases.items[ctx.cases.items.len - 1];
@@ -197,7 +205,7 @@ pub fn addObjLlvm(ctx: *Cases, name: []const u8, target: std.Build.ResolvedTarge
.files = .init(ctx.arena),
.case = null,
.output_mode = .Obj,
- .deps = std.ArrayList(DepModule).init(ctx.arena),
+ .deps = std.array_list.Managed(DepModule).init(ctx.arena),
.backend = .llvm,
.emit_bin = can_emit_bin,
.emit_asm = can_emit_asm,
@@ -216,7 +224,7 @@ pub fn addObj(
.files = .init(ctx.arena),
.case = null,
.output_mode = .Obj,
- .deps = std.ArrayList(DepModule).init(ctx.arena),
+ .deps = std.array_list.Managed(DepModule).init(ctx.arena),
}) catch @panic("out of memory");
return &ctx.cases.items[ctx.cases.items.len - 1];
}
@@ -233,7 +241,7 @@ pub fn addTest(
.case = null,
.output_mode = .Exe,
.is_test = true,
- .deps = std.ArrayList(DepModule).init(ctx.arena),
+ .deps = std.array_list.Managed(DepModule).init(ctx.arena),
}) catch @panic("out of memory");
return &ctx.cases.items[ctx.cases.items.len - 1];
}
@@ -258,7 +266,7 @@ pub fn addC(ctx: *Cases, name: []const u8, target: std.Build.ResolvedTarget) *Ca
.files = .init(ctx.arena),
.case = null,
.output_mode = .Obj,
- .deps = std.ArrayList(DepModule).init(ctx.arena),
+ .deps = std.array_list.Managed(DepModule).init(ctx.arena),
}) catch @panic("out of memory");
return &ctx.cases.items[ctx.cases.items.len - 1];
}
@@ -364,7 +372,7 @@ fn addFromDirInner(
b: *std.Build,
) !void {
var it = try iterable_dir.walk(ctx.arena);
- var filenames: std.ArrayListUnmanaged([]const u8) = .empty;
+ var filenames: ArrayList([]const u8) = .empty;
while (try it.next()) |entry| {
if (entry.kind != .file) continue;
@@ -428,7 +436,7 @@ fn addFromDirInner(
continue;
}
- var cases = std.ArrayList(usize).init(ctx.arena);
+ var cases = std.array_list.Managed(usize).init(ctx.arena);
// Cross-product to get all possible test combinations
for (targets) |target_query| {
@@ -462,7 +470,7 @@ fn addFromDirInner(
.link_libc = link_libc,
.pic = pic,
.pie = pie,
- .deps = std.ArrayList(DepModule).init(ctx.cases.allocator),
+ .deps = std.array_list.Managed(DepModule).init(ctx.cases.allocator),
.imports = imports,
.target = resolved_target,
});
@@ -495,8 +503,8 @@ fn addFromDirInner(
pub fn init(gpa: Allocator, arena: Allocator) Cases {
return .{
.gpa = gpa,
- .cases = std.ArrayList(Case).init(gpa),
- .translate = std.ArrayList(Translate).init(gpa),
+ .cases = std.array_list.Managed(Case).init(gpa),
+ .translate = std.array_list.Managed(Translate).init(gpa),
.arena = arena,
};
}
@@ -995,7 +1003,7 @@ const TestManifest = struct {
key: []const u8,
comptime T: type,
) ![]const T {
- var out = std.ArrayList(T).init(allocator);
+ var out = std.array_list.Managed(T).init(allocator);
defer out.deinit();
var it = self.getConfigForKey(key, T);
while (try it.next()) |item| {
@@ -1018,7 +1026,7 @@ const TestManifest = struct {
}
fn trailingSplit(self: TestManifest, allocator: Allocator) error{OutOfMemory}![]const u8 {
- var out = std.ArrayList(u8).init(allocator);
+ var out = std.array_list.Managed(u8).init(allocator);
defer out.deinit();
var trailing_it = self.trailing();
while (trailing_it.next()) |line| {
@@ -1032,7 +1040,7 @@ const TestManifest = struct {
}
fn trailingLines(self: TestManifest, allocator: Allocator) error{OutOfMemory}![]const []const u8 {
- var out = std.ArrayList([]const u8).init(allocator);
+ var out = std.array_list.Managed([]const u8).init(allocator);
defer out.deinit();
var it = self.trailing();
while (it.next()) |line| {
@@ -1043,9 +1051,9 @@ const TestManifest = struct {
fn trailingLinesSplit(self: TestManifest, allocator: Allocator) error{OutOfMemory}![]const []const u8 {
// Collect output lines split by empty lines
- var out = std.ArrayList([]const u8).init(allocator);
+ var out = std.array_list.Managed([]const u8).init(allocator);
defer out.deinit();
- var buf = std.ArrayList(u8).init(allocator);
+ var buf = std.array_list.Managed(u8).init(allocator);
defer buf.deinit();
var it = self.trailing();
while (it.next()) |line| {
@@ -1119,13 +1127,6 @@ const TestManifest = struct {
}
};
-const Cases = @This();
-const builtin = @import("builtin");
-const std = @import("std");
-const assert = std.debug.assert;
-const Allocator = std.mem.Allocator;
-const getExternalExecutor = std.zig.system.getExternalExecutor;
-
fn resolveTargetQuery(query: std.Target.Query) std.Build.ResolvedTarget {
return .{
.query = query,
diff --git a/test/src/CompareOutput.zig b/test/src/CompareOutput.zig
index c491028333d2..15bc78132fc4 100644
--- a/test/src/CompareOutput.zig
+++ b/test/src/CompareOutput.zig
@@ -15,7 +15,7 @@ const Special = enum {
const TestCase = struct {
name: []const u8,
- sources: ArrayList(SourceFile),
+ sources: std.array_list.Managed(SourceFile),
expected_output: []const u8,
link_libc: bool,
special: Special,
@@ -41,7 +41,7 @@ const TestCase = struct {
pub fn createExtra(self: *CompareOutput, name: []const u8, source: []const u8, expected_output: []const u8, special: Special) TestCase {
var tc = TestCase{
.name = name,
- .sources = ArrayList(TestCase.SourceFile).init(self.b.allocator),
+ .sources = std.array_list.Managed(TestCase.SourceFile).init(self.b.allocator),
.expected_output = expected_output,
.link_libc = false,
.special = special,
@@ -170,7 +170,6 @@ pub fn addCase(self: *CompareOutput, case: TestCase) void {
const CompareOutput = @This();
const std = @import("std");
-const ArrayList = std.ArrayList;
const mem = std.mem;
const fs = std.fs;
const OptimizeMode = std.builtin.OptimizeMode;
diff --git a/test/src/RunTranslatedC.zig b/test/src/RunTranslatedC.zig
index 537c49dcd5ab..74e059cc599f 100644
--- a/test/src/RunTranslatedC.zig
+++ b/test/src/RunTranslatedC.zig
@@ -6,7 +6,7 @@ target: std.Build.ResolvedTarget,
const TestCase = struct {
name: []const u8,
- sources: ArrayList(SourceFile),
+ sources: std.array_list.Managed(SourceFile),
expected_stdout: []const u8,
allow_warnings: bool,
@@ -34,7 +34,7 @@ pub fn create(
const tc = self.b.allocator.create(TestCase) catch unreachable;
tc.* = TestCase{
.name = name,
- .sources = ArrayList(TestCase.SourceFile).init(self.b.allocator),
+ .sources = std.array_list.Managed(TestCase.SourceFile).init(self.b.allocator),
.expected_stdout = expected_stdout,
.allow_warnings = allow_warnings,
};
@@ -103,7 +103,6 @@ pub fn addCase(self: *RunTranslatedCContext, case: *const TestCase) void {
const RunTranslatedCContext = @This();
const std = @import("std");
-const ArrayList = std.ArrayList;
const fmt = std.fmt;
const mem = std.mem;
const fs = std.fs;
diff --git a/test/src/TranslateC.zig b/test/src/TranslateC.zig
index 2df7536342f7..57aaea6e0cac 100644
--- a/test/src/TranslateC.zig
+++ b/test/src/TranslateC.zig
@@ -6,8 +6,8 @@ test_target_filters: []const []const u8,
const TestCase = struct {
name: []const u8,
- sources: ArrayList(SourceFile),
- expected_lines: ArrayList([]const u8),
+ sources: std.array_list.Managed(SourceFile),
+ expected_lines: std.array_list.Managed([]const u8),
allow_warnings: bool,
target: std.Target.Query = .{},
@@ -39,8 +39,8 @@ pub fn create(
const tc = self.b.allocator.create(TestCase) catch unreachable;
tc.* = TestCase{
.name = name,
- .sources = ArrayList(TestCase.SourceFile).init(self.b.allocator),
- .expected_lines = ArrayList([]const u8).init(self.b.allocator),
+ .sources = std.array_list.Managed(TestCase.SourceFile).init(self.b.allocator),
+ .expected_lines = std.array_list.Managed([]const u8).init(self.b.allocator),
.allow_warnings = allow_warnings,
};
@@ -125,7 +125,6 @@ pub fn addCase(self: *TranslateCContext, case: *const TestCase) void {
const TranslateCContext = @This();
const std = @import("std");
-const ArrayList = std.ArrayList;
const fmt = std.fmt;
const mem = std.mem;
const fs = std.fs;
diff --git a/test/src/check-stack-trace.zig b/test/src/check-stack-trace.zig
index 30f3dd9789ba..d245e27a5637 100644
--- a/test/src/check-stack-trace.zig
+++ b/test/src/check-stack-trace.zig
@@ -24,7 +24,7 @@ pub fn main() !void {
// - replace function name with symbolic string when optimize_mode != .Debug
// - skip empty lines
const got: []const u8 = got_result: {
- var buf = std.ArrayList(u8).init(arena);
+ var buf = std.array_list.Managed(u8).init(arena);
defer buf.deinit();
if (stderr.len != 0 and stderr[stderr.len - 1] == '\n') stderr = stderr[0 .. stderr.len - 1];
var it = mem.splitScalar(u8, stderr, '\n');
diff --git a/test/standalone/windows_argv/fuzz.zig b/test/standalone/windows_argv/fuzz.zig
index bbe956c36562..bdf40aa4b1d3 100644
--- a/test/standalone/windows_argv/fuzz.zig
+++ b/test/standalone/windows_argv/fuzz.zig
@@ -41,7 +41,7 @@ pub fn main() !void {
std.debug.print("rand seed: {}\n", .{seed});
}
- var cmd_line_w_buf = std.ArrayList(u16).init(allocator);
+ var cmd_line_w_buf = std.array_list.Managed(u16).init(allocator);
defer cmd_line_w_buf.deinit();
var i: u64 = 0;
@@ -84,7 +84,7 @@ fn randomCommandLineW(allocator: Allocator, rand: std.Random) ![:0]const u16 {
};
const choices = rand.uintAtMostBiased(u16, 256);
- var buf = try std.ArrayList(u16).initCapacity(allocator, choices);
+ var buf = try std.array_list.Managed(u16).initCapacity(allocator, choices);
errdefer buf.deinit();
for (0..choices) |_| {
diff --git a/test/standalone/windows_argv/lib.zig b/test/standalone/windows_argv/lib.zig
index d41ad9531309..4171d13dab40 100644
--- a/test/standalone/windows_argv/lib.zig
+++ b/test/standalone/windows_argv/lib.zig
@@ -17,7 +17,7 @@ fn testArgv(expected_args: []const [*:0]const u16) !void {
const allocator = arena_state.allocator();
const args = try std.process.argsAlloc(allocator);
- var wtf8_buf = std.ArrayList(u8).init(allocator);
+ var wtf8_buf = std.array_list.Managed(u8).init(allocator);
var eql = true;
if (args.len != expected_args.len) eql = false;
diff --git a/test/standalone/windows_bat_args/fuzz.zig b/test/standalone/windows_bat_args/fuzz.zig
index 8b145ae0d2d0..650494a26828 100644
--- a/test/standalone/windows_bat_args/fuzz.zig
+++ b/test/standalone/windows_bat_args/fuzz.zig
@@ -42,7 +42,7 @@ pub fn main() anyerror!void {
try tmp.dir.setAsCwd();
defer tmp.parent_dir.setAsCwd() catch {};
- var buf = try std.ArrayList(u8).initCapacity(allocator, 128);
+ var buf = try std.array_list.Managed(u8).initCapacity(allocator, 128);
defer buf.deinit();
try buf.appendSlice("@echo off\n");
try buf.append('"');
@@ -80,7 +80,7 @@ fn testExec(allocator: std.mem.Allocator, args: []const []const u8, env: ?*std.p
}
fn testExecBat(allocator: std.mem.Allocator, bat: []const u8, args: []const []const u8, env: ?*std.process.EnvMap) !void {
- var argv = try std.ArrayList([]const u8).initCapacity(allocator, 1 + args.len);
+ var argv = try std.array_list.Managed([]const u8).initCapacity(allocator, 1 + args.len);
defer argv.deinit();
argv.appendAssumeCapacity(bat);
argv.appendSliceAssumeCapacity(args);
@@ -121,7 +121,7 @@ fn randomArg(allocator: Allocator, rand: std.Random) ![]const u8 {
};
const choices = rand.uintAtMostBiased(u16, 256);
- var buf = try std.ArrayList(u8).initCapacity(allocator, choices);
+ var buf = try std.array_list.Managed(u8).initCapacity(allocator, choices);
errdefer buf.deinit();
var last_codepoint: u21 = 0;
diff --git a/test/standalone/windows_bat_args/test.zig b/test/standalone/windows_bat_args/test.zig
index 45fab612ab6b..19efcc52446b 100644
--- a/test/standalone/windows_bat_args/test.zig
+++ b/test/standalone/windows_bat_args/test.zig
@@ -16,7 +16,7 @@ pub fn main() anyerror!void {
try tmp.dir.setAsCwd();
defer tmp.parent_dir.setAsCwd() catch {};
- var buf = try std.ArrayList(u8).initCapacity(allocator, 128);
+ var buf = try std.array_list.Managed(u8).initCapacity(allocator, 128);
defer buf.deinit();
try buf.appendSlice("@echo off\n");
try buf.append('"');
@@ -127,7 +127,7 @@ fn testExec(allocator: std.mem.Allocator, args: []const []const u8, env: ?*std.p
}
fn testExecBat(allocator: std.mem.Allocator, bat: []const u8, args: []const []const u8, env: ?*std.process.EnvMap) !void {
- var argv = try std.ArrayList([]const u8).initCapacity(allocator, 1 + args.len);
+ var argv = try std.array_list.Managed([]const u8).initCapacity(allocator, 1 + args.len);
defer argv.deinit();
argv.appendAssumeCapacity(bat);
argv.appendSliceAssumeCapacity(args);
diff --git a/tools/docgen.zig b/tools/docgen.zig
index b007d27033a7..04066eff78f0 100644
--- a/tools/docgen.zig
+++ b/tools/docgen.zig
@@ -344,12 +344,12 @@ fn genToc(allocator: Allocator, tokenizer: *Tokenizer) !Toc {
var last_action: Action = .open;
var last_columns: ?u8 = null;
- var toc_buf = std.ArrayList(u8).init(allocator);
+ var toc_buf = std.array_list.Managed(u8).init(allocator);
defer toc_buf.deinit();
var toc = toc_buf.writer();
- var nodes = std.ArrayList(Node).init(allocator);
+ var nodes = std.array_list.Managed(Node).init(allocator);
defer nodes.deinit();
try toc.writeByte('\n');
@@ -449,7 +449,7 @@ fn genToc(allocator: Allocator, tokenizer: *Tokenizer) !Toc {
last_action = .close;
}
} else if (mem.eql(u8, tag_name, "see_also")) {
- var list = std.ArrayList(SeeAlsoItem).init(allocator);
+ var list = std.array_list.Managed(SeeAlsoItem).init(allocator);
errdefer list.deinit();
while (true) {
@@ -599,7 +599,7 @@ fn genToc(allocator: Allocator, tokenizer: *Tokenizer) !Toc {
}
fn urlize(allocator: Allocator, input: []const u8) ![]u8 {
- var buf = std.ArrayList(u8).init(allocator);
+ var buf = std.array_list.Managed(u8).init(allocator);
defer buf.deinit();
const out = buf.writer();
@@ -618,7 +618,7 @@ fn urlize(allocator: Allocator, input: []const u8) ![]u8 {
}
fn escapeHtml(allocator: Allocator, input: []const u8) ![]u8 {
- var buf = std.ArrayList(u8).init(allocator);
+ var buf = std.array_list.Managed(u8).init(allocator);
defer buf.deinit();
const out = buf.writer();
diff --git a/tools/doctest.zig b/tools/doctest.zig
index 3fe0bb4708bf..a762b8d0b94d 100644
--- a/tools/doctest.zig
+++ b/tools/doctest.zig
@@ -126,7 +126,7 @@ fn printOutput(
const obj_ext = builtin.object_format.fileExt(builtin.cpu.arch);
const print = std.debug.print;
- var shell_buffer = std.ArrayList(u8).init(arena);
+ var shell_buffer = std.array_list.Managed(u8).init(arena);
defer shell_buffer.deinit();
var shell_out = shell_buffer.writer();
@@ -134,7 +134,7 @@ fn printOutput(
switch (code.id) {
.exe => |expected_outcome| code_block: {
- var build_args = std.ArrayList([]const u8).init(arena);
+ var build_args = std.array_list.Managed([]const u8).init(arena);
defer build_args.deinit();
try build_args.appendSlice(&[_][]const u8{
zig_exe, "build-exe",
@@ -284,7 +284,7 @@ fn printOutput(
try shell_out.writeAll("\n");
},
.@"test" => {
- var test_args = std.ArrayList([]const u8).init(arena);
+ var test_args = std.array_list.Managed([]const u8).init(arena);
defer test_args.deinit();
try test_args.appendSlice(&[_][]const u8{
@@ -345,7 +345,7 @@ fn printOutput(
try shell_out.print("\n{s}{s}\n", .{ escaped_stderr, escaped_stdout });
},
.test_error => |error_match| {
- var test_args = std.ArrayList([]const u8).init(arena);
+ var test_args = std.array_list.Managed([]const u8).init(arena);
defer test_args.deinit();
try test_args.appendSlice(&[_][]const u8{
@@ -399,7 +399,7 @@ fn printOutput(
try shell_out.print("\n{s}\n", .{colored_stderr});
},
.test_safety => |error_match| {
- var test_args = std.ArrayList([]const u8).init(arena);
+ var test_args = std.array_list.Managed([]const u8).init(arena);
defer test_args.deinit();
try test_args.appendSlice(&[_][]const u8{
@@ -461,7 +461,7 @@ fn printOutput(
},
.obj => |maybe_error_match| {
const name_plus_obj_ext = try std.fmt.allocPrint(arena, "{s}{s}", .{ code_name, obj_ext });
- var build_args = std.ArrayList([]const u8).init(arena);
+ var build_args = std.array_list.Managed([]const u8).init(arena);
defer build_args.deinit();
try build_args.appendSlice(&[_][]const u8{
@@ -543,7 +543,7 @@ fn printOutput(
.output_mode = .Lib,
});
- var test_args = std.ArrayList([]const u8).init(arena);
+ var test_args = std.array_list.Managed([]const u8).init(arena);
defer test_args.deinit();
try test_args.appendSlice(&[_][]const u8{
@@ -975,7 +975,7 @@ fn skipPrefix(line: []const u8) []const u8 {
}
fn escapeHtml(allocator: Allocator, input: []const u8) ![]u8 {
- var buf = std.ArrayList(u8).init(allocator);
+ var buf = std.array_list.Managed(u8).init(allocator);
defer buf.deinit();
const out = buf.writer();
@@ -1011,7 +1011,7 @@ fn termColor(allocator: Allocator, input: []const u8) ![]u8 {
const supported_sgr_colors = [_]u8{ 31, 32, 36 };
const supported_sgr_numbers = [_]u8{ 0, 1, 2 };
- var buf = std.ArrayList(u8).init(allocator);
+ var buf = std.array_list.Managed(u8).init(allocator);
defer buf.deinit();
var out = buf.writer();
@@ -1401,7 +1401,7 @@ test "printShell" {
\\
;
- var buffer = std.ArrayList(u8).init(test_allocator);
+ var buffer = std.array_list.Managed(u8).init(test_allocator);
defer buffer.deinit();
try printShell(buffer.writer(), shell_out, false);
@@ -1418,7 +1418,7 @@ test "printShell" {
\\
;
- var buffer = std.ArrayList(u8).init(test_allocator);
+ var buffer = std.array_list.Managed(u8).init(test_allocator);
defer buffer.deinit();
try printShell(buffer.writer(), shell_out, false);
@@ -1432,7 +1432,7 @@ test "printShell" {
\\
;
- var buffer = std.ArrayList(u8).init(test_allocator);
+ var buffer = std.array_list.Managed(u8).init(test_allocator);
defer buffer.deinit();
try printShell(buffer.writer(), shell_out, false);
@@ -1451,7 +1451,7 @@ test "printShell" {
\\
;
- var buffer = std.ArrayList(u8).init(test_allocator);
+ var buffer = std.array_list.Managed(u8).init(test_allocator);
defer buffer.deinit();
try printShell(buffer.writer(), shell_out, false);
@@ -1472,7 +1472,7 @@ test "printShell" {
\\
;
- var buffer = std.ArrayList(u8).init(test_allocator);
+ var buffer = std.array_list.Managed(u8).init(test_allocator);
defer buffer.deinit();
try printShell(buffer.writer(), shell_out, false);
@@ -1491,7 +1491,7 @@ test "printShell" {
\\
;
- var buffer = std.ArrayList(u8).init(test_allocator);
+ var buffer = std.array_list.Managed(u8).init(test_allocator);
defer buffer.deinit();
try printShell(buffer.writer(), shell_out, false);
@@ -1514,7 +1514,7 @@ test "printShell" {
\\
;
- var buffer = std.ArrayList(u8).init(test_allocator);
+ var buffer = std.array_list.Managed(u8).init(test_allocator);
defer buffer.deinit();
try printShell(buffer.writer(), shell_out, false);
@@ -1536,7 +1536,7 @@ test "printShell" {
\\
;
- var buffer = std.ArrayList(u8).init(test_allocator);
+ var buffer = std.array_list.Managed(u8).init(test_allocator);
defer buffer.deinit();
try printShell(buffer.writer(), shell_out, false);
@@ -1553,7 +1553,7 @@ test "printShell" {
\\
;
- var buffer = std.ArrayList(u8).init(test_allocator);
+ var buffer = std.array_list.Managed(u8).init(test_allocator);
defer buffer.deinit();
try printShell(buffer.writer(), shell_out, false);
@@ -1572,7 +1572,7 @@ test "printShell" {
\\
;
- var buffer = std.ArrayList(u8).init(test_allocator);
+ var buffer = std.array_list.Managed(u8).init(test_allocator);
defer buffer.deinit();
try printShell(buffer.writer(), shell_out, false);
@@ -1587,7 +1587,7 @@ test "printShell" {
\\
;
- var buffer = std.ArrayList(u8).init(test_allocator);
+ var buffer = std.array_list.Managed(u8).init(test_allocator);
defer buffer.deinit();
try printShell(buffer.writer(), shell_out, false);
diff --git a/tools/fetch_them_macos_headers.zig b/tools/fetch_them_macos_headers.zig
index 44f3e7bb864c..2537621e0b3d 100644
--- a/tools/fetch_them_macos_headers.zig
+++ b/tools/fetch_them_macos_headers.zig
@@ -73,7 +73,7 @@ pub fn main() anyerror!void {
const args = try std.process.argsAlloc(allocator);
- var argv = std.ArrayList([]const u8).init(allocator);
+ var argv = std.array_list.Managed([]const u8).init(allocator);
var sysroot: ?[]const u8 = null;
var args_iter = ArgsIterator{ .args = args[1..] };
@@ -145,7 +145,7 @@ fn fetchTarget(
ver.minor,
});
- var cc_argv = std.ArrayList([]const u8).init(arena);
+ var cc_argv = std.array_list.Managed([]const u8).init(arena);
try cc_argv.appendSlice(&[_][]const u8{
"cc",
"-arch",
diff --git a/tools/gen_macos_headers_c.zig b/tools/gen_macos_headers_c.zig
index a56194a9a806..f95023adb756 100644
--- a/tools/gen_macos_headers_c.zig
+++ b/tools/gen_macos_headers_c.zig
@@ -23,7 +23,7 @@ pub fn main() anyerror!void {
const args = try std.process.argsAlloc(arena);
if (args.len == 1) fatal("no command or option specified", .{});
- var positionals = std.ArrayList([]const u8).init(arena);
+ var positionals = std.array_list.Managed([]const u8).init(arena);
for (args[1..]) |arg| {
if (std.mem.eql(u8, arg, "--help") or std.mem.eql(u8, arg, "-h")) {
@@ -35,7 +35,7 @@ pub fn main() anyerror!void {
var dir = try std.fs.cwd().openDir(positionals.items[0], .{ .no_follow = true });
defer dir.close();
- var paths = std.ArrayList([]const u8).init(arena);
+ var paths = std.array_list.Managed([]const u8).init(arena);
try findHeaders(arena, dir, "", &paths);
const SortFn = struct {
@@ -66,7 +66,7 @@ fn findHeaders(
arena: Allocator,
dir: std.fs.Dir,
prefix: []const u8,
- paths: *std.ArrayList([]const u8),
+ paths: *std.array_list.Managed([]const u8),
) anyerror!void {
var it = dir.iterate();
while (try it.next()) |entry| {
diff --git a/tools/gen_outline_atomics.zig b/tools/gen_outline_atomics.zig
index bcd757978a96..a4c56ed1a979 100644
--- a/tools/gen_outline_atomics.zig
+++ b/tools/gen_outline_atomics.zig
@@ -37,7 +37,7 @@ pub fn main() !void {
\\
);
- var footer = std.ArrayList(u8).init(arena);
+ var footer = std.array_list.Managed(u8).init(arena);
try footer.appendSlice("\ncomptime {\n");
for ([_]N{ .one, .two, .four, .eight, .sixteen }) |n| {
diff --git a/tools/gen_spirv_spec.zig b/tools/gen_spirv_spec.zig
index 6295285a4bda..d2be3bde1605 100644
--- a/tools/gen_spirv_spec.zig
+++ b/tools/gen_spirv_spec.zig
@@ -69,7 +69,7 @@ pub fn main() !void {
const core_spec = try readRegistry(CoreRegistry, dir, "spirv.core.grammar.json");
std.mem.sortUnstable(Instruction, core_spec.instructions, CmpInst{}, CmpInst.lt);
- var exts = std.ArrayList(Extension).init(allocator);
+ var exts = std.array_list.Managed(Extension).init(allocator);
var it = dir.iterate();
while (try it.next()) |entry| {
@@ -113,7 +113,7 @@ pub fn main() !void {
_ = try std.fs.File.stdout().write(formatted_output);
}
-fn readExtRegistry(exts: *std.ArrayList(Extension), dir: std.fs.Dir, sub_path: []const u8) !void {
+fn readExtRegistry(exts: *std.array_list.Managed(Extension), dir: std.fs.Dir, sub_path: []const u8) !void {
const filename = std.fs.path.basename(sub_path);
if (!std.mem.startsWith(u8, filename, "extinst.")) {
return;
@@ -296,8 +296,6 @@ fn render(
);
// Merge the operand kinds from all extensions together.
- // var all_operand_kinds = std.ArrayList(OperandKind).init(a);
- // try all_operand_kinds.appendSlice(registry.operand_kinds);
var all_operand_kinds = OperandKindMap.init(allocator);
for (registry.operand_kinds) |kind| {
try all_operand_kinds.putNoClobber(.{ "core", kind.kind }, kind);
@@ -544,7 +542,7 @@ fn renderOpcodes(
var inst_map = std.AutoArrayHashMap(u32, usize).init(allocator);
try inst_map.ensureTotalCapacity(instructions.len);
- var aliases = std.ArrayList(struct { inst: usize, alias: usize }).init(allocator);
+ var aliases = std.array_list.Managed(struct { inst: usize, alias: usize }).init(allocator);
try aliases.ensureTotalCapacity(instructions.len);
for (instructions, 0..) |inst, i| {
@@ -657,7 +655,7 @@ fn renderValueEnum(
var enum_map = std.AutoArrayHashMap(u32, usize).init(allocator);
try enum_map.ensureTotalCapacity(enumerants.len);
- var aliases = std.ArrayList(struct { enumerant: usize, alias: usize }).init(allocator);
+ var aliases = std.array_list.Managed(struct { enumerant: usize, alias: usize }).init(allocator);
try aliases.ensureTotalCapacity(enumerants.len);
for (enumerants, 0..) |enumerant, i| {
@@ -735,7 +733,7 @@ fn renderBitEnum(
var flags_by_bitpos = [_]?usize{null} ** 32;
const enumerants = enumeration.enumerants orelse return error.InvalidRegistry;
- var aliases = std.ArrayList(struct { flag: usize, alias: u5 }).init(allocator);
+ var aliases = std.array_list.Managed(struct { flag: usize, alias: u5 }).init(allocator);
try aliases.ensureTotalCapacity(enumerants.len);
for (enumerants, 0..) |enumerant, i| {
diff --git a/tools/generate_JSONTestSuite.zig b/tools/generate_JSONTestSuite.zig
index 56c6bc726131..1689c485e686 100644
--- a/tools/generate_JSONTestSuite.zig
+++ b/tools/generate_JSONTestSuite.zig
@@ -19,7 +19,7 @@ pub fn main() !void {
\\
);
- var names = std.ArrayList([]const u8).init(allocator);
+ var names = std.array_list.Managed([]const u8).init(allocator);
var cwd = try std.fs.cwd().openDir(".", .{ .iterate = true });
var it = cwd.iterate();
while (try it.next()) |entry| {
diff --git a/tools/generate_linux_syscalls.zig b/tools/generate_linux_syscalls.zig
index 9c60329f2b72..60a529847738 100644
--- a/tools/generate_linux_syscalls.zig
+++ b/tools/generate_linux_syscalls.zig
@@ -591,7 +591,7 @@ fn generateSyscallsFromTable(
const table = try linux_dir.readFile(arch_info.file_path, buf);
- var optional_array_list: ?std.ArrayList(u8) = if (arch_info.additional_enum) |_| std.ArrayList(u8).init(allocator) else null;
+ var optional_array_list: ?std.array_list.Managed(u8) = if (arch_info.additional_enum) |_| std.array_list.Managed(u8).init(allocator) else null;
const optional_writer = if (optional_array_list) |_| optional_array_list.?.writer() else null;
try writer.print("pub const {s} = enum(usize) {{\n", .{arch_info.enum_name});
diff --git a/tools/migrate_langref.zig b/tools/migrate_langref.zig
index 95da6d572284..25f64e708c77 100644
--- a/tools/migrate_langref.zig
+++ b/tools/migrate_langref.zig
@@ -319,13 +319,13 @@ fn walk(arena: Allocator, tokenizer: *Tokenizer, out_dir: std.fs.Dir, w: anytype
}
var mode: std.builtin.OptimizeMode = .Debug;
- var link_objects = std.ArrayList([]const u8).init(arena);
+ var link_objects = std.array_list.Managed([]const u8).init(arena);
var target_str: ?[]const u8 = null;
var link_libc = false;
var link_mode: ?std.builtin.LinkMode = null;
var disable_cache = false;
var verbose_cimport = false;
- var additional_options = std.ArrayList([]const u8).init(arena);
+ var additional_options = std.array_list.Managed([]const u8).init(arena);
const source_token = while (true) {
const content_tok = try eatToken(tokenizer, .content);
@@ -437,7 +437,7 @@ fn walk(arena: Allocator, tokenizer: *Tokenizer, out_dir: std.fs.Dir, w: anytype
}
fn urlize(allocator: Allocator, input: []const u8) ![]u8 {
- var buf = std.ArrayList(u8).init(allocator);
+ var buf = std.array_list.Managed(u8).init(allocator);
defer buf.deinit();
const out = buf.writer();
diff --git a/tools/process_headers.zig b/tools/process_headers.zig
index 51d443654001..4a5a03516a55 100644
--- a/tools/process_headers.zig
+++ b/tools/process_headers.zig
@@ -130,7 +130,7 @@ pub fn main() !void {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
const allocator = arena.allocator();
const args = try std.process.argsAlloc(allocator);
- var search_paths = std.ArrayList([]const u8).init(allocator);
+ var search_paths = std.array_list.Managed([]const u8).init(allocator);
var opt_out_dir: ?[]const u8 = null;
var opt_abi: ?[]const u8 = null;
@@ -234,7 +234,7 @@ pub fn main() !void {
.musl => &[_][]const u8{ search_path, libc_dir, "usr", "local", "musl", "include" },
};
const target_include_dir = try std.fs.path.join(allocator, sub_path);
- var dir_stack = std.ArrayList([]const u8).init(allocator);
+ var dir_stack = std.array_list.Managed([]const u8).init(allocator);
try dir_stack.append(target_include_dir);
while (dir_stack.pop()) |full_dir_name| {
@@ -323,7 +323,7 @@ pub fn main() !void {
// gets their header in a separate arch directory.
var path_it = path_table.iterator();
while (path_it.next()) |path_kv| {
- var contents_list = std.ArrayList(*Contents).init(allocator);
+ var contents_list = std.array_list.Managed(*Contents).init(allocator);
{
var hash_it = path_kv.value_ptr.*.iterator();
while (hash_it.next()) |hash_kv| {
diff --git a/tools/update-linux-headers.zig b/tools/update-linux-headers.zig
index 3bf310e8e3ee..4938af09275c 100644
--- a/tools/update-linux-headers.zig
+++ b/tools/update-linux-headers.zig
@@ -143,7 +143,7 @@ pub fn main() !void {
var arena_state = std.heap.ArenaAllocator.init(std.heap.page_allocator);
const arena = arena_state.allocator();
const args = try std.process.argsAlloc(arena);
- var search_paths = std.ArrayList([]const u8).init(arena);
+ var search_paths = std.array_list.Managed([]const u8).init(arena);
var opt_out_dir: ?[]const u8 = null;
var arg_i: usize = 1;
@@ -186,7 +186,7 @@ pub fn main() !void {
const target_include_dir = try std.fs.path.join(arena, &.{
search_path, linux_target.name, "include",
});
- var dir_stack = std.ArrayList([]const u8).init(arena);
+ var dir_stack = std.array_list.Managed([]const u8).init(arena);
try dir_stack.append(target_include_dir);
while (dir_stack.pop()) |full_dir_name| {
@@ -261,7 +261,7 @@ pub fn main() !void {
// gets their header in a separate arch directory.
var path_it = path_table.iterator();
while (path_it.next()) |path_kv| {
- var contents_list = std.ArrayList(*Contents).init(arena);
+ var contents_list = std.array_list.Managed(*Contents).init(arena);
{
var hash_it = path_kv.value_ptr.*.iterator();
while (hash_it.next()) |hash_kv| {
diff --git a/tools/update_clang_options.zig b/tools/update_clang_options.zig
index 95fc68fa55ac..3287a2d165c2 100644
--- a/tools/update_clang_options.zig
+++ b/tools/update_clang_options.zig
@@ -699,7 +699,7 @@ pub fn main() anyerror!void {
defer parsed.deinit();
const root_map = &parsed.value.object;
- var all_objects = std.ArrayList(*json.ObjectMap).init(allocator);
+ var all_objects = std.array_list.Managed(*json.ObjectMap).init(allocator);
{
var it = root_map.iterator();
it_map: while (it.next()) |kv| {
diff --git a/tools/update_cpu_features.zig b/tools/update_cpu_features.zig
index 8949db014db3..f9bbe857f1e9 100644
--- a/tools/update_cpu_features.zig
+++ b/tools/update_cpu_features.zig
@@ -1634,8 +1634,8 @@ fn processOneTarget(job: Job) void {
defer progress_node.end();
var features_table = std.StringHashMap(Feature).init(arena);
- var all_features = std.ArrayList(Feature).init(arena);
- var all_cpus = std.ArrayList(Cpu).init(arena);
+ var all_features = std.array_list.Managed(Feature).init(arena);
+ var all_cpus = std.array_list.Managed(Cpu).init(arena);
if (target.llvm) |llvm| {
const tblgen_progress = progress_node.start("running llvm-tblgen", 0);
@@ -1726,7 +1726,7 @@ fn processOneTarget(job: Job) void {
var zig_name = try llvmNameToZigName(arena, llvm_name);
var desc = kv.value_ptr.object.get("Desc").?.string;
- var deps = std.ArrayList([]const u8).init(arena);
+ var deps = std.array_list.Managed([]const u8).init(arena);
var omit = false;
var flatten = false;
var omit_deps: []const []const u8 = &.{};
@@ -1810,7 +1810,7 @@ fn processOneTarget(job: Job) void {
if (omitted) continue;
var zig_name = try llvmNameToZigName(arena, llvm_name);
- var deps = std.ArrayList([]const u8).init(arena);
+ var deps = std.array_list.Managed([]const u8).init(arena);
var omit_deps: []const []const u8 = &.{};
var extra_deps: []const []const u8 = &.{};
for (target.feature_overrides) |feature_override| {
@@ -1979,7 +1979,7 @@ fn processOneTarget(job: Job) void {
try putDep(&deps_set, features_table, dep);
}
try pruneFeatures(arena, features_table, &deps_set);
- var dependencies = std.ArrayList([]const u8).init(arena);
+ var dependencies = std.array_list.Managed([]const u8).init(arena);
{
var it = deps_set.keyIterator();
while (it.next()) |key| {
@@ -2024,7 +2024,7 @@ fn processOneTarget(job: Job) void {
try putDep(&deps_set, features_table, feature_zig_name);
}
try pruneFeatures(arena, features_table, &deps_set);
- var cpu_features = std.ArrayList([]const u8).init(arena);
+ var cpu_features = std.array_list.Managed([]const u8).init(arena);
{
var it = deps_set.keyIterator();
while (it.next()) |key| {
diff --git a/tools/update_crc_catalog.zig b/tools/update_crc_catalog.zig
index f595c9c68e59..8c226b06db15 100644
--- a/tools/update_crc_catalog.zig
+++ b/tools/update_crc_catalog.zig
@@ -139,7 +139,7 @@ pub fn main() anyerror!void {
_ = mem.replace(u8, snakecase, "-", "_", snakecase);
_ = mem.replace(u8, snakecase, "/", "_", snakecase);
- var buf = try std.ArrayList(u8).initCapacity(arena, snakecase.len);
+ var buf = try std.array_list.Managed(u8).initCapacity(arena, snakecase.len);
defer buf.deinit();
var prev: u8 = 0;