From e75c711c68896f5952793601f156c921c814caab Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Thu, 30 Dec 2021 21:12:32 -0800 Subject: Upgrade to latest Zig, remove dependency on patched version of Zig (#96) * Prepare to upgrade zig * zig fmt * AllocGate * Update data_url.zig * wip * few files * just headers now? * I think everything works? * Update mimalloc * Update hash_map.zig * Perf improvements to compensate for Allocgate * Bump * :camera: * Update bun.lockb * Less branching * [js parser] Slightly reduce memory usage * Update js_parser.zig * WIP remove unused * [JS parser] WIP support for `with` keyword * Remove more dead code * Fix all the build errors! * cleanup * Move `network_thread` up * Bump peechy * Update README.md --- src/resolver/resolve_path.zig | 117 +++++------------------------------------- 1 file changed, 14 insertions(+), 103 deletions(-) (limited to 'src/resolver/resolve_path.zig') diff --git a/src/resolver/resolve_path.zig b/src/resolver/resolve_path.zig index 587a8e9ed..f7335a8b4 100644 --- a/src/resolver/resolve_path.zig +++ b/src/resolver/resolve_path.zig @@ -29,8 +29,6 @@ pub fn longestCommonPathGeneric(strings: []const []const u8, comptime separator: min_length = @minimum(str.len, min_length); } - var last_common_separator_is_at_end = false; - var index: usize = 0; var last_common_separator: usize = 0; @@ -316,7 +314,7 @@ pub fn relativePlatform(from: []const u8, to: []const u8, comptime platform: Pla return relativeNormalized(normalized_from, normalized_to, platform, always_copy); } -pub fn relativeAlloc(allocator: *std.mem.Allocator, from: []const u8, to: []const u8) ![]const u8 { +pub fn relativeAlloc(allocator: std.mem.Allocator, from: []const u8, to: []const u8) ![]const u8 { if (comptime FeatureFlags.use_std_path_relative) { return try std.fs.path.relative(allocator, from, to); } else { @@ -430,7 +428,7 @@ pub const Platform = enum { }; } - pub const current: Platform = switch (std.Target.current.os.tag) { + pub const current: Platform = switch (@import("builtin").target.os.tag) { .windows => Platform.windows, else => Platform.posix, }; @@ -506,7 +504,7 @@ pub const Platform = enum { pub fn resolve(comptime _platform: Platform) Platform { if (comptime _platform == .auto) { - return switch (std.Target.current.os.tag) { + return switch (@import("builtin").target.os.tag) { .windows => Platform.windows, .freestanding, .emscripten, .other => Platform.loose, @@ -526,19 +524,14 @@ pub fn normalizeString(str: []const u8, comptime allow_above_root: bool, comptim pub fn normalizeStringBuf(str: []const u8, buf: []u8, comptime allow_above_root: bool, comptime _platform: Platform, comptime preserve_trailing_slash: anytype) []u8 { const platform = comptime _platform.resolve(); - switch (platform) { + switch (comptime platform) { .auto => unreachable, .windows => { - return normalizeStringWindowsBuf( - str, - buf, - allow_above_root, - preserve_trailing_slash, - ); + @compileError("Not implemented"); }, .posix => { - return normalizeStringPosixBuf( + return normalizeStringLooseBuf( str, buf, allow_above_root, @@ -557,7 +550,7 @@ pub fn normalizeStringBuf(str: []const u8, buf: []u8, comptime allow_above_root: } } -pub fn normalizeStringAlloc(allocator: *std.mem.Allocator, str: []const u8, comptime allow_above_root: bool, comptime _platform: Platform) ![]const u8 { +pub fn normalizeStringAlloc(allocator: std.mem.Allocator, str: []const u8, comptime allow_above_root: bool, comptime _platform: Platform) ![]const u8 { return try allocator.dupe(u8, normalizeString(str, allow_above_root, _platform)); } @@ -602,12 +595,6 @@ pub fn joinStringBuf(buf: []u8, _parts: anytype, comptime _platform: Platform) [ return std.fs.path.join(&alloc.allocator, _parts) catch unreachable; } - if (_parts.len == 0) { - return _cwd; - } - - var parts = _parts; - var written: usize = 0; const platform = comptime _platform.resolve(); @@ -631,19 +618,18 @@ pub fn joinStringBuf(buf: []u8, _parts: anytype, comptime _platform: Platform) [ // Preserve leading separator if (_parts[0].len > 0 and _parts[0][0] == _platform.separator()) { - const out = switch (platform) { - .loose => normalizeStringLooseBuf(parser_join_input_buffer[0..written], buf[1..], false, false), - .windows => normalizeStringWindows(parser_join_input_buffer[0..written], buf[1..], false, false), - else => normalizeStringPosixBuf(parser_join_input_buffer[0..written], buf[1..], false, false), + const out = switch (comptime platform) { + // .loose => + .windows => @compileError("Not implemented yet"), + else => normalizeStringLooseBuf(parser_join_input_buffer[0..written], buf[1..], false, false), }; buf[0] = _platform.separator(); return buf[0 .. out.len + 1]; } else { return switch (platform) { - .loose => normalizeStringLooseBuf(parser_join_input_buffer[0..written], buf[0..], false, false), - .windows => normalizeStringWindows(parser_join_input_buffer[0..written], buf[0..], false, false), - else => normalizeStringPosixBuf(parser_join_input_buffer[0..written], buf[0..], false, false), + else => normalizeStringLooseBuf(parser_join_input_buffer[0..written], buf[0..], false, false), + .windows => @compileError("Not implemented yet"), }; } } @@ -676,7 +662,6 @@ inline fn _joinAbsStringBuf(comptime is_sentinel: bool, comptime ReturnType: typ var cwd = _cwd; var out: usize = 0; // When parts[0] is absolute, we treat that as, effectively, the cwd - var ignore_cwd = cwd.len == 0; // Windows leading separators can be a lot of things... // So we need to do this instead of just checking the first char. @@ -712,7 +697,7 @@ inline fn _joinAbsStringBuf(comptime is_sentinel: bool, comptime ReturnType: typ std.debug.assert(out < buf.len); std.mem.copy(u8, buf[0..out], start); - for (parts) |part, i| { + for (parts) |part| { // Do not normalize here // It will break stuff! var normalized_part = part; @@ -774,71 +759,6 @@ pub fn lastIndexOfSeparatorLoose(slice: []const u8) ?usize { return std.mem.lastIndexOfAny(u8, slice, "/\\"); } -pub fn normalizeStringPosix(str: []const u8, comptime allow_above_root: bool, comptime preserve_trailing_slash: bool) []u8 { - return normalizeStringGenericBuf( - str, - &parser_buffer, - allow_above_root, - std.fs.path.sep_posix, - isSepPosix, - lastIndexOfSeparatorPosix, - preserve_trailing_slash, - ); -} - -pub fn normalizeStringPosixBuf( - str: []const u8, - buf: []u8, - comptime allow_above_root: bool, - comptime preserve_trailing_slash: bool, -) []u8 { - return normalizeStringGeneric( - str, - buf, - allow_above_root, - std.fs.path.sep_posix, - isSepPosix, - lastIndexOfSeparatorPosix, - preserve_trailing_slash, - ); -} - -pub fn normalizeStringWindows(str: []const u8, comptime allow_above_root: bool, comptime preserve_trailing_slash: bool) []u8 { - return normalizeStringGenericBuf( - str, - &parser_buffer, - allow_above_root, - std.fs.path.sep_windows, - isSepWin32, - lastIndexOfSeparatorWindows, - preserve_trailing_slash, - ); -} - -pub fn normalizeStringWindowsBuf(str: []const u8, buf: []u8, comptime allow_above_root: bool, comptime preserve_trailing_slash: bool) []u8 { - return normalizeStringGeneric( - str, - buf, - allow_above_root, - std.fs.path.sep_windows, - isSepWin32, - lastIndexOfSeparatorWindows, - preserve_trailing_slash, - ); -} - -pub fn normalizeStringLoose(str: []const u8, comptime allow_above_root: bool, comptime preserve_trailing_slash: bool) []u8 { - return normalizeStringGenericBuf( - str, - &parser_buffer, - allow_above_root, - std.fs.path.sep_posix, - isSepAny, - lastIndexOfSeparatorLoose, - preserve_trailing_slash, - ); -} - pub fn normalizeStringLooseBuf(str: []const u8, buf: []u8, comptime allow_above_root: bool, comptime preserve_trailing_slash: bool) []u8 { return normalizeStringGeneric( str, @@ -1032,15 +952,6 @@ test "relative" { var t = tester.Tester.t(default_allocator); defer t.report(@src()); - const strs = [_][]const u8{ - "/var/boo/foo/", - "/var/boo/foo/baz/", - "/var/boo/foo/beep/", - "/var/boo/foo/beep/bleep", - "/bar/baz", - "/bar/not-related", - "/bar/file.txt", - }; _ = t.expect("var/foo", try relativeAlloc(default_allocator, "/", "/var/foo/"), @src()); _ = t.expect("index.js", try relativeAlloc(default_allocator, "/app/public/", "/app/public/index.js"), @src()); _ = t.expect("..", try relativeAlloc(default_allocator, "/app/public/index.js", "/app/public/"), @src()); -- cgit v1.2.3 recompile-linux-dependencies'>jarred/precompile-linux-dependencies Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/bench/snippets/emitter.js (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2022-12-05Fix alignment edgecaseGravatar Jarred Sumner 2-3/+3
2022-12-05Make `console` an `AsyncIterable`Gravatar Jarred Sumner 17-116/+635
2022-12-05Update Process.hGravatar Jarred Sumner 1-0/+7
2022-12-05microbenchGravatar Jarred Sumner 1-1/+38
2022-12-05`process.stdin` exists but doesn't totally work yetGravatar Jarred Sumner 3-31/+150
2022-12-05[Bun.stdin] Fix handling ttyGravatar Jarred Sumner 2-4/+18
2022-12-05[internal] Add some logs for string encodingGravatar Jarred Sumner 1-1/+11
2022-12-05Fix "is not event emitter" errrorGravatar Jarred Sumner 1-4/+5
2022-12-05more tests for event emitter weirdnessGravatar Jarred Sumner 1-0/+59
2022-12-05"Fix" monkey-patching EventEmitter prototypeGravatar Jarred Sumner 4-35/+73
2022-12-04Update test-test.test.tsGravatar Jarred Sumner 1-0/+8
2022-12-04[bun:test] Fix crash when `test("foo")` is called without passing a functionGravatar Jarred Sumner 1-6/+13
2022-12-04Clean up more casesGravatar Jarred Sumner 1-6/+6
2022-12-04Fix race condition in child_processGravatar Jarred Sumner 1-9/+17
2022-12-04Update ZigGeneratedClasses.cppGravatar Jarred Sumner 1-0/+16
2022-12-04Handle exception when creating stdout/stderrGravatar Jarred Sumner 1-3/+10
2022-12-04Update ffi.zigGravatar Jarred Sumner 1-6/+6
2022-12-04Update child_processGravatar Jarred Sumner 5-22/+23
2022-12-04[breaking] `onExit` callback in Bun.spawn sets the first property to be the S...Gravatar Jarred Sumner 2-5/+40
2022-12-04[Bun.spawn] Introduce `Subprocess.prototype.signalCode`Gravatar Jarred Sumner 2-39/+118
2022-12-04Fix console.log sometimes incorrectly reporting undefinedGravatar Jarred Sumner 1-4/+4
2022-12-04[test] Ensure console.log(globalThis) doesn't crashGravatar Jarred Sumner 1-0/+1
2022-12-04Rename fileGravatar Jarred Sumner 1-0/+0
2022-12-04[internal] Make string comparisons fasterGravatar Jarred Sumner 25-256/+150
2022-12-04Fix running zig testsGravatar Jarred Sumner 1-1/+1
2022-12-04Mildly faster startup timeGravatar Jarred Sumner 11-52/+63
2022-12-04:scissors:Gravatar Jarred Sumner 3-3/+3
2022-12-04Add some basic tests for process.stdoutGravatar Jarred Sumner 9-58/+124
2022-12-04Re-add missing globalGravatar Jarred Sumner 1-0/+1
2022-12-04Silence incorrect test failureGravatar Jarred Sumner 1-0/+1
2022-12-04content-range is inclusiveGravatar Jarred Sumner 1-1/+1
2022-12-04Update README.mdGravatar Jarred Sumner 1-6/+33
2022-12-04[Bun.serve] Implement `Content-Range` support with `Bun.file()`Gravatar Jarred Sumner 5-16/+286
2022-12-04[may revert later] Coerce Infinity to max int 64, -Infinity & NaN to min int64Gravatar Jarred Sumner 1-2/+22
2022-12-03Update .gitignoreGravatar Jarred Sumner 1-0/+1
2022-12-03[test] Add a couple tests for subarray toEqualGravatar Jarred Sumner 1-0/+3
2022-12-03[fetch] Fix bug where .arrayBuffer() on an empty Response body returned a `Ui...Gravatar Jarred Sumner 1-1/+1
2022-12-03Don't invalidate previous file descriptro to avoid tripping assertionGravatar Jarred Sumner 1-5/+0
2022-12-03miscGravatar Jarred Sumner 3-1/+31
2022-12-03Add missing typeGravatar Jarred Sumner 1-0/+5
2022-12-03`process.stdout` and `process.stderr`Gravatar Jarred Sumner 15-564/+1537
2022-12-03simdutf ascii validation is about 20% faster on arm64 than our zig simd @Vect...Gravatar Jarred Sumner 1-0/+3
2022-12-03typo in readme (#1576)Gravatar Reed Jones 1-2/+2