authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-04-10 09:52:30-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-04-11 08:41:52-07:00
logd5eab33fd23351a8606cb69a846b1b753b4c7c4a
treea50c4811292b8f010e67d04f251f4c08be7f4e98
parent5a8b1bde5b3ce2628a8e490c3cef9fcc95f94ab5

docgen: avoid use of --enable-cache


1 files changed, 21 insertions(+), 40 deletions(-)

doc/docgen.zig+21-40
......@@ -325,7 +325,6 @@ const Code = struct {
325325 link_objects: []const []const u8,
326326 target_str: ?[]const u8,
327327 link_libc: bool,
328 backend_stage1: bool,
329328 link_mode: ?std.builtin.LinkMode,
330329 disable_cache: bool,
331330 verbose_cimport: bool,
......@@ -596,7 +595,6 @@ fn genToc(allocator: Allocator, tokenizer: *Tokenizer) !Toc {
596595 var link_mode: ?std.builtin.LinkMode = null;
597596 var disable_cache = false;
598597 var verbose_cimport = false;
599 var backend_stage1 = false;
600598 var additional_options = std.ArrayList([]const u8).init(allocator);
601599 defer additional_options.deinit();
602600
......@@ -631,8 +629,6 @@ fn genToc(allocator: Allocator, tokenizer: *Tokenizer) !Toc {
631629 link_libc = true;
632630 } else if (mem.eql(u8, end_tag_name, "link_mode_dynamic")) {
633631 link_mode = .Dynamic;
634 } else if (mem.eql(u8, end_tag_name, "backend_stage1")) {
635 backend_stage1 = true;
636632 } else if (mem.eql(u8, end_tag_name, "additonal_option")) {
637633 _ = try eatToken(tokenizer, Token.Id.Separator);
638634 const option = try eatToken(tokenizer, Token.Id.TagContent);
......@@ -660,7 +656,6 @@ fn genToc(allocator: Allocator, tokenizer: *Tokenizer) !Toc {
660656 .link_objects = try link_objects.toOwnedSlice(),
661657 .target_str = target_str,
662658 .link_libc = link_libc,
663 .backend_stage1 = backend_stage1,
664659 .link_mode = link_mode,
665660 .disable_cache = disable_cache,
666661 .verbose_cimport = verbose_cimport,
......@@ -1380,10 +1375,10 @@ fn genHtml(
13801375 var build_args = std.ArrayList([]const u8).init(allocator);
13811376 defer build_args.deinit();
13821377 try build_args.appendSlice(&[_][]const u8{
1383 zig_exe, "build-exe",
1384 "--name", code.name,
1385 "--color", "on",
1386 "--enable-cache", tmp_source_file_name,
1378 zig_exe, "build-exe",
1379 "--name", code.name,
1380 "--color", "on",
1381 name_plus_ext,
13871382 });
13881383 if (opt_zig_lib_dir) |zig_lib_dir| {
13891384 try build_args.appendSlice(&.{ "--zig-lib-dir", zig_lib_dir });
......@@ -1400,21 +1395,13 @@ fn genHtml(
14001395 }
14011396 for (code.link_objects) |link_object| {
14021397 const name_with_ext = try std.fmt.allocPrint(allocator, "{s}{s}", .{ link_object, obj_ext });
1403 const full_path_object = try fs.path.join(
1404 allocator,
1405 &[_][]const u8{ tmp_dir_name, name_with_ext },
1406 );
1407 try build_args.append(full_path_object);
1398 try build_args.append(name_with_ext);
14081399 try shell_out.print("{s} ", .{name_with_ext});
14091400 }
14101401 if (code.link_libc) {
14111402 try build_args.append("-lc");
14121403 try shell_out.print("-lc ", .{});
14131404 }
1414 if (code.backend_stage1) {
1415 try build_args.append("-fstage1");
1416 try shell_out.print("-fstage1", .{});
1417 }
14181405 const target = try std.zig.CrossTarget.parse(.{
14191406 .arch_os_abi = code.target_str orelse "native",
14201407 });
......@@ -1461,7 +1448,7 @@ fn genHtml(
14611448 try shell_out.writeAll(colored_stderr);
14621449 break :code_block;
14631450 }
1464 const exec_result = exec(allocator, &env_map, build_args.items) catch
1451 const exec_result = exec(allocator, &env_map, tmp_dir_name, build_args.items) catch
14651452 return parseError(tokenizer, code.source_token, "example failed to compile", .{});
14661453
14671454 if (code.verbose_cimport) {
......@@ -1480,15 +1467,10 @@ fn genHtml(
14801467 }
14811468 }
14821469
1483 const path_to_exe_dir = mem.trim(u8, exec_result.stdout, " \r\n");
1484 const path_to_exe_basename = try std.fmt.allocPrint(allocator, "{s}{s}", .{
1470 const path_to_exe = try std.fmt.allocPrint(allocator, "./{s}{s}", .{
14851471 code.name,
14861472 target.exeFileExt(),
14871473 });
1488 const path_to_exe = try fs.path.join(allocator, &[_][]const u8{
1489 path_to_exe_dir,
1490 path_to_exe_basename,
1491 });
14921474 const run_args = &[_][]const u8{path_to_exe};
14931475
14941476 var exited_with_signal = false;
......@@ -1498,6 +1480,7 @@ fn genHtml(
14981480 .allocator = allocator,
14991481 .argv = run_args,
15001482 .env_map = &env_map,
1483 .cwd = tmp_dir_name,
15011484 .max_output_bytes = max_doc_file_size,
15021485 });
15031486 switch (result.term) {
......@@ -1514,7 +1497,7 @@ fn genHtml(
15141497 }
15151498 break :blk result;
15161499 } else blk: {
1517 break :blk exec(allocator, &env_map, run_args) catch return parseError(tokenizer, code.source_token, "example crashed", .{});
1500 break :blk exec(allocator, &env_map, tmp_dir_name, run_args) catch return parseError(tokenizer, code.source_token, "example crashed", .{});
15181501 };
15191502
15201503 const escaped_stderr = try escapeHtml(allocator, result.stderr);
......@@ -1555,10 +1538,6 @@ fn genHtml(
15551538 try test_args.append("-lc");
15561539 try shell_out.print("-lc ", .{});
15571540 }
1558 if (code.backend_stage1) {
1559 try test_args.append("-fstage1");
1560 try shell_out.print("-fstage1", .{});
1561 }
15621541 if (code.target_str) |triple| {
15631542 try test_args.appendSlice(&[_][]const u8{ "-target", triple });
15641543 try shell_out.print("-target {s} ", .{triple});
......@@ -1579,7 +1558,7 @@ fn genHtml(
15791558 },
15801559 }
15811560 }
1582 const result = exec(allocator, &env_map, test_args.items) catch
1561 const result = exec(allocator, &env_map, null, test_args.items) catch
15831562 return parseError(tokenizer, code.source_token, "test failed", .{});
15841563 const escaped_stderr = try escapeHtml(allocator, result.stderr);
15851564 const escaped_stdout = try escapeHtml(allocator, result.stdout);
......@@ -1610,10 +1589,6 @@ fn genHtml(
16101589 try test_args.append("-lc");
16111590 try shell_out.print("-lc ", .{});
16121591 }
1613 if (code.backend_stage1) {
1614 try test_args.append("-fstage1");
1615 try shell_out.print("-fstage1", .{});
1616 }
16171592 const result = try ChildProcess.exec(.{
16181593 .allocator = allocator,
16191594 .argv = test_args.items,
......@@ -1778,7 +1753,7 @@ fn genHtml(
17781753 const colored_stderr = try termColor(allocator, escaped_stderr);
17791754 try shell_out.print("\n{s} ", .{colored_stderr});
17801755 } else {
1781 _ = exec(allocator, &env_map, build_args.items) catch return parseError(tokenizer, code.source_token, "example failed to compile", .{});
1756 _ = exec(allocator, &env_map, null, build_args.items) catch return parseError(tokenizer, code.source_token, "example failed to compile", .{});
17821757 }
17831758 try shell_out.writeAll("\n");
17841759 },
......@@ -1831,7 +1806,7 @@ fn genHtml(
18311806 try test_args.append(option);
18321807 try shell_out.print("{s} ", .{option});
18331808 }
1834 const result = exec(allocator, &env_map, test_args.items) catch return parseError(tokenizer, code.source_token, "test failed", .{});
1809 const result = exec(allocator, &env_map, null, test_args.items) catch return parseError(tokenizer, code.source_token, "test failed", .{});
18351810 const escaped_stderr = try escapeHtml(allocator, result.stderr);
18361811 const escaped_stdout = try escapeHtml(allocator, result.stdout);
18371812 try shell_out.print("\n{s}{s}\n", .{ escaped_stderr, escaped_stdout });
......@@ -1846,11 +1821,17 @@ fn genHtml(
18461821 }
18471822}
18481823
1849fn exec(allocator: Allocator, env_map: *process.EnvMap, args: []const []const u8) !ChildProcess.ExecResult {
1824fn exec(
1825 allocator: Allocator,
1826 env_map: *process.EnvMap,
1827 cwd: ?[]const u8,
1828 args: []const []const u8,
1829) !ChildProcess.ExecResult {
18501830 const result = try ChildProcess.exec(.{
18511831 .allocator = allocator,
18521832 .argv = args,
18531833 .env_map = env_map,
1834 .cwd = cwd,
18541835 .max_output_bytes = max_doc_file_size,
18551836 });
18561837 switch (result.term) {
......@@ -1877,12 +1858,12 @@ fn getBuiltinCode(
18771858 opt_zig_lib_dir: ?[]const u8,
18781859) ![]const u8 {
18791860 if (opt_zig_lib_dir) |zig_lib_dir| {
1880 const result = try exec(allocator, env_map, &.{
1861 const result = try exec(allocator, env_map, null, &.{
18811862 zig_exe, "build-obj", "--show-builtin", "--zig-lib-dir", zig_lib_dir,
18821863 });
18831864 return result.stdout;
18841865 } else {
1885 const result = try exec(allocator, env_map, &.{
1866 const result = try exec(allocator, env_map, null, &.{
18861867 zig_exe, "build-obj", "--show-builtin",
18871868 });
18881869 return result.stdout;