1
0
Fork 0
mirror of https://github.com/zigzap/zap.git synced 2025-10-21 07:34:08 +00:00

Update to Latest Zig

This commit is contained in:
jcalabro 2024-01-19 22:54:17 -05:00
parent 5b14759b4b
commit 2a63160c06
No known key found for this signature in database
GPG key ID: 3C944F6B91F0659F
6 changed files with 81 additions and 62 deletions

View file

@ -1,7 +1,7 @@
const std = @import("std");
const build_facilio = @import("facil.io/build.zig").build_facilio;
pub fn build(b: *std.build.Builder) !void {
pub fn build(b: *std.Build) !void {
const target = b.standardTargetOptions(.{});
// Standard release options allow the person running `zig build` to select
// between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall.
@ -16,8 +16,8 @@ pub fn build(b: *std.build.Builder) !void {
};
// create a module to be used internally.
var zap_module = b.createModule(.{
.source_file = .{ .path = "src/zap.zig" },
const zap_module = b.createModule(.{
.root_source_file = .{ .path = "src/zap.zig" },
});
// register the module so it can be referenced using the package manager.
@ -81,7 +81,7 @@ pub fn build(b: *std.build.Builder) !void {
});
example.linkLibrary(facilio);
example.addModule("zap", zap_module);
example.root_module.addImport("zap", zap_module);
// const example_run = example.run();
const example_run = b.addRunArtifact(example);
@ -120,7 +120,7 @@ pub fn build(b: *std.build.Builder) !void {
.optimize = optimize,
});
auth_tests.linkLibrary(facilio);
auth_tests.addModule("zap", zap_module);
auth_tests.root_module.addImport("zap", zap_module);
const run_auth_tests = b.addRunArtifact(auth_tests);
const install_auth_tests = b.addInstallArtifact(auth_tests, .{});
@ -133,7 +133,7 @@ pub fn build(b: *std.build.Builder) !void {
.optimize = optimize,
});
mustache_tests.linkLibrary(facilio);
mustache_tests.addModule("zap", zap_module);
mustache_tests.root_module.addImport("zap", zap_module);
const run_mustache_tests = b.addRunArtifact(mustache_tests);
const install_mustache_tests = b.addInstallArtifact(mustache_tests, .{});
@ -147,7 +147,7 @@ pub fn build(b: *std.build.Builder) !void {
});
httpparams_tests.linkLibrary(facilio);
httpparams_tests.addModule("zap", zap_module);
httpparams_tests.root_module.addImport("zap", zap_module);
const run_httpparams_tests = b.addRunArtifact(httpparams_tests);
// TODO: for some reason, tests aren't run more than once unless
// dependencies have changed.
@ -164,7 +164,7 @@ pub fn build(b: *std.build.Builder) !void {
});
sendfile_tests.linkLibrary(facilio);
sendfile_tests.addModule("zap", zap_module);
sendfile_tests.root_module.addImport("zap", zap_module);
const run_sendfile_tests = b.addRunArtifact(sendfile_tests);
const install_sendfile_tests = b.addInstallArtifact(sendfile_tests, .{});
@ -197,7 +197,7 @@ pub fn build(b: *std.build.Builder) !void {
//
// pkghash
//
var pkghash_exe = b.addExecutable(.{
const pkghash_exe = b.addExecutable(.{
.name = "pkghash",
.root_source_file = .{ .path = "./tools/pkghash.zig" },
.target = target,
@ -211,7 +211,7 @@ pub fn build(b: *std.build.Builder) !void {
//
// announceybot
//
var announceybot_exe = b.addExecutable(.{
const announceybot_exe = b.addExecutable(.{
.name = "announceybot",
.root_source_file = .{ .path = "./tools/announceybot.zig" },
.target = target,

View file

@ -1 +1,12 @@
.{ .name = "zap", .version = "0.4.0" }
.{
.name = "zap",
.version = "0.4.0",
.paths = .{
"build.zig",
"build.zig.zon",
"doc",
"flake.nix",
"src",
"shell.nix",
},
}

View file

@ -2,11 +2,11 @@ const std = @import("std");
pub fn build_facilio(
comptime subdir: []const u8,
b: *std.build.Builder,
target: std.zig.CrossTarget,
b: *std.Build,
target: std.Build.ResolvedTarget,
optimize: std.builtin.OptimizeMode,
use_openssl: bool,
) !*std.build.CompileStep {
) !*std.Build.Step.Compile {
const lib = b.addStaticLibrary(.{
.name = "facil.io",
.target = target,
@ -15,7 +15,7 @@ pub fn build_facilio(
// Generate flags
var flags = std.ArrayList([]const u8).init(std.heap.page_allocator);
if (lib.optimize != .Debug) try flags.append("-Os");
if (lib.root_module.optimize != .Debug) try flags.append("-Os");
try flags.append("-Wno-return-type-c-linkage");
try flags.append("-fno-sanitize=undefined");
@ -26,7 +26,7 @@ pub fn build_facilio(
//
try flags.append("-DFIO_HTTP_EXACT_LOGGING");
if (target.getAbi() == .musl)
if (target.result.abi == .musl)
try flags.append("-D_LARGEFILE64_SOURCE");
if (use_openssl)
try flags.append("-DHAVE_OPENSSL -DFIO_TLS_FOUND");
@ -42,7 +42,9 @@ pub fn build_facilio(
lib.addIncludePath(.{ .path = subdir ++ "/lib/facil/tls" });
// C source files
lib.addCSourceFiles(&.{
lib.addCSourceFiles(
.{
.files = &.{
subdir ++ "/lib/facil/fio.c",
subdir ++ "/lib/facil/fio_zig.c",
subdir ++ "/lib/facil/http/http.c",
@ -59,13 +61,19 @@ pub fn build_facilio(
subdir ++ "/lib/facil/fiobj/fiobject.c",
subdir ++ "/lib/facil/fiobj/fiobj_mustache.c",
subdir ++ "/lib/facil/cli/fio_cli.c",
}, flags.items);
},
.flags = flags.items,
},
);
if (use_openssl) {
lib.addCSourceFiles(&.{
lib.addCSourceFiles(.{
.files = &.{
subdir ++ "/lib/facil/tls/fio_tls_openssl.c",
subdir ++ "/lib/facil/tls/fio_tls_missing.c",
}, flags.items);
},
.flags = flags.items,
});
}
// link against libc

View file

@ -118,10 +118,10 @@ pub const struct_fio_str_info_s = extern struct {
pub const fio_str_info_s = struct_fio_str_info_s;
pub extern fn http_send_body(h: [*c]http_s, data: ?*anyopaque, length: usize) c_int;
pub fn fiobj_each1(arg_o: FIOBJ, arg_start_at: usize, arg_task: ?*const fn (FIOBJ, ?*anyopaque) callconv(.C) c_int, arg_arg: ?*anyopaque) callconv(.C) usize {
var o = arg_o;
var start_at = arg_start_at;
var task = arg_task;
var arg = arg_arg;
const o = arg_o;
const start_at = arg_start_at;
const task = arg_task;
const arg = arg_arg;
if ((((o != 0) and ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 1))))) == @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 0)))))) and ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6))))) != @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6)))))) and (fiobj_type_vtable(o).*.each != null)) return fiobj_type_vtable(o).*.each.?(o, start_at, task, arg);
return 0;
}
@ -288,8 +288,8 @@ pub const fiobj_object_header_s = extern struct {
ref: u32,
};
pub fn fiobj_type_is(arg_o: FIOBJ, arg_type: fiobj_type_enum) callconv(.C) usize {
var o = arg_o;
var @"type" = arg_type;
const o = arg_o;
const @"type" = arg_type;
while (true) {
switch (@as(c_int, @bitCast(@as(c_uint, @"type")))) {
@as(c_int, 1) => return @as(usize, @bitCast(@as(c_long, @intFromBool(((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 1))))) != 0) or (@as(c_int, @bitCast(@as(c_uint, @as([*c]fiobj_type_enum, @ptrFromInt(o))[@as(c_uint, @intCast(@as(c_int, 0)))]))) == FIOBJ_T_NUMBER))))),
@ -311,7 +311,7 @@ pub fn fiobj_type_is(arg_o: FIOBJ, arg_type: fiobj_type_enum) callconv(.C) usize
return @as(usize, @bitCast(@as(c_long, @intFromBool((((o != 0) and ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 1))))) == @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 0)))))) and ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6))))) != @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6)))))) and (@as(c_int, @bitCast(@as(c_uint, @as([*c]fiobj_type_enum, @ptrCast(@alignCast(@as(?*anyopaque, @ptrFromInt(o & ~@as(usize, @bitCast(@as(c_long, @as(c_int, 7)))))))))[@as(c_uint, @intCast(@as(c_int, 0)))]))) == @as(c_int, @bitCast(@as(c_uint, @"type"))))))));
}
pub fn fiobj_type(arg_o: FIOBJ) callconv(.C) fiobj_type_enum {
var o = arg_o;
const o = arg_o;
if (!(o != 0)) return @as(u8, @bitCast(@as(i8, @truncate(FIOBJ_T_NULL))));
if ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 1))))) != 0) return @as(u8, @bitCast(@as(i8, @truncate(FIOBJ_T_NUMBER))));
if ((o & @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6))))) == @as(c_ulong, @bitCast(@as(c_long, @as(c_int, 6))))) return @as(u8, @bitCast(@as(u8, @truncate(o))));
@ -326,7 +326,7 @@ pub extern const FIOBJECT_VTABLE_ARRAY: fiobj_object_vtable_s;
pub extern const FIOBJECT_VTABLE_HASH: fiobj_object_vtable_s;
pub extern const FIOBJECT_VTABLE_DATA: fiobj_object_vtable_s;
pub fn fiobj_type_vtable(arg_o: FIOBJ) callconv(.C) [*c]const fiobj_object_vtable_s {
var o = arg_o;
const o = arg_o;
while (true) {
switch (@as(c_int, @bitCast(@as(c_uint, fiobj_type(o))))) {
@as(c_int, 1) => return &FIOBJECT_VTABLE_NUMBER,
@ -361,7 +361,7 @@ pub fn fiobj_obj2float(o: FIOBJ) callconv(.C) f64 {
pub extern fn fio_ltocstr(c_long) fio_str_info_s;
pub fn fiobj_obj2cstr(o: FIOBJ) callconv(.C) fio_str_info_s {
if (!(o != 0)) {
var ret: fio_str_info_s = fio_str_info_s{
const ret: fio_str_info_s = fio_str_info_s{
.capa = @as(usize, @bitCast(@as(c_long, @as(c_int, 0)))),
.len = @as(usize, @bitCast(@as(c_long, @as(c_int, 4)))),
.data = @as([*c]u8, @ptrFromInt(@intFromPtr("null"))),
@ -374,7 +374,7 @@ pub fn fiobj_obj2cstr(o: FIOBJ) callconv(.C) fio_str_info_s {
switch (@as(c_int, @bitCast(@as(c_uint, @as(u8, @bitCast(@as(u8, @truncate(o)))))))) {
@as(c_int, 6) => {
{
var ret: fio_str_info_s = fio_str_info_s{
const ret: fio_str_info_s = fio_str_info_s{
.capa = @as(usize, @bitCast(@as(c_long, @as(c_int, 0)))),
.len = @as(usize, @bitCast(@as(c_long, @as(c_int, 4)))),
.data = @as([*c]u8, @ptrFromInt(@intFromPtr("null"))),
@ -384,7 +384,7 @@ pub fn fiobj_obj2cstr(o: FIOBJ) callconv(.C) fio_str_info_s {
},
@as(c_int, 38) => {
{
var ret: fio_str_info_s = fio_str_info_s{
const ret: fio_str_info_s = fio_str_info_s{
.capa = @as(usize, @bitCast(@as(c_long, @as(c_int, 0)))),
.len = @as(usize, @bitCast(@as(c_long, @as(c_int, 5)))),
.data = @as([*c]u8, @ptrFromInt(@intFromPtr("false"))),
@ -394,7 +394,7 @@ pub fn fiobj_obj2cstr(o: FIOBJ) callconv(.C) fio_str_info_s {
},
@as(c_int, 22) => {
{
var ret: fio_str_info_s = fio_str_info_s{
const ret: fio_str_info_s = fio_str_info_s{
.capa = @as(usize, @bitCast(@as(c_long, @as(c_int, 0)))),
.len = @as(usize, @bitCast(@as(c_long, @as(c_int, 4)))),
.data = @as([*c]u8, @ptrFromInt(@intFromPtr("true"))),
@ -556,8 +556,8 @@ pub extern fn http_date2rfc7231(target: [*c]u8, tmbuf: [*c]struct_tm) usize;
pub extern fn http_date2rfc2109(target: [*c]u8, tmbuf: [*c]struct_tm) usize;
pub extern fn http_date2rfc2822(target: [*c]u8, tmbuf: [*c]struct_tm) usize;
pub fn http_date2str(arg_target: [*c]u8, arg_tmbuf: [*c]struct_tm) callconv(.C) usize {
var target = arg_target;
var tmbuf = arg_tmbuf;
const target = arg_target;
const tmbuf = arg_tmbuf;
return http_date2rfc7231(target, tmbuf);
}
pub extern fn http_time2str(target: [*c]u8, t: time_t) usize;

View file

@ -122,7 +122,7 @@ pub fn Basic(comptime Lookup: type, comptime kind: BasicAuthStrategy) type {
);
return .AuthFailed;
}
var decoded = buffer[0..decoded_size];
const decoded = buffer[0..decoded_size];
decoder.decode(decoded, encoded) catch |err| {
zap.debug(
"ERROR: UserPassAuth: unable to decode `{s}`: {any}\n",
@ -400,7 +400,7 @@ pub fn UserPassSession(comptime Lookup: type, comptime lockedPwLookups: bool) ty
lookup: *Lookup,
args: UserPassSessionArgs,
) !Self {
var ret: Self = .{
const ret: Self = .{
.allocator = allocator,
.settings = .{
.usernameParam = try allocator.dupe(u8, args.usernameParam),

View file

@ -50,7 +50,7 @@ pub fn Handler(comptime ContextType: type) type {
/// This function will end the HTTP stage of the connection and attempt to "upgrade" to a WebSockets connection.
pub fn upgrade(h: [*c]fio.http_s, settings: *WebSocketSettings) WebSocketError!void {
var fio_settings: fio.websocket_settings_s = .{
const fio_settings: fio.websocket_settings_s = .{
.on_message = internal_on_message,
.on_open = internal_on_open,
.on_ready = internal_on_ready,
@ -64,8 +64,8 @@ pub fn Handler(comptime ContextType: type) type {
}
fn internal_on_message(handle: WsHandle, msg: fio.fio_str_info_s, is_text: u8) callconv(.C) void {
var user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
var message = msg.data[0..msg.len];
const user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
const message = msg.data[0..msg.len];
if (user_provided_settings) |settings| {
if (settings.on_message) |on_message| {
on_message(settings.context, handle, message, is_text == 1);
@ -74,7 +74,7 @@ pub fn Handler(comptime ContextType: type) type {
}
fn internal_on_open(handle: WsHandle) callconv(.C) void {
var user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
const user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
if (user_provided_settings) |settings| {
if (settings.on_open) |on_open| {
on_open(settings.context, handle);
@ -83,7 +83,7 @@ pub fn Handler(comptime ContextType: type) type {
}
fn internal_on_ready(handle: WsHandle) callconv(.C) void {
var user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
const user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
if (user_provided_settings) |settings| {
if (settings.on_ready) |on_ready| {
on_ready(settings.context, handle);
@ -92,7 +92,7 @@ pub fn Handler(comptime ContextType: type) type {
}
fn internal_on_shutdown(handle: WsHandle) callconv(.C) void {
var user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
const user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(fio.websocket_udata_get(handle))));
if (user_provided_settings) |settings| {
if (settings.on_shutdown) |on_shutdown| {
on_shutdown(settings.context, handle);
@ -101,7 +101,7 @@ pub fn Handler(comptime ContextType: type) type {
}
fn internal_on_close(uuid: isize, udata: ?*anyopaque) callconv(.C) void {
var user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(udata)));
const user_provided_settings: ?*WebSocketSettings = @as(?*WebSocketSettings, @ptrCast(@alignCast(udata)));
if (user_provided_settings) |settings| {
if (settings.on_close) |on_close| {
on_close(settings.context, uuid);
@ -192,7 +192,7 @@ pub fn Handler(comptime ContextType: type) type {
/// we need it to look up the ziggified callbacks.
pub inline fn subscribe(handle: WsHandle, args: *SubscribeArgs) WebSocketError!usize {
if (handle == null) return error.SubscribeError;
var fio_args: fio.websocket_subscribe_s_zigcompat = .{
const fio_args: fio.websocket_subscribe_s_zigcompat = .{
.ws = handle.?,
.channel = util.str2fio(args.channel),
.on_message = if (args.on_message) |_| internal_subscription_on_message else null,