From 924f65cec2421002f395229b195e1ce42029f39c Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 28 Dec 2022 21:47:18 -0600 Subject: [PATCH] miscellaneous bugfixes --- core/memory/memory.onyx | 4 +++- core/net/net.onyx | 2 +- tests/overload_return_type | 4 ++++ tests/overload_return_type.onyx | 31 +++++++++++++++++++++++++++++++ tests/parallel_for | 1 + tests/parallel_for.onyx | 4 +--- 6 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 tests/overload_return_type create mode 100644 tests/overload_return_type.onyx create mode 100644 tests/parallel_for 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; -- 2.25.1