aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar dave caruso <me@paperdave.net> 2023-08-08 22:27:18 -0700
committerGravatar GitHub <noreply@github.com> 2023-08-08 22:27:18 -0700
commit450b066cb812ebb69da111de6dd7aa00774266b4 (patch)
tree351ace4d85d849953c0b70bfca2b1510f15c32de
parent63f58f40267856ef5e8ff3e8b0c5720a6d870873 (diff)
downloadbun-450b066cb812ebb69da111de6dd7aa00774266b4.tar.gz
bun-450b066cb812ebb69da111de6dd7aa00774266b4.tar.zst
bun-450b066cb812ebb69da111de6dd7aa00774266b4.zip
Fix one of the astro segfaults, also fix bun init version (#4079)
* 4->16 * add assertions * fix version stuff
-rw-r--r--src/__global.zig24
-rw-r--r--src/string_immutable.zig13
2 files changed, 22 insertions, 15 deletions
diff --git a/src/__global.zig b/src/__global.zig
index 7bcdaeeda..9a33fff37 100644
--- a/src/__global.zig
+++ b/src/__global.zig
@@ -7,20 +7,26 @@ const StringTypes = @import("./string_types.zig");
const Mimalloc = @import("root").bun.Mimalloc;
const bun = @import("root").bun;
-const BASE_VERSION = "0.7";
-
pub const build_id = std.fmt.parseInt(u64, std.mem.trim(u8, @embedFile("./build-id"), "\n \r\t"), 10) catch unreachable;
+pub const version: @import("./install/semver.zig").Version = .{
+ .major = 0,
+ .minor = 7,
+ .patch = build_id,
+};
+
+const version_string = std.fmt.comptimePrint("{d}.{d}.{d}", .{ version.major, version.minor, version.patch });
+
pub const package_json_version = if (Environment.isDebug)
- std.fmt.comptimePrint(BASE_VERSION ++ ".{d}_debug", .{build_id})
+ version_string ++ "_debug"
else
- std.fmt.comptimePrint(BASE_VERSION ++ ".{d}", .{build_id});
+ version_string;
pub const package_json_version_with_sha = if (Environment.git_sha.len == 0)
package_json_version
else if (Environment.isDebug)
- std.fmt.comptimePrint(BASE_VERSION ++ ".{d}_debug ({s})", .{ build_id, Environment.git_sha[0..@min(Environment.git_sha.len, 8)] })
+ std.fmt.comptimePrint("{s}_debug ({s})", .{ version_string, Environment.git_sha[0..@min(Environment.git_sha.len, 8)] })
else
- std.fmt.comptimePrint(BASE_VERSION ++ ".{d} ({s})", .{ build_id, Environment.git_sha[0..@min(Environment.git_sha.len, 8)] });
+ std.fmt.comptimePrint("{s} ({s})", .{ version_string, Environment.git_sha[0..@min(Environment.git_sha.len, 8)] });
pub const os_name = if (Environment.isWindows)
"win32"
@@ -47,12 +53,6 @@ pub inline fn getStartTime() i128 {
return @import("root").bun.start_time;
}
-pub const version: @import("./install/semver.zig").Version = .{
- .major = 0,
- .minor = 6,
- .patch = build_id,
-};
-
pub fn setThreadName(name: StringTypes.stringZ) void {
if (Environment.isLinux) {
_ = std.os.prctl(.SET_NAME, .{@intFromPtr(name.ptr)}) catch 0;
diff --git a/src/string_immutable.zig b/src/string_immutable.zig
index 3aaec1314..fd5bcb00a 100644
--- a/src/string_immutable.zig
+++ b/src/string_immutable.zig
@@ -1480,9 +1480,12 @@ pub fn convertUTF16ToUTF8(list_: std.ArrayList(u8), comptime Type: type, utf16:
pub fn toUTF8AllocWithType(allocator: std.mem.Allocator, comptime Type: type, utf16: Type) ![]u8 {
if (bun.FeatureFlags.use_simdutf and comptime Type == []const u16) {
const length = bun.simdutf.length.utf8.from.utf16.le(utf16);
- // add 4 bytes of padding for SIMDUTF
- var list = try std.ArrayList(u8).initCapacity(allocator, length + 4);
+ // add 16 bytes of padding for SIMDUTF
+ var list = try std.ArrayList(u8).initCapacity(allocator, length + 16);
list = try convertUTF16ToUTF8(list, Type, utf16);
+ if (Environment.allow_assert) {
+ std.debug.assert(list.items.len == length);
+ }
return list.items;
}
@@ -1496,7 +1499,11 @@ pub fn toUTF8ListWithType(list_: std.ArrayList(u8), comptime Type: type, utf16:
var list = list_;
const length = bun.simdutf.length.utf8.from.utf16.le(utf16);
try list.ensureTotalCapacityPrecise(length + 16);
- return convertUTF16ToUTF8(list, Type, utf16);
+ const buf = try convertUTF16ToUTF8(list, Type, utf16);
+ if (Environment.allow_assert) {
+ std.debug.assert(buf.items.len == length);
+ }
+ return buf;
}
return toUTF8ListWithTypeBun(list_, Type, utf16);