From 7cdf37eaf6ec9b4f2f4adf527eea55c7bc716472 Mon Sep 17 00:00:00 2001 From: Laytan Laats Date: Mon, 3 Jul 2023 01:22:36 +0200 Subject: [PATCH 01/16] exit with code 1 on `odin test` failure --- src/llvm_backend.cpp | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 12abe7b16..6a4046d8d 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -1825,25 +1825,45 @@ gb_internal lbProcedure *lb_create_main_procedure(lbModule *m, lbProcedure *star TEMPORARY_ALLOCATOR_GUARD(); auto args = array_make(temporary_allocator(), 1); args[0] = lb_addr_load(p, all_tests_slice); - lb_emit_call(p, runner, args); + lbValue result = lb_emit_call(p, runner, args); + + lbBlock *block_success = lb_create_block(p, "success"); + lbBlock *block_failure = lb_create_block(p, "failure"); + + lbValue result_success = lb_emit_comp(p, Token_CmpEq, result, lb_const_bool(m, t_bool, true)); + lb_emit_if(p, result_success, block_success, block_failure); + + lbValue exit_runner = lb_find_package_value(m, str_lit("os"), str_lit("exit")); + + lb_start_block(p, block_success); + { + auto exit_args = array_make(temporary_allocator(), 1); + exit_args[0] = lb_const_int(m, t_int, 0); + lb_emit_call(p, exit_runner, exit_args); + } + + lb_start_block(p, block_failure); + { + auto exit_args = array_make(temporary_allocator(), 1); + exit_args[0] = lb_const_int(m, t_int, 1); + lb_emit_call(p, exit_runner, exit_args); + } } else { if (m->info->entry_point != nullptr) { lbValue entry_point = lb_find_procedure_value_from_entity(m, m->info->entry_point); lb_emit_call(p, entry_point, {}, ProcInlining_no_inline); } - } + if (call_cleanup) { + lbValue cleanup_runtime_value = {cleanup_runtime->value, cleanup_runtime->type}; + lb_emit_call(p, cleanup_runtime_value, {}, ProcInlining_none); + } - if (call_cleanup) { - lbValue cleanup_runtime_value = {cleanup_runtime->value, cleanup_runtime->type}; - lb_emit_call(p, cleanup_runtime_value, {}, ProcInlining_none); - } - - - if (is_dll_main) { - LLVMBuildRet(p->builder, LLVMConstInt(lb_type(m, t_i32), 1, false)); - } else { - LLVMBuildRet(p->builder, LLVMConstInt(lb_type(m, t_i32), 0, false)); + if (is_dll_main) { + LLVMBuildRet(p->builder, LLVMConstInt(lb_type(m, t_i32), 1, false)); + } else { + LLVMBuildRet(p->builder, LLVMConstInt(lb_type(m, t_i32), 0, false)); + } } lb_end_procedure_body(p); From 7b89f258189f817bcc177bbc4426c48f3ccd9127 Mon Sep 17 00:00:00 2001 From: ramn Date: Sat, 8 Jul 2023 23:46:51 +0200 Subject: [PATCH 02/16] Fix #2637 where testing.expect_value can't compare nils --- core/testing/testing.odin | 5 +++-- tests/issues/run.bat | 1 + tests/issues/run.sh | 1 + tests/issues/test_issue_2637.odin | 13 +++++++++++++ 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 tests/issues/test_issue_2637.odin diff --git a/core/testing/testing.odin b/core/testing/testing.odin index 0ceb58e33..1d738bbd1 100644 --- a/core/testing/testing.odin +++ b/core/testing/testing.odin @@ -4,6 +4,7 @@ import "core:fmt" import "core:io" import "core:time" import "core:intrinsics" +import "core:reflect" // IMPORTANT NOTE: Compiler requires this layout Test_Signature :: proc(^T) @@ -89,7 +90,7 @@ expect :: proc(t: ^T, ok: bool, msg: string = "", loc := #caller_location) -> bo return ok } expect_value :: proc(t: ^T, value, expected: $T, loc := #caller_location) -> bool where intrinsics.type_is_comparable(T) { - ok := value == expected + ok := value == expected || reflect.is_nil(value) && reflect.is_nil(expected) if !ok { errorf(t, "expected %v, got %v", expected, value, loc=loc) } @@ -100,4 +101,4 @@ expect_value :: proc(t: ^T, value, expected: $T, loc := #caller_location) -> boo set_fail_timeout :: proc(t: ^T, duration: time.Duration, loc := #caller_location) { _fail_timeout(t, duration, loc) -} \ No newline at end of file +} diff --git a/tests/issues/run.bat b/tests/issues/run.bat index 105d474e3..63d722e09 100644 --- a/tests/issues/run.bat +++ b/tests/issues/run.bat @@ -14,6 +14,7 @@ set COMMON=-collection:tests=..\.. ..\..\..\odin build ..\test_issue_2113.odin %COMMON% -file -debug || exit /b ..\..\..\odin test ..\test_issue_2466.odin %COMMON% -file || exit /b ..\..\..\odin test ..\test_issue_2615.odin %COMMON% -file || exit /b +..\..\..\odin test ..\test_issue_2637.odin %COMMON% -file || exit /b @echo off diff --git a/tests/issues/run.sh b/tests/issues/run.sh index c4c53e7e1..7d2101dc6 100755 --- a/tests/issues/run.sh +++ b/tests/issues/run.sh @@ -17,6 +17,7 @@ $ODIN test ../test_issue_2087.odin $COMMON -file $ODIN build ../test_issue_2113.odin $COMMON -file -debug $ODIN test ../test_issue_2466.odin $COMMON -file $ODIN test ../test_issue_2615.odin $COMMON -file +$ODIN test ../test_issue_2637.odin $COMMON -file if [[ $($ODIN build ../test_issue_2395.odin $COMMON -file 2>&1 >/dev/null | grep -c "$NO_NIL_ERR") -eq 2 ]] ; then echo "SUCCESSFUL 1/1" else diff --git a/tests/issues/test_issue_2637.odin b/tests/issues/test_issue_2637.odin new file mode 100644 index 000000000..c170fc444 --- /dev/null +++ b/tests/issues/test_issue_2637.odin @@ -0,0 +1,13 @@ +// Tests issue #2637 https://github.com/odin-lang/Odin/issues/2637 +package test_issues + +import "core:testing" + +Foo :: Maybe(string) + +@(test) +test_expect_value_succeeds_with_nil :: proc(t: ^testing.T) { + x: Foo + testing.expect(t, x == nil) // Succeeds + testing.expect_value(t, x, nil) // Fails, "expected nil, got nil" +} From 5f53d815d113e06bf4612592506db8564d3dc88b Mon Sep 17 00:00:00 2001 From: ramn Date: Sun, 9 Jul 2023 00:15:01 +0200 Subject: [PATCH 03/16] fix: make -vet not complain --- core/testing/testing.odin | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/testing/testing.odin b/core/testing/testing.odin index 1d738bbd1..1ba05315c 100644 --- a/core/testing/testing.odin +++ b/core/testing/testing.odin @@ -6,6 +6,8 @@ import "core:time" import "core:intrinsics" import "core:reflect" +_ :: reflect // alias reflect to nothing to force visibility for -vet + // IMPORTANT NOTE: Compiler requires this layout Test_Signature :: proc(^T) From 363b701925ffdbbab6255934e5076c516fa57ce6 Mon Sep 17 00:00:00 2001 From: Zac Nowicki Date: Sun, 9 Jul 2023 08:29:28 -0400 Subject: [PATCH 04/16] Improve Mutex struct documentation --- core/sync/primitives.odin | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/core/sync/primitives.odin b/core/sync/primitives.odin index b8bcfad70..fdb86d835 100644 --- a/core/sync/primitives.odin +++ b/core/sync/primitives.odin @@ -7,10 +7,21 @@ current_thread_id :: proc "contextless" () -> int { return _current_thread_id() } -// A Mutex is a mutual exclusion lock -// The zero value for a Mutex is an unlocked mutex +// A Mutex is a [mutual exclusion lock](https://en.wikipedia.org/wiki/Mutual_exclusion). +// It can be used to prevent more than one thread from executing the same piece of code, +// and thus prevent access to same piece of memory by multiple threads, at the same time. // -// A Mutex must not be copied after first use +// A Mutex's zero value represents an initial, *unlocked* state. +// +// If another thread tries to take the lock while another thread holds it, it will pause +// until the lock is released. Code or memory that is "surrounded" by a mutex lock is said +// to be "guarded by a mutex". +// +// A Mutex must not be copied after first use (e.g., after locking it the first time). +// This is because, in order to coordinate with other threads, all threads must watch +// the same memory address to know when the lock has been released. Trying to use a +// copy of the lock at a different memory address will result in broken and unsafe +// behavior. For this reason, Mutexes are marked as `#no_copy`. Mutex :: struct #no_copy { impl: _Mutex, } From f0f8177a19e6975c309e5e3e720d8848e6819c96 Mon Sep 17 00:00:00 2001 From: ryuukk <44361234+ryuukk@users.noreply.github.com> Date: Mon, 10 Jul 2023 05:56:26 +0200 Subject: [PATCH 05/16] Add definitions for network byte order conversion procs --- core/sys/windows/ws2_32.odin | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/sys/windows/ws2_32.odin b/core/sys/windows/ws2_32.odin index 631ef4241..c8bec05a6 100644 --- a/core/sys/windows/ws2_32.odin +++ b/core/sys/windows/ws2_32.odin @@ -206,4 +206,12 @@ foreign ws2_32 { optval: ^c_char, optlen: ^c_int, ) -> c_int --- + // https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-ntohl + ntohl :: proc(netlong: c_ulong) -> c_ulong --- + // https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-ntohs + ntohs :: proc(netshort: c_ushort) -> c_ushort --- + // https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-htonl + htonl :: proc(hostlong: c_ulong) -> c_ulong --- + // https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-htons + htons :: proc(hostshort: c_ushort) -> c_ushort --- } From ccd5685cee52e09b49e6dbb9a3e1f122ef8ef632 Mon Sep 17 00:00:00 2001 From: ryuukk <44361234+ryuukk@users.noreply.github.com> Date: Mon, 10 Jul 2023 05:57:12 +0200 Subject: [PATCH 06/16] Fix doc links --- core/sys/windows/ws2_32.odin | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/sys/windows/ws2_32.odin b/core/sys/windows/ws2_32.odin index c8bec05a6..c09b714ca 100644 --- a/core/sys/windows/ws2_32.odin +++ b/core/sys/windows/ws2_32.odin @@ -206,12 +206,12 @@ foreign ws2_32 { optval: ^c_char, optlen: ^c_int, ) -> c_int --- - // https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-ntohl + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-ntohl) ntohl :: proc(netlong: c_ulong) -> c_ulong --- - // https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-ntohs + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-ntohs) ntohs :: proc(netshort: c_ushort) -> c_ushort --- - // https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-htonl + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-htonl) htonl :: proc(hostlong: c_ulong) -> c_ulong --- - // https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-htons + // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-htons) htons :: proc(hostshort: c_ushort) -> c_ushort --- } From bc43a8d38dcd4ad778ebf405308e4dc9058c0834 Mon Sep 17 00:00:00 2001 From: ryuukk <44361234+ryuukk@users.noreply.github.com> Date: Mon, 10 Jul 2023 06:02:38 +0200 Subject: [PATCH 07/16] Add CopyFileW --- core/sys/windows/kernel32.odin | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin index beed3a7e5..fcd9e55ed 100644 --- a/core/sys/windows/kernel32.odin +++ b/core/sys/windows/kernel32.odin @@ -159,6 +159,11 @@ foreign kernel32 { WaitForSingleObject :: proc(hHandle: HANDLE, dwMilliseconds: DWORD) -> DWORD --- Sleep :: proc(dwMilliseconds: DWORD) --- GetProcessId :: proc(handle: HANDLE) -> DWORD --- + CopyFileW :: proc( + lpExistingFileName: LPCWSTR, + lpNewFileName: LPCWSTR, + bFailIfExists: BOOL, + ) -> BOOL --- CopyFileExW :: proc( lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, From f141078073ef086dfb21f9c3c3de4d43205de69f Mon Sep 17 00:00:00 2001 From: Pix Date: Mon, 10 Jul 2023 22:24:16 +0800 Subject: [PATCH 08/16] GetGestureDetecetd should return a Gestures bit_set not a Gesture. --- vendor/raylib/raylib.odin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/raylib/raylib.odin b/vendor/raylib/raylib.odin index 2bedf77c4..4236839f0 100644 --- a/vendor/raylib/raylib.odin +++ b/vendor/raylib/raylib.odin @@ -1133,7 +1133,7 @@ foreign lib { SetGesturesEnabled :: proc(flags: Gestures) --- // Enable a set of gestures using flags IsGestureDetected :: proc(gesture: Gesture) -> bool --- // Check if a gesture have been detected - GetGestureDetected :: proc() -> Gesture --- // Get latest detected gesture + GetGestureDetected :: proc() -> Gestures --- // Get latest detected gesture GetGestureHoldDuration :: proc() -> f32 --- // Get gesture hold time in milliseconds GetGestureDragVector :: proc() -> Vector2 --- // Get gesture drag vector GetGestureDragAngle :: proc() -> f32 --- // Get gesture drag angle From 20e5e95ff85cd0d590fa152aec3d8942c0d665e2 Mon Sep 17 00:00:00 2001 From: ryuukk <44361234+ryuukk@users.noreply.github.com> Date: Tue, 11 Jul 2023 03:45:08 +0200 Subject: [PATCH 09/16] Deprecate htons, htonl, ntohl, ntohs --- core/sys/windows/ws2_32.odin | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/sys/windows/ws2_32.odin b/core/sys/windows/ws2_32.odin index c09b714ca..6e5c37345 100644 --- a/core/sys/windows/ws2_32.odin +++ b/core/sys/windows/ws2_32.odin @@ -211,7 +211,9 @@ foreign ws2_32 { // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-ntohs) ntohs :: proc(netshort: c_ushort) -> c_ushort --- // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-htonl) + @(deprecated("Use endian specific integers instead, https://odin-lang.org/docs/overview/#basic-types")) htonl :: proc(hostlong: c_ulong) -> c_ulong --- // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-htons) + @(deprecated("Use endian specific integers instead, https://odin-lang.org/docs/overview/#basic-types")) htons :: proc(hostshort: c_ushort) -> c_ushort --- } From e1fae5b9027ad6e79b949639ed403593e1591356 Mon Sep 17 00:00:00 2001 From: ryuukk <44361234+ryuukk@users.noreply.github.com> Date: Tue, 11 Jul 2023 03:51:28 +0200 Subject: [PATCH 10/16] Fix attribute --- core/sys/windows/ws2_32.odin | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/sys/windows/ws2_32.odin b/core/sys/windows/ws2_32.odin index 6e5c37345..7b9cf1b89 100644 --- a/core/sys/windows/ws2_32.odin +++ b/core/sys/windows/ws2_32.odin @@ -211,9 +211,9 @@ foreign ws2_32 { // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-ntohs) ntohs :: proc(netshort: c_ushort) -> c_ushort --- // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-htonl) - @(deprecated("Use endian specific integers instead, https://odin-lang.org/docs/overview/#basic-types")) + @(deprecated="Use endian specific integers instead, https://odin-lang.org/docs/overview/#basic-types") htonl :: proc(hostlong: c_ulong) -> c_ulong --- // [MS-Docs](https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-htons) - @(deprecated("Use endian specific integers instead, https://odin-lang.org/docs/overview/#basic-types")) + @(deprecated="Use endian specific integers instead, https://odin-lang.org/docs/overview/#basic-types") htons :: proc(hostshort: c_ushort) -> c_ushort --- } From 46f408cc9f86bbc840864c26675d7ccfd242242c Mon Sep 17 00:00:00 2001 From: Zac Nowicki Date: Tue, 11 Jul 2023 07:43:16 -0400 Subject: [PATCH 11/16] Fixup link format --- core/sync/primitives.odin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/sync/primitives.odin b/core/sync/primitives.odin index fdb86d835..5e71f6336 100644 --- a/core/sync/primitives.odin +++ b/core/sync/primitives.odin @@ -7,7 +7,7 @@ current_thread_id :: proc "contextless" () -> int { return _current_thread_id() } -// A Mutex is a [mutual exclusion lock](https://en.wikipedia.org/wiki/Mutual_exclusion). +// A Mutex is a [[mutual exclusion lock; https://en.wikipedia.org/wiki/Mutual_exclusion]] // It can be used to prevent more than one thread from executing the same piece of code, // and thus prevent access to same piece of memory by multiple threads, at the same time. // From 52700d6a840d5635cf8ebc3f9ebf516f9c47f615 Mon Sep 17 00:00:00 2001 From: Laytan Laats Date: Tue, 11 Jul 2023 19:30:44 +0200 Subject: [PATCH 12/16] use lb_emit_select instead of lb_emit_if for exit check --- src/llvm_backend.cpp | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 6a4046d8d..90716dde0 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -1827,30 +1827,12 @@ gb_internal lbProcedure *lb_create_main_procedure(lbModule *m, lbProcedure *star args[0] = lb_addr_load(p, all_tests_slice); lbValue result = lb_emit_call(p, runner, args); - lbBlock *block_success = lb_create_block(p, "success"); - lbBlock *block_failure = lb_create_block(p, "failure"); - - lbValue result_success = lb_emit_comp(p, Token_CmpEq, result, lb_const_bool(m, t_bool, true)); - lb_emit_if(p, result_success, block_success, block_failure); - lbValue exit_runner = lb_find_package_value(m, str_lit("os"), str_lit("exit")); - - lb_start_block(p, block_success); - { - auto exit_args = array_make(temporary_allocator(), 1); - exit_args[0] = lb_const_int(m, t_int, 0); - lb_emit_call(p, exit_runner, exit_args); - } - - lb_start_block(p, block_failure); - { - auto exit_args = array_make(temporary_allocator(), 1); - exit_args[0] = lb_const_int(m, t_int, 1); - lb_emit_call(p, exit_runner, exit_args); - } + auto exit_args = array_make(temporary_allocator(), 1); + exit_args[0] = lb_emit_select(p, result, lb_const_int(m, t_int, 0), lb_const_int(m, t_int, 1)); + lb_emit_call(p, exit_runner, exit_args, ProcInlining_none); } else { - if (m->info->entry_point != nullptr) { - lbValue entry_point = lb_find_procedure_value_from_entity(m, m->info->entry_point); + if (m->info->entry_point != nullptr) { lbValue entry_point = lb_find_procedure_value_from_entity(m, m->info->entry_point); lb_emit_call(p, entry_point, {}, ProcInlining_no_inline); } From 3cce9721257f921b81bd757c453fecb8b5308227 Mon Sep 17 00:00:00 2001 From: Laytan Laats Date: Tue, 11 Jul 2023 19:33:14 +0200 Subject: [PATCH 13/16] fix indentation --- src/llvm_backend.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 90716dde0..938c9b2ac 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -1832,19 +1832,20 @@ gb_internal lbProcedure *lb_create_main_procedure(lbModule *m, lbProcedure *star exit_args[0] = lb_emit_select(p, result, lb_const_int(m, t_int, 0), lb_const_int(m, t_int, 1)); lb_emit_call(p, exit_runner, exit_args, ProcInlining_none); } else { - if (m->info->entry_point != nullptr) { lbValue entry_point = lb_find_procedure_value_from_entity(m, m->info->entry_point); + if (m->info->entry_point != nullptr) { + lbValue entry_point = lb_find_procedure_value_from_entity(m, m->info->entry_point); lb_emit_call(p, entry_point, {}, ProcInlining_no_inline); } if (call_cleanup) { - lbValue cleanup_runtime_value = {cleanup_runtime->value, cleanup_runtime->type}; - lb_emit_call(p, cleanup_runtime_value, {}, ProcInlining_none); + lbValue cleanup_runtime_value = {cleanup_runtime->value, cleanup_runtime->type}; + lb_emit_call(p, cleanup_runtime_value, {}, ProcInlining_none); } if (is_dll_main) { - LLVMBuildRet(p->builder, LLVMConstInt(lb_type(m, t_i32), 1, false)); + LLVMBuildRet(p->builder, LLVMConstInt(lb_type(m, t_i32), 1, false)); } else { - LLVMBuildRet(p->builder, LLVMConstInt(lb_type(m, t_i32), 0, false)); + LLVMBuildRet(p->builder, LLVMConstInt(lb_type(m, t_i32), 0, false)); } } From 8068a3899d8a92b35ad89a2bcfb7f34e5eb9487e Mon Sep 17 00:00:00 2001 From: hchac Date: Tue, 11 Jul 2023 16:23:54 -0400 Subject: [PATCH 14/16] Don't gitignore folders named odin. --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 824e0c203..3528af624 100644 --- a/.gitignore +++ b/.gitignore @@ -270,6 +270,7 @@ bin/ # - Linux/MacOS odin +!odin/ odin.dSYM *.bin demo.bin @@ -286,4 +287,4 @@ shared/ *.sublime-workspace examples/bug/ build.sh -!core/debug/ \ No newline at end of file +!core/debug/ From c6957e4e313b7c46e687c2869d5681a7f59ec500 Mon Sep 17 00:00:00 2001 From: Eric Johnson Date: Tue, 11 Jul 2023 13:41:12 -0700 Subject: [PATCH 15/16] Fix small doc mistakes in arena.odin --- core/mem/virtual/arena.odin | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/mem/virtual/arena.odin b/core/mem/virtual/arena.odin index e73a39660..cfd35ab05 100644 --- a/core/mem/virtual/arena.odin +++ b/core/mem/virtual/arena.odin @@ -242,7 +242,7 @@ arena_growing_bootstrap_new_by_name :: proc($T: typeid, $field_name: string, min return arena_growing_bootstrap_new_by_offset(T, offset_of_by_string(T, field_name), minimum_block_size) } -// Ability to bootstrap allocate a struct with an arena within the struct itself using the growing variant strategy. +// Ability to bootstrap allocate a struct with an arena within the struct itself using the static variant strategy. @(require_results) arena_static_bootstrap_new_by_offset :: proc($T: typeid, offset_to_arena: uintptr, reserved: uint) -> (ptr: ^T, err: Allocator_Error) { bootstrap: Arena @@ -258,7 +258,7 @@ arena_static_bootstrap_new_by_offset :: proc($T: typeid, offset_to_arena: uintpt return } -// Ability to bootstrap allocate a struct with an arena within the struct itself using the growing variant strategy. +// Ability to bootstrap allocate a struct with an arena within the struct itself using the static variant strategy. @(require_results) arena_static_bootstrap_new_by_name :: proc($T: typeid, $field_name: string, reserved: uint) -> (ptr: ^T, err: Allocator_Error) { return arena_static_bootstrap_new_by_offset(T, offset_of_by_string(T, field_name), reserved) @@ -271,7 +271,7 @@ arena_allocator :: proc(arena: ^Arena) -> mem.Allocator { return mem.Allocator{arena_allocator_proc, arena} } -// The allocator procedured by an `Allocator` produced by `arena_allocator` +// The allocator procedure used by an `Allocator` produced by `arena_allocator` arena_allocator_proc :: proc(allocator_data: rawptr, mode: mem.Allocator_Mode, size, alignment: int, old_memory: rawptr, old_size: int, @@ -328,7 +328,7 @@ arena_allocator_proc :: proc(allocator_data: rawptr, mode: mem.Allocator_Mode, -// An `Arena_Temp` is a way to produce temporary watermarks to reset a arena to a previous state. +// An `Arena_Temp` is a way to produce temporary watermarks to reset an arena to a previous state. // All uses of an `Arena_Temp` must be handled by ending them with `arena_temp_end` or ignoring them with `arena_temp_ignore`. Arena_Temp :: struct { arena: ^Arena, From 635d671ee7facfa1a2026a544dd1b6d1f3a6422a Mon Sep 17 00:00:00 2001 From: Brennen Shaughnessy Date: Sat, 15 Jul 2023 15:59:58 -0400 Subject: [PATCH 16/16] Fixed typo in GGPO bindings --- vendor/ggpo/ggpo.odin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/ggpo/ggpo.odin b/vendor/ggpo/ggpo.odin index d17c33638..b38f4fb65 100644 --- a/vendor/ggpo/ggpo.odin +++ b/vendor/ggpo/ggpo.odin @@ -50,7 +50,7 @@ Player :: struct { player_num: c.int, using u: struct #raw_union { local: struct {}, - remove: struct { + remote: struct { ip_address: [32]byte, port: u16, },