From: Brendan Hansen Date: Thu, 29 Dec 2022 03:47:18 +0000 (-0600) Subject: miscellaneous bugfixes X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=924f65cec2421002f395229b195e1ce42029f39c;p=onyx.git miscellaneous bugfixes --- diff --git a/core/memory/memory.onyx b/core/memory/memory.onyx index 3c04d26a..1b23c8b1 100644 --- a/core/memory/memory.onyx +++ b/core/memory/memory.onyx @@ -58,7 +58,9 @@ resize_slice :: (sl: [] $T, new_size: i32, allocator := context.allocator) -> [] #overload builtin.__make_overload :: macro (_: ^[] $T, count: u32, allocator := context.allocator) -> [] T { - return (package core.memory).make_slice(T, count, allocator); + ret := (package core.memory).make_slice(T, count, allocator); + memory.set(ret.data, 0, sizeof T * count); + return ret; } #overload diff --git a/core/net/net.onyx b/core/net/net.onyx index fc14abb8..2c2390f3 100644 --- a/core/net/net.onyx +++ b/core/net/net.onyx @@ -166,7 +166,7 @@ Socket_Poll_Status :: enum { socket_poll_all :: (sockets: [] ^Socket, timeout := -1, stat_buff: [] Socket_Poll_Status = .[]) { if sockets.count > stat_buff.count do return; - handles := (cast(^Socket.Handle) alloc.from_stack(sockets.count * sizeof Socket.Handle))[0 .. sockets.count]; + handles := alloc.array_from_stack(Socket.Handle, sockets.count); for i: sockets.count { handles[i] = sockets[i].handle; } diff --git a/tests/overload_return_type b/tests/overload_return_type new file mode 100644 index 00000000..fe5c5578 --- /dev/null +++ b/tests/overload_return_type @@ -0,0 +1,4 @@ +Working +Also working +Again, working +Super working diff --git a/tests/overload_return_type.onyx b/tests/overload_return_type.onyx new file mode 100644 index 00000000..0726802e --- /dev/null +++ b/tests/overload_return_type.onyx @@ -0,0 +1,31 @@ + +use core + +main :: () { + overloaded_proc(i32.{}) |> println(); + overloaded_proc(f32.{}) |> println(); + overloaded_proc(main) |> println(); + overloaded_proc() |> println(); +} + +overloaded_proc :: #match -> str {} + +#overload +overloaded_proc :: (_: i32) -> str { + return "Working"; +} + +#overload +overloaded_proc :: (_: f32) => { + return "Also working"; +} + +#overload +overloaded_proc :: (_) => { + return "Again, working"; +} + +#overload +overloaded_proc :: macro () => "Super working"; + + diff --git a/tests/parallel_for b/tests/parallel_for new file mode 100644 index 00000000..fbdf9320 --- /dev/null +++ b/tests/parallel_for @@ -0,0 +1 @@ +49995000 diff --git a/tests/parallel_for.onyx b/tests/parallel_for.onyx index 20009840..32808165 100644 --- a/tests/parallel_for.onyx +++ b/tests/parallel_for.onyx @@ -1,6 +1,4 @@ -#load "core/std" - -use package core +use core {sync, iter, println} main :: () { sum := 0;