From 28ffb864a37da73ba2e6d5e5def3153df4073feb Mon Sep 17 00:00:00 2001 From: Christoffer Lerno Date: Tue, 19 Aug 2025 12:20:09 +0200 Subject: [PATCH] Deprecated `PollSubscribes` and `PollEvents` in favour of `PollSubscribe` and `PollEvent` and made them const enums. --- lib/std/net/socket.c3 | 61 +++++++++++++------ releasenotes.md | 1 + .../statements/do_with_no_early_use.c3t | 1 + 3 files changed, 44 insertions(+), 19 deletions(-) diff --git a/lib/std/net/socket.c3 b/lib/std/net/socket.c3 index 3bd60c88a..2aab51f34 100644 --- a/lib/std/net/socket.c3 +++ b/lib/std/net/socket.c3 @@ -25,31 +25,54 @@ macro void @loop_over_ai(AddrInfo* ai; @body(NativeSocket fd, AddrInfo* ai)) const Duration POLL_FOREVER = (Duration)-1; -typedef PollSubscribes = ushort; -typedef PollEvents = ushort; +enum PollSubscribe : const ushort +{ + ANY_READ = os::POLLIN, + PRIO_READ = os::POLLPRI, + OOB_READ = os::POLLRDBAND, + READ = os::POLLRDNORM, + ANY_WRITE = os::POLLOUT, + OOB_WRITE = os::POLLWRBAND, + WRITE = os::POLLWRNORM, +} -const PollSubscribes SUBSCRIBE_ANY_READ = os::POLLIN; -const PollSubscribes SUBSCRIBE_PRIO_READ = os::POLLPRI; -const PollSubscribes SUBSCRIBE_OOB_READ = os::POLLRDBAND; -const PollSubscribes SUBSCRIBE_READ = os::POLLRDNORM; -const PollSubscribes SUBSCRIBE_ANY_WRITE = os::POLLOUT; -const PollSubscribes SUBSCRIBE_OOB_WRITE = os::POLLWRBAND; -const PollSubscribes SUBSCRIBE_WRITE = os::POLLWRNORM; +const PollSubscribe SUBSCRIBE_ANY_READ = (PollSubscribe)os::POLLIN; +const PollSubscribe SUBSCRIBE_PRIO_READ = (PollSubscribe)os::POLLPRI; +const PollSubscribe SUBSCRIBE_OOB_READ = (PollSubscribe)os::POLLRDBAND; +const PollSubscribe SUBSCRIBE_READ = (PollSubscribe)os::POLLRDNORM; +const PollSubscribe SUBSCRIBE_ANY_WRITE = (PollSubscribe)os::POLLOUT; +const PollSubscribe SUBSCRIBE_OOB_WRITE = (PollSubscribe)os::POLLWRBAND; +const PollSubscribe SUBSCRIBE_WRITE = (PollSubscribe)os::POLLWRNORM; -const PollEvents POLL_EVENT_READ_PRIO = os::POLLPRI; -const PollEvents POLL_EVENT_READ_OOB = os::POLLRDBAND; -const PollEvents POLL_EVENT_READ = os::POLLRDNORM; -const PollEvents POLL_EVENT_WRITE_OOB = os::POLLWRBAND; -const PollEvents POLL_EVENT_WRITE = os::POLLWRNORM; -const PollEvents POLL_EVENT_DISCONNECT = os::POLLHUP; -const PollEvents POLL_EVENT_ERROR = os::POLLERR; -const PollEvents POLL_EVENT_INVALID = os::POLLNVAL; +enum PollEvent : const ushort +{ + READ_PRIO = os::POLLPRI, + READ_OOB = os::POLLRDBAND, + READ = os::POLLRDNORM, + WRITE_OOB = os::POLLWRBAND, + WRITE = os::POLLWRNORM, + DISCONNECT = os::POLLHUP, + ERROR = os::POLLERR, + INVALID = os::POLLNVAL, +} + +const PollEvent POLL_EVENT_READ_PRIO = (PollEvent)os::POLLPRI; +const PollEvent POLL_EVENT_READ_OOB = (PollEvent)os::POLLRDBAND; +const PollEvent POLL_EVENT_READ = (PollEvent)os::POLLRDNORM; +const PollEvent POLL_EVENT_WRITE_OOB = (PollEvent)os::POLLWRBAND; +const PollEvent POLL_EVENT_WRITE = (PollEvent)os::POLLWRNORM; +const PollEvent POLL_EVENT_DISCONNECT = (PollEvent)os::POLLHUP; +const PollEvent POLL_EVENT_ERROR = (PollEvent)os::POLLERR; +const PollEvent POLL_EVENT_INVALID = (PollEvent)os::POLLNVAL; + +alias PollSubscribes @deprecated("Use PollSubscribe") = PollSubscribe; +alias PollEvents @deprecated("Use PollEvent") = PollEvent; struct Poll { NativeSocket socket; - PollSubscribes events; - PollEvents revents; + PollSubscribe events; + PollEvent revents; } <* diff --git a/releasenotes.md b/releasenotes.md index 80d614272..a7e15e1f4 100644 --- a/releasenotes.md +++ b/releasenotes.md @@ -70,6 +70,7 @@ - Added libloaderapi to `std::os::win32`. - Added `HashSet.values` and `String.contains_char` #2386 - Added `&[]` overload to HashMap. +- Deprecated `PollSubscribes` and `PollEvents` in favour of `PollSubscribe` and `PollEvent` and made them const enums. ## 0.7.4 Change list diff --git a/test/test_suite/statements/do_with_no_early_use.c3t b/test/test_suite/statements/do_with_no_early_use.c3t index 7d172a063..0489ac0cf 100644 --- a/test/test_suite/statements/do_with_no_early_use.c3t +++ b/test/test_suite/statements/do_with_no_early_use.c3t @@ -1,3 +1,4 @@ +// #target: macos-aarch64 module test; import std; fn int main()