Skip to content

Commit f6cdb2b

Browse files
committed
More progress
1 parent 2c500aa commit f6cdb2b

4 files changed

Lines changed: 27 additions & 36 deletions

File tree

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,23 @@
11
const std = @import("std");
22

3-
pub fn main() !void {
4-
var debug_allocator: std.heap.DebugAllocator(.{}) = .init;
5-
defer _ = debug_allocator.deinit();
6-
7-
const allocator = debug_allocator.allocator();
8-
9-
const args = try std.process.argsAlloc(allocator);
10-
defer std.process.argsFree(allocator, args);
11-
3+
pub fn main(init: std.process.Init) !void {
4+
const io = init.io;
5+
const allocator = init.arena.allocator();
6+
const args = try init.minimal.args.toSlice(allocator);
127
if (args.len < 2) {
138
std.log.err("usage: ./cat [src_file ...] dst_file", .{});
149
return error.InvalidArguments;
1510
}
1611

17-
const output_file = try std.fs.createFileAbsolute(args[args.len - 1], .{});
18-
defer output_file.close();
12+
const output_file = try std.Io.Dir.createFileAbsolute(io, args[args.len - 1], .{});
13+
defer output_file.close(io);
14+
var output_file_buf: [4096]u8 = undefined;
15+
var output_file_writer = output_file.writer(io, &output_file_buf);
1916

2017
for (args[1 .. args.len - 1]) |arg| {
21-
const file = try std.fs.openFileAbsolute(arg, .{ .mode = .read_only });
22-
defer file.close();
23-
24-
const data = try file.readToEndAlloc(allocator, 1_000_000);
25-
defer allocator.free(data);
26-
27-
try output_file.writeAll(data);
18+
const file = try std.Io.Dir.openFileAbsolute(io, arg, .{});
19+
defer file.close(io);
20+
var file_reader = file.reader(io, &.{});
21+
_ = try output_file_writer.interface.sendFileAll(&file_reader, .unlimited);
2822
}
2923
}

port/texasinstruments/msp430/build.zig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ pub fn build(b: *std.Build) void {
5858
generate_exe.root_module.addImport("regz", regz);
5959

6060
const generate_run = b.addRunArtifact(generate_exe);
61-
generate_run.max_stdio_size = std.math.maxInt(usize);
6261
generate_run.addFileArg(targetdb);
6362

6463
const generate_step = b.step("generate", "Generate chips file 'src/Chips.zig'");

tools/esp-image/src/elf2image.zig

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ var elf_file_reader_buf: [1024]u8 = undefined;
1111
var elf_file_hashing_buf: [std.crypto.hash.sha2.Sha256.digest_length]u8 = undefined;
1212
var output_writer_buf: [1024]u8 = undefined;
1313

14-
pub fn main() !void {
15-
var debug_allocator: std.heap.DebugAllocator(.{}) = .init;
16-
defer _ = debug_allocator.deinit();
17-
const allocator = debug_allocator.allocator();
14+
pub fn main(init: std.process.Init) !void {
15+
const io = init.io;
16+
const allocator = init.gpa;
1817

1918
const args = comptime clap.parseParamsComptime(
2019
\\--help Show this message
@@ -32,8 +31,8 @@ pub fn main() !void {
3231
\\
3332
);
3433

35-
const stderr = std.fs.File.stderr();
36-
var stderr_writer = stderr.writer(&.{});
34+
const stderr = std.Io.File.stderr();
35+
var stderr_writer = stderr.writer(io, &.{});
3736

3837
var diag: clap.Diagnostic = .{};
3938
var res = clap.parse(clap.Help, &args, .{
@@ -90,9 +89,9 @@ pub fn main() !void {
9089

9190
const use_segments = res.args.@"use-segments" != 0;
9291

93-
const elf_file = try std.fs.cwd().openFile(elf_path, .{});
92+
const elf_file = try std.Io.Dir.openFileAbsolute(elf_path, .{});
9493
defer elf_file.close();
95-
var elf_file_reader = elf_file.reader(&elf_file_reader_buf);
94+
var elf_file_reader = elf_file.reader(io, &elf_file_reader_buf);
9695

9796
var elf_file_hash: [std.crypto.hash.sha2.Sha256.digest_length]u8 = undefined;
9897
{

tools/generate_linker_script.zig

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,20 @@ var writer_buf: [1024]u8 = undefined;
1616

1717
pub fn main(init: std.process.Init) !void {
1818
const io = init.io;
19-
const gpa = init.gpa;
20-
const arena = init.arena;
19+
const arena = init.arena.allocator();
2120

22-
const args = try init.minimal.args.toSlice(arena.allocator());
21+
const args = try init.minimal.args.toSlice(arena);
2322
if (args.len < 3 or args.len > 4) {
2423
return error.UsageError;
2524
}
2625

2726
const json_args = args[1];
2827
const output_path = args[2];
2928

30-
const parsed_args = try std.json.parseFromSliceLeaky(Args, gpa, json_args, .{});
29+
const parsed_args = try std.json.parseFromSliceLeaky(Args, arena, json_args, .{});
3130

3231
const maybe_user_linker_script = if (args.len == 4)
33-
try std.Io.Dir.cwd().readFileAlloc(io, args[3], gpa, .limited(100 * 1024 * 1024))
32+
try std.Io.Dir.cwd().readFileAlloc(io, args[3], arena, .limited(100 * 1024 * 1024))
3433
else
3534
null;
3635

@@ -51,14 +50,14 @@ pub fn main(init: std.process.Init) !void {
5150
});
5251

5352
// name all unnamed regions
54-
const region_names: [][]const u8 = try gpa.alloc([]const u8, parsed_args.memory_regions.len);
53+
const region_names: [][]const u8 = try arena.alloc([]const u8, parsed_args.memory_regions.len);
5554
{
5655
var counters: [5]usize = @splat(0);
5756
for (region_names, parsed_args.memory_regions) |*region_name, region| {
5857
if (region.name) |name| {
59-
region_name.* = try gpa.dupe(u8, name);
58+
region_name.* = try arena.dupe(u8, name);
6059
} else {
61-
region_name.* = try std.fmt.allocPrint(gpa, "{s}{}", .{
60+
region_name.* = try std.fmt.allocPrint(arena, "{s}{}", .{
6261
@tagName(region.tag),
6362
counters[@intFromEnum(region.tag)],
6463
});
@@ -249,7 +248,7 @@ pub fn main(init: std.process.Init) !void {
249248
\\
250249
, .{
251250
if (!parsed_args.ram_image)
252-
try std.fmt.allocPrint(gpa, "{s} AT> {s}", .{ ram_region_name, flash_region_name })
251+
try std.fmt.allocPrint(arena, "{s} AT> {s}", .{ ram_region_name, flash_region_name })
253252
else
254253
ram_region_name,
255254
ram_region_name,

0 commit comments

Comments
 (0)