aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | | | | | | | | | | | | Attempt fix brew errors (#5345)Jeroen van Rijn2025-06-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Disable macOS Intel for now.
* | | | | | | | | | | | | | | | | Merge pull request #5315 from peperronii/masterJeroen van Rijn2025-06-1611-9/+150
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Expose getpeername() in core:net package as "peer_endpoint"
| * | | | | | | | | | | | | | | | | Added Socket_Info_Error to Network_Error unionPePerRoNii2025-06-161-0/+1
| | | | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | | | Changed TCP_Recv_Err to Socket_Info_Err and tested on darwin_arm64PePerRoNii2025-06-151-1/+1
| | | | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | | | Implemented _socket_info_error on peer_endpoint and bound_endpointPePerRoNii2025-06-159-17/+79
| | | | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | | | added Socket_Info_Errors EnumPePerRoNii2025-06-151-0/+17
| | | | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | | | added linux implementation NOTE: tcp_recv_error doesn't cover all casesPePerRoNii2025-06-111-0/+13
| | | | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | | | added freebsd implementation NOTE: bsd's tcp_recv_error does not cover all casesPePerRoNii2025-06-111-0/+14
| | | | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | | | added windows implementationPePerRoNii2025-06-111-0/+14
| | | | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | | | added darwin implementationPePerRoNii2025-06-111-0/+13
| | | | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | | | Add entry point in core:net as peer_endpointPePerRoNii2025-06-111-0/+7
| | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | Merge pull request #5327 from nubunto/fix/pool-join-hangsJeroen van Rijn2025-06-161-0/+14
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / / / / / / / / / |/| | | | | | | | | | | | | | | | | fix: pool_join hangs if no threads are started
| * | | | | | | | | | | | | | | | | fix: make pool_finish not hang when pool_start is not calledBruno Panuto2025-06-161-0/+14
| | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | Merge pull request #5334 from Kelimion/types-checksJeroen van Rijn2025-06-141-9/+43
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add additional nullptr checks in types.cpp
| * | | | | | | | | | | | | | | | | | Add additional nullptr checks in types.cppJeroen van Rijn2025-06-141-9/+43
|/ / / / / / / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ran into a bunch of nullptr problems while reviving an 8-year old Odin problem.
* | | | | | | | | | | | | | | | | | add macOS Tahoe to `odin report` and `core:sys/info`Laytan Laats2025-06-142-0/+2
| | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | Merge pull request #5328 from laytan/compat-allocator-improvementsLaytan2025-06-131-20/+56
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mem: compat allocator improvements
| * | | | | | | | | | | | | | | | | | mem: compat allocator improvementsLaytan Laats2025-06-121-20/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. store alignment instead of original pointer 2. implement .Query_Info 3. poison the header and alignment portion of the allocation 4. .Resize uses `max(orig_alignment, new_alignment)` as it's alignment now 5. .Free passes along the original alignment
* | | | | | | | | | | | | | | | | | | Merge pull request #5332 from Kelimion/replace_environment_variablesJeroen van Rijn2025-06-136-33/+122
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | |_|_|_|/ / / / / / / / / / / / / / / |/| | | | | | | | | | | | | | | | | | Replace core:posix usage in core:os/os2
| * | | | | | | | | | | | | | | | | | WASIJeroen van Rijn2025-06-131-0/+9
| | | | | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | | | | stub out get_env for jsJeroen van Rijn2025-06-131-0/+5
| | | | | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | | | | Replace core:posix usage in core:os/os2Jeroen van Rijn2025-06-134-33/+108
|/ / / / / / / / / / / / / / / / / /
* | | | | / / / / / / / / / / / / / Disable PR commentsJeroen van Rijn2025-06-131-0/+1
| |_|_|_|/ / / / / / / / / / / / / |/| | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | Merge pull request #5289 from JackMordaunt/jfm-sync_chan_refactorLaytan2025-06-122-31/+251
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / / / / |/| | | | | | | | | | | | | | | | Jfm sync chan refactor
| * | | | | | | | | | | | | | | | tests/core/sync/chan: move global state into testJack Mordaunt2025-06-121-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While this state is not actually needed by more than one test, we can just make it a static variable.
| * | | | | | | | | | | | | | | | core/sync/chan.select_raw: call try_select_raw with deprecation warningJack Mordaunt2025-06-121-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Eventually select_raw should be a blocking select operation, but for now we need to migrate people away.
| * | | | | | | | | | | | | | | | core/sync/chan.try_select_raw: fix doc comment typoJack Mordaunt2025-06-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Jack Mordaunt <jackmordaunt.dev@gmail.com>
| * | | | | | | | | | | | | | | | tests/core/sync/chan: test harness for chan.try_select_rawJack Mordaunt2025-06-121-0/+176
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This test harness ensures consistent non-blocking semantics and validates that we have solved the toctou condition. The __global_context_for_test is a bit of a hack to fuse together the test supplied proc and the executing logic in packaage chan.
| * | | | | | | | | | | | | | | | core/sync/chan.try_select_raw: test hook for testing the toctouJack Mordaunt2025-06-121-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is necessary because we need to allow the test guarantee against a rare condition: where a third-party thread steals a value between the validity checks can_{send,recv} and the channel operation try_{send,recv}.
| * | | | | | | | | | | | | | | | core/sync/chan.try_select_raw: skip nil input messagesJack Mordaunt2025-06-121-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes the proc easier and safer to call by letting the caller nil out messages to skip sends.
| * | | | | | | | | | | | | | | | core/sync/chan.try_select_raw: clarify loop control flowJack Mordaunt2025-06-121-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a label to clarify the continue statements.
| * | | | | | | | | | | | | | | | core/sync.try_select_raw: fix TOCTOUJack Mordaunt2025-06-121-32/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes a TOCTOU where the channel could be used between the call to can_{recv,send} and {recv,send} causing an unexpected blocking operation. To do this we use the non-blocking try_{recv,send} and retry the check in a loop. This guarantees non-blocking select behaviour, at the cost of spinning if the input channels are highly contended. Signed-off-by: Jack Mordaunt <jackmordaunt.dev@gmail.com>
| * | | | | | | | | | | | | | | | core/sync.select_raw: rename to try_select_rawJack Mordaunt2025-06-121-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This follows the convention where non-blocking operations are prefixed with "try" to indicate as much. Since select_raw in it's current form doesn't block, it should be try_select_raw, and allow select_raw to name a blocking implementation.
| * | | | | | | | | | | | | | | | core/sync.select_raw: return a useful indexJack Mordaunt2025-06-121-6/+22
|/ / / / / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a flaw in the original implementation: the returned index is actually useless to the caller. This is because the index returned refers to the internal "candidate" list. This list is dynamic, and may not have all of the input channels (if they weren't ready according to chan.can_{recv,send}). That means the index is not guaranteed to mean anything to the caller. The fix introduced here is to return the index into the input slice (recvs,sends) and an enum to specify which input slice that is. If no selection was made, then (-1, .None) is returned to communicate as much. Signed-off-by: Jack Mordaunt <jackmordaunt.dev@gmail.com>
* / / / / / / / / / / / / / / / mem/tlsf: fix asan reporting poisoning of already poisoned regionLaytan Laats2025-06-121-9/+10
|/ / / / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | free on tlsf poisons the entire block, while alloc might only unpoison a part of it (cause it's size is aligned up). This causes free to potentially poison an already poisoned portion, which is a use-after-poison. Because this is "fine" and intended, I opted to just @no_sanitize_address it.
* | | | | | | | | | | | | | | CommentJeroen van Rijn2025-06-121-1/+2
| | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | Merge pull request #5326 from Kelimion/fix-5321Jeroen van Rijn2025-06-121-7/+2
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert changes to thread_unix.odin
| * | | | | | | | | | | | | | | Revert changes to thread_unix.odinJeroen van Rijn2025-06-121-7/+2
| | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | Merge pull request #5325 from Kelimion/fix-5321Jeroen van Rijn2025-06-121-2/+6
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix #5321
| * | | | | | | | | | | | | | | Remove transmuteJeroen van Rijn2025-06-121-2/+2
| | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | Remove c importJeroen van Rijn2025-06-121-1/+0
| | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | Fix #5321Jeroen van Rijn2025-06-121-2/+7
| | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | Merge pull request #5322 from Kelimion/fix-5321Jeroen van Rijn2025-06-121-2/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix #5321 (on Windows)
| * | | | | | | | | | | | | | | Fix #5321Jeroen van Rijn2025-06-121-2/+1
| | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | Merge pull request #5317 from Feoramund/fixup-container-queueJeroen van Rijn2025-06-122-56/+437
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / / / |/| | | | | | | | | | | | | | | Tidy up `core:container/queue`
| * | | | | | | | | | | | | | | container/queue: Remove trailing whitespaceFeoramund2025-06-111-6/+6
| | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | container/queue: Add testsFeoramund2025-06-111-0/+157
| | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | container/queue: Add `shrink`Feoramund2025-06-111-0/+27
| | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | container/queue: Let queues be re-initialized with different allocatorsFeoramund2025-06-111-3/+6
| | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | container/queue: Add common aliases `enqueue` and `dequeue`Feoramund2025-06-111-0/+2
| | | | | | | | | | | | | | | |