From 1bdc50ab4172c229e130120e9e075e5c3319f9f0 Mon Sep 17 00:00:00 2001
From: Dennis Scheiba <git@dennis-scheiba.com>
Date: Thu, 19 Dec 2024 15:58:01 +0100
Subject: [PATCH 1/5] replace deprecated `boost::asio::io_service` with
 `boost::asio::io_context` (#6572)

---
 QtCollider/LanguageClient.cpp             |  2 +-
 lang/LangPrimSource/OSCData.cpp           |  2 +-
 lang/LangPrimSource/PyrSerialPrim.cpp     |  4 ++--
 lang/LangPrimSource/SC_ComPort.cpp        | 20 +++++++++----------
 lang/LangPrimSource/SC_ComPort.h          |  2 +-
 lang/LangSource/SC_TerminalClient.cpp     | 24 +++++++++++------------
 lang/LangSource/SC_TerminalClient.h       |  8 ++++----
 server/scsynth/SC_ComPort.cpp             | 18 ++++++++---------
 server/supernova/sc/sc_osc_handler.hpp    |  6 +++---
 server/supernova/utilities/osc_server.hpp | 13 ++++++------
 10 files changed, 49 insertions(+), 50 deletions(-)

diff --git a/QtCollider/LanguageClient.cpp b/QtCollider/LanguageClient.cpp
index 00576ebd04a..83c73a5bf83 100644
--- a/QtCollider/LanguageClient.cpp
+++ b/QtCollider/LanguageClient.cpp
@@ -70,7 +70,7 @@ void LangClient::customEvent(QEvent* e) {
 
     case Event_SCRequest_Work:
         QApplication::removePostedEvents(this, Event_SCRequest_Work);
-        mIoService.poll();
+        mIoContext.poll();
         break;
     case Event_SCRequest_Quit: {
         int code = static_cast<SCRequestEvent*>(e)->data.toInt();
diff --git a/lang/LangPrimSource/OSCData.cpp b/lang/LangPrimSource/OSCData.cpp
index 0c0d7f9f7ff..bbb3caa8006 100644
--- a/lang/LangPrimSource/OSCData.cpp
+++ b/lang/LangPrimSource/OSCData.cpp
@@ -934,7 +934,7 @@ void cleanup_OSC() {
 #endif
 }
 
-extern boost::asio::io_service ioService;
+extern boost::asio::io_context ioContext;
 
 static int prGetHostByName(VMGlobals* g, int numArgsPushed) {
     PyrSlot* a = g->sp;
diff --git a/lang/LangPrimSource/PyrSerialPrim.cpp b/lang/LangPrimSource/PyrSerialPrim.cpp
index cc56abdcead..bcfbeda5551 100644
--- a/lang/LangPrimSource/PyrSerialPrim.cpp
+++ b/lang/LangPrimSource/PyrSerialPrim.cpp
@@ -49,7 +49,7 @@
 using boost::uint8_t;
 using boost::asio::serial_port;
 
-extern boost::asio::io_service ioService; // defined in SC_ComPort.cpp
+extern boost::asio::io_context ioContext; // defined in SC_ComPort.cpp
 
 /**
  * \brief Serial port abstraction
@@ -104,7 +104,7 @@ class SerialPort {
      */
     SerialPort(PyrObject* obj, const char* serialport, const Options& options):
         m_obj(obj),
-        m_port(ioService, serialport),
+        m_port(ioContext, serialport),
         m_options(options),
         m_rxErrors(0) {
         using namespace boost::asio;
diff --git a/lang/LangPrimSource/SC_ComPort.cpp b/lang/LangPrimSource/SC_ComPort.cpp
index 78f01b389d9..aa48e078311 100644
--- a/lang/LangPrimSource/SC_ComPort.cpp
+++ b/lang/LangPrimSource/SC_ComPort.cpp
@@ -46,12 +46,12 @@ void ProcessRawMessage(std::unique_ptr<char[]> inData, size_t inSize, ReplyAddre
 //////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 SC_Thread gAsioThread;
-boost::asio::io_service ioService;
+boost::asio::io_context ioContext;
 
 
 static void asioFunction() {
-    boost::asio::io_service::work work(ioService);
-    ioService.run();
+    boost::asio::io_context::work work(ioContext);
+    ioContext.run();
 }
 
 void startAsioThread() {
@@ -60,7 +60,7 @@ void startAsioThread() {
 }
 
 void stopAsioThread() {
-    ioService.stop();
+    ioContext.stop();
     gAsioThread.join();
 }
 
@@ -66,7 +66,7 @@
 
 //////////////////////////////////////////////////////////////////////////////////////////////////////////
 
-SC_UdpInPort::SC_UdpInPort(int inPortNum, int portsToCheck): mPortNum(inPortNum), udpSocket(ioService) {
+SC_UdpInPort::SC_UdpInPort(int inPortNum, int portsToCheck): mPortNum(inPortNum), udpSocket(ioContext) {
     using namespace boost::asio;
 
     BOOST_AUTO(protocol, ip::udp::v4());
@@ -142,7 +142,7 @@
 //////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 SC_TcpInPort::SC_TcpInPort(int inPortNum, int inMaxConnections, int inBacklog):
-    acceptor(ioService, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), inPortNum)),
+    acceptor(ioContext, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), inPortNum)),
     mPortNum(inPortNum) {
     // FIXME: handle max connections
     // FIXME: backlog???
@@ -151,7 +151,7 @@
 }
 
 void SC_TcpInPort::startAccept() {
-    SC_TcpConnection::pointer newConnection(new SC_TcpConnection(ioService, this));
+    SC_TcpConnection::pointer newConnection(new SC_TcpConnection(ioContext, this));
 
     acceptor.async_accept(
         newConnection->socket,
@@ -210,7 +210,7 @@
 //////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 SC_TcpClientPort::SC_TcpClientPort(unsigned long inAddress, int inPort, ClientNotifyFunc notifyFunc, void* clientData):
-    socket(ioService),
+    socket(ioContext),
     endpoint(boost::asio::ip::address_v4(inAddress), inPort),
     mClientNotifyFunc(notifyFunc),
     mClientData(clientData) {
diff --git a/lang/LangPrimSource/SC_ComPort.h b/lang/LangPrimSource/SC_ComPort.h
index 0e192e91914..99d23b3b27b 100644
--- a/lang/LangPrimSource/SC_ComPort.h
+++ b/lang/LangPrimSource/SC_ComPort.h
@@ -63,8 +63,8 @@
     typedef boost::shared_ptr<SC_TcpConnection> pointer;
     boost::asio::ip::tcp::socket socket;
 
-    SC_TcpConnection(boost::asio::io_service& ioService, class SC_TcpInPort* parent):
-        socket(ioService),
+    SC_TcpConnection(boost::asio::io_context& ioContext, class SC_TcpInPort* parent):
+        socket(ioContext),
         mParent(parent) {}
 
     void start();
diff --git a/lang/LangSource/SC_TerminalClient.cpp b/lang/LangSource/SC_TerminalClient.cpp
index 13f11a11176..3a091514ab5 100644
--- a/lang/LangSource/SC_TerminalClient.cpp
+++ b/lang/LangSource/SC_TerminalClient.cpp
@@ -75,12 +75,12 @@ SC_TerminalClient::SC_TerminalClient(const char* name):
     SC_LanguageClient(name),
     mReturnCode(0),
     mUseReadline(false),
-    mWork(mIoService),
-    mTimer(mIoService),
+    mWork(mIoContext),
+    mTimer(mIoContext),
 #ifndef _WIN32
-    mStdIn(mInputService, STDIN_FILENO)
+    mStdIn(mInputContext, STDIN_FILENO)
 #else
-    mStdIn(mInputService, GetStdHandle(STD_INPUT_HANDLE))
+    mStdIn(mInputContext, GetStdHandle(STD_INPUT_HANDLE))
 #endif
 {
 }
@@ -360,19 +360,19 @@ void SC_TerminalClient::onLibraryStartup() {
 void SC_TerminalClient::sendSignal(Signal sig) {
     switch (sig) {
     case sig_input:
-        mIoService.post(boost::bind(&SC_TerminalClient::interpretInput, this));
+        mIoContext.post(boost::bind(&SC_TerminalClient::interpretInput, this));
         break;
 
     case sig_recompile:
-        mIoService.post(boost::bind(&SC_TerminalClient::recompileLibrary, this));
+        mIoContext.post(boost::bind(&SC_TerminalClient::recompileLibrary, this));
         break;
 
     case sig_sched:
-        mIoService.post(boost::bind(&SC_TerminalClient::tick, this, boost::system::error_code()));
+        mIoContext.post(boost::bind(&SC_TerminalClient::tick, this, boost::system::error_code()));
         break;
 
     case sig_stop:
-        mIoService.post(boost::bind(&SC_TerminalClient::stopMain, this));
+        mIoContext.post(boost::bind(&SC_TerminalClient::stopMain, this));
         break;
     }
 }
@@ -447,7 +447,7 @@ void SC_TerminalClient::tick(const boost::system::error_code& error) {
     }
 }
 
-void SC_TerminalClient::commandLoop() { mIoService.run(); }
+void SC_TerminalClient::commandLoop() { mIoContext.run(); }
 
 void SC_TerminalClient::daemonLoop() { commandLoop(); }
 
@@ -614,8 +614,8 @@ void SC_TerminalClient::inputThreadFn() {
 
     startInputRead();
 
-    boost::asio::io_service::work work(mInputService);
-    mInputService.run();
+    boost::asio::io_context::work work(mInputContext);
+    mInputContext.run();
 }
 
 
@@ -662,7 +662,7 @@ void SC_TerminalClient::startInput() {
 }
 
 void SC_TerminalClient::endInput() {
-    mInputService.stop();
+    mInputContext.stop();
     mStdIn.cancel();
 #ifdef _WIN32
     // Note this breaks Windows XP compatibility, since this function is only defined in Vista and later
diff --git a/lang/LangSource/SC_TerminalClient.h b/lang/LangSource/SC_TerminalClient.h
index 373e82bb830..0ea3cdc35b3 100644
--- a/lang/LangSource/SC_TerminalClient.h
+++ b/lang/LangSource/SC_TerminalClient.h
@@ -91,7 +91,7 @@ class SCLANG_DLLEXPORT SC_TerminalClient : public SC_LanguageClient {
     // NOTE: It may be called from any thread, and with interpreter locked.
     virtual void sendSignal(Signal code);
 
-    void stop() { mIoService.stop(); }
+    void stop() { mIoContext.stop(); }
 
 protected:
     bool parseOptions(int& argc, char**& argv, Options& opt);
@@ -151,14 +151,14 @@ class SCLANG_DLLEXPORT SC_TerminalClient : public SC_LanguageClient {
 
     // app-clock io service
 protected:
-    boost::asio::io_service mIoService;
+    boost::asio::io_context mIoContext;
 
 private:
-    boost::asio::io_service::work mWork;
+    boost::asio::io_context::work mWork;
     boost::asio::basic_waitable_timer<std::chrono::system_clock> mTimer;
 
     // input io service
-    boost::asio::io_service mInputService;
+    boost::asio::io_context mInputContext;
     SC_Thread mInputThread;
     void inputThreadFn();
 
diff --git a/server/scsynth/SC_ComPort.cpp b/server/scsynth/SC_ComPort.cpp
index 5541f509bbd..a8ebbfe71c6 100644
--- a/server/scsynth/SC_ComPort.cpp
+++ b/server/scsynth/SC_ComPort.cpp
@@ -145,7 +145,7 @@ static bool UnrollOSCPacket(World* inWorld, int inSize, char* inData, OSC_Packet
 /////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 SC_Thread gAsioThread;
-boost::asio::io_service ioService;
+boost::asio::io_context ioContext;
 
 const int kTextBufSize = 65536;
 
@@ -252,7 +252,7 @@ class SC_UdpInPort {
         mWorld(world),
         mPortNum(inPortNum),
         mbindTo(bindTo),
-        udpSocket(ioService) {
+        udpSocket(ioContext) {
         using namespace boost::asio;
         BOOST_AUTO(protocol, ip::udp::v4());
         udpSocket.open(protocol);
@@ -282,9 +282,9 @@ class SC_TcpConnection : public boost::enable_shared_from_this<SC_TcpConnection>
     typedef boost::shared_ptr<SC_TcpConnection> pointer;
     boost::asio::ip::tcp::socket socket;
 
-    SC_TcpConnection(struct World* world, boost::asio::io_service& ioService, class SC_TcpInPort* parent):
+    SC_TcpConnection(struct World* world, boost::asio::io_context& ioContext, class SC_TcpInPort* parent):
         mWorld(world),
-        socket(ioService),
+        socket(ioContext),
         mParent(parent) {}
 
     ~SC_TcpConnection();
@@ -400,7 +400,7 @@ class SC_TcpInPort {
 public:
     SC_TcpInPort(struct World* world, const std::string& bindTo, int inPortNum, int inMaxConnections, int inBacklog):
         mWorld(world),
-        acceptor(ioService, boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string(bindTo), inPortNum)),
+        acceptor(ioContext, boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string(bindTo), inPortNum)),
         mAvailableConnections(inMaxConnections) {
         // FIXME: backlog???
 
@@ -419,7 +419,7 @@ class SC_TcpInPort {
     void startAccept() {
         if (mAvailableConnections > 0) {
             --mAvailableConnections;
-            SC_TcpConnection::pointer newConnection(new SC_TcpConnection(mWorld, ioService, this));
+            SC_TcpConnection::pointer newConnection(new SC_TcpConnection(mWorld, ioContext, this));
 
             acceptor.async_accept(
                 newConnection->socket,
@@ -453,8 +453,8 @@ static void asioFunction() {
     nova::thread_set_priority_rt(priority);
 #endif
 
-    boost::asio::io_service::work work(ioService);
-    ioService.run();
+    boost::asio::io_context::work work(ioContext);
+    ioContext.run();
 }
 
 void startAsioThread() {
@@ -463,7 +463,7 @@ void startAsioThread() {
 }
 
 void stopAsioThread() {
-    ioService.stop();
+    ioContext.stop();
     gAsioThread.join();
 }
 
diff --git a/server/supernova/sc/sc_osc_handler.hpp b/server/supernova/sc/sc_osc_handler.hpp
index ae75c9dc05a..ce342c419e1 100644
--- a/server/supernova/sc/sc_osc_handler.hpp
+++ b/server/supernova/sc/sc_osc_handler.hpp
@@ -95,7 +95,7 @@ class sc_notify_observers {
 public:
     typedef enum { no_error = 0, already_registered = -1, not_registered = -2 } error_code;
 
-    sc_notify_observers(boost::asio::io_service& io_service): udp_socket(io_service) {}
+    sc_notify_observers(boost::asio::io_context& io_context): udp_socket(io_context) {}
 
     int add_observer(endpoint_ptr const& ep);
     int remove_observer(endpoint_ptr const& ep);
@@ -186,8 +186,8 @@ class sc_osc_handler : private detail::network_thread, public sc_notify_observer
 
 public:
     sc_osc_handler(server_arguments const& args):
-        sc_notify_observers(detail::network_thread::io_service_),
-        tcp_acceptor_(detail::network_thread::io_service_),
+        sc_notify_observers(detail::network_thread::io_context_),
+        tcp_acceptor_(detail::network_thread::io_context_),
         tcp_password_(args.server_password.size() ? args.server_password.c_str() : nullptr) {
         if (!args.non_rt) {
             if (args.tcp_port && !open_socket(IPPROTO_TCP, args.socket_address, args.tcp_port))
diff --git a/server/supernova/utilities/osc_server.hpp b/server/supernova/utilities/osc_server.hpp
index 1746fa172b3..d209fed8983 100644
--- a/server/supernova/utilities/osc_server.hpp
+++ b/server/supernova/utilities/osc_server.hpp
@@ -30,7 +30,6 @@
 #    define BOOST_ASIO_HAS_STD_STRING_VIEW 1
 #endif
 
-#include <boost/asio/io_service.hpp>
 #include <boost/asio/ip/udp.hpp>
 
 #include "branch_hints.hpp"
@@ -56,8 +55,8 @@ class network_thread {
             name_thread("Network Receive");
 
             sem.post();
-            io_service::work work(io_service_);
-            io_service_.run();
+            io_context::work work(io_context_);
+            io_context_.run();
         });
         sem.wait();
     }
@@ -65,20 +64,20 @@ class network_thread {
     ~network_thread(void) {
         if (!thread_.joinable())
             return;
-        io_service_.stop();
+        io_context_.stop();
         thread_.join();
     }
 
-    io_service& get_io_service(void) { return io_service_; }
+    io_context& get_io_context(void) { return io_context_; }
 
     void send_udp(const char* data, unsigned int size, udp::endpoint const& receiver) {
-        udp::socket socket(io_service_);
+        udp::socket socket(io_context_);
         socket.open(udp::v4());
         socket.send_to(boost::asio::buffer(data, size), receiver);
     }
 
 protected:
-    io_service io_service_;
+    io_context io_context_;
 
 private:
     semaphore sem;

From 8015d8ebf26c1f95a0a646775f1e75397966b294 Mon Sep 17 00:00:00 2001
From: Dennis Scheiba <git@dennis-scheiba.com>
Date: Thu, 19 Dec 2024 16:41:44 +0100
Subject: [PATCH 2/5] replace deprecated `boost::asio::io_context::work` with
 `boost::asio::make_work_guard`

---
 lang/LangPrimSource/SC_ComPort.cpp        | 3 ++-
 lang/LangSource/SC_TerminalClient.cpp     | 5 +++--
 lang/LangSource/SC_TerminalClient.h       | 2 +-
 server/scsynth/SC_ComPort.cpp             | 3 ++-
 server/supernova/utilities/osc_server.hpp | 3 ++-
 5 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/lang/LangPrimSource/SC_ComPort.cpp b/lang/LangPrimSource/SC_ComPort.cpp
index aa48e078311..57b0fc5e89f 100644
--- a/lang/LangPrimSource/SC_ComPort.cpp
+++ b/lang/LangPrimSource/SC_ComPort.cpp
@@ -50,7 +50,8 @@ boost::asio::io_context ioContext;
 
 
 static void asioFunction() {
-    boost::asio::io_context::work work(ioContext);
+    boost::asio::executor_work_guard<boost::asio::io_context::executor_type> work =
+        boost::asio::make_work_guard(ioContext);
     ioContext.run();
 }
 
diff --git a/lang/LangSource/SC_TerminalClient.cpp b/lang/LangSource/SC_TerminalClient.cpp
index 3a091514ab5..2c2a1a2eaac 100644
--- a/lang/LangSource/SC_TerminalClient.cpp
+++ b/lang/LangSource/SC_TerminalClient.cpp
@@ -75,7 +75,7 @@ SC_TerminalClient::SC_TerminalClient(const char* name):
     SC_LanguageClient(name),
     mReturnCode(0),
     mUseReadline(false),
-    mWork(mIoContext),
+    mWork(boost::asio::make_work_guard(mIoContext)),
     mTimer(mIoContext),
 #ifndef _WIN32
     mStdIn(mInputContext, STDIN_FILENO)
@@ -614,7 +614,8 @@ void SC_TerminalClient::inputThreadFn() {
 
     startInputRead();
 
-    boost::asio::io_context::work work(mInputContext);
+    boost::asio::executor_work_guard<boost::asio::io_context::executor_type> work =
+        boost::asio::make_work_guard(mInputContext);
     mInputContext.run();
 }
 
diff --git a/lang/LangSource/SC_TerminalClient.h b/lang/LangSource/SC_TerminalClient.h
index 0ea3cdc35b3..b4cf0e96482 100644
--- a/lang/LangSource/SC_TerminalClient.h
+++ b/lang/LangSource/SC_TerminalClient.h
@@ -154,7 +154,7 @@ class SCLANG_DLLEXPORT SC_TerminalClient : public SC_LanguageClient {
     boost::asio::io_context mIoContext;
 
 private:
-    boost::asio::io_context::work mWork;
+    boost::asio::executor_work_guard<boost::asio::io_context::executor_type> mWork;
     boost::asio::basic_waitable_timer<std::chrono::system_clock> mTimer;
 
     // input io service
diff --git a/server/scsynth/SC_ComPort.cpp b/server/scsynth/SC_ComPort.cpp
index a8ebbfe71c6..1e6f6d0784e 100644
--- a/server/scsynth/SC_ComPort.cpp
+++ b/server/scsynth/SC_ComPort.cpp
@@ -453,7 +453,8 @@ static void asioFunction() {
     nova::thread_set_priority_rt(priority);
 #endif
 
-    boost::asio::io_context::work work(ioContext);
+    boost::asio::executor_work_guard<boost::asio::io_context::executor_type> work =
+        boost::asio::make_work_guard(ioContext);
     ioContext.run();
 }
 
diff --git a/server/supernova/utilities/osc_server.hpp b/server/supernova/utilities/osc_server.hpp
index d209fed8983..cbecfc23d7c 100644
--- a/server/supernova/utilities/osc_server.hpp
+++ b/server/supernova/utilities/osc_server.hpp
@@ -55,7 +55,8 @@ class network_thread {
             name_thread("Network Receive");
 
             sem.post();
-            io_context::work work(io_context_);
+            boost::asio::executor_work_guard<boost::asio::io_context::executor_type> work =
+                boost::asio::make_work_guard(io_context_);
             io_context_.run();
         });
         sem.wait();

From ec58a79c2f6bc474d6835d6228ccb7e397465fe5 Mon Sep 17 00:00:00 2001
From: Dennis Scheiba <git@dennis-scheiba.com>
Date: Fri, 20 Dec 2024 00:00:20 +0100
Subject: [PATCH 3/5] replace deprecated `address::from_string` with
 `make_address`

---
 server/scsynth/SC_ComPort.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/scsynth/SC_ComPort.cpp b/server/scsynth/SC_ComPort.cpp
index 1e6f6d0784e..272eeebfbc2 100644
--- a/server/scsynth/SC_ComPort.cpp
+++ b/server/scsynth/SC_ComPort.cpp
@@ -257,7 +257,7 @@ class SC_UdpInPort {
         BOOST_AUTO(protocol, ip::udp::v4());
         udpSocket.open(protocol);
 
-        udpSocket.bind(ip::udp::endpoint(boost::asio::ip::address::from_string(bindTo), inPortNum));
+        udpSocket.bind(ip::udp::endpoint(boost::asio::ip::make_address(bindTo), inPortNum));
 
         boost::asio::socket_base::send_buffer_size option(65536);
         udpSocket.set_option(option);
@@ -400,7 +400,7 @@ class SC_TcpInPort {
 public:
     SC_TcpInPort(struct World* world, const std::string& bindTo, int inPortNum, int inMaxConnections, int inBacklog):
         mWorld(world),
-        acceptor(ioContext, boost::asio::ip::tcp::endpoint(boost::asio::ip::address::from_string(bindTo), inPortNum)),
+        acceptor(ioContext, boost::asio::ip::tcp::endpoint(boost::asio::ip::make_address(bindTo), inPortNum)),
         mAvailableConnections(inMaxConnections) {
         // FIXME: backlog???
 

From 2cadfb7de577defb1664d7cc846d379721f13fa7 Mon Sep 17 00:00:00 2001
From: Dennis Scheiba <git@dennis-scheiba.com>
Date: Fri, 20 Dec 2024 00:16:23 +0100
Subject: [PATCH 4/5] replace deprecated `io_context.post` with
 `boost::asio::post`

---
 lang/LangSource/SC_TerminalClient.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lang/LangSource/SC_TerminalClient.cpp b/lang/LangSource/SC_TerminalClient.cpp
index 2c2a1a2eaac..551369304a9 100644
--- a/lang/LangSource/SC_TerminalClient.cpp
+++ b/lang/LangSource/SC_TerminalClient.cpp
@@ -360,19 +360,19 @@ void SC_TerminalClient::onLibraryStartup() {
 void SC_TerminalClient::sendSignal(Signal sig) {
     switch (sig) {
     case sig_input:
-        mIoContext.post(boost::bind(&SC_TerminalClient::interpretInput, this));
+        boost::asio::post(boost::bind(&SC_TerminalClient::interpretInput, this));
         break;
 
     case sig_recompile:
-        mIoContext.post(boost::bind(&SC_TerminalClient::recompileLibrary, this));
+        boost::asio::post(boost::bind(&SC_TerminalClient::recompileLibrary, this));
         break;
 
     case sig_sched:
-        mIoContext.post(boost::bind(&SC_TerminalClient::tick, this, boost::system::error_code()));
+        boost::asio::post(boost::bind(&SC_TerminalClient::tick, this, boost::system::error_code()));
         break;
 
     case sig_stop:
-        mIoContext.post(boost::bind(&SC_TerminalClient::stopMain, this));
+        boost::asio::post(boost::bind(&SC_TerminalClient::stopMain, this));
         break;
     }
 }

From e085858742c1afcc9af9a3ecb6a98cc6f5a9269c Mon Sep 17 00:00:00 2001
From: Dennis Scheiba <git@dennis-scheiba.com>
Date: Fri, 20 Dec 2024 00:27:36 +0100
Subject: [PATCH 5/5] replace deprecated `to_ulong` with `to_uint`

---
 lang/LangPrimSource/OSCData.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lang/LangPrimSource/OSCData.cpp b/lang/LangPrimSource/OSCData.cpp
index bbb3caa8006..65229f1c3a7 100644
--- a/lang/LangPrimSource/OSCData.cpp
+++ b/lang/LangPrimSource/OSCData.cpp
@@ -745,7 +745,7 @@ static PyrObject* ConvertReplyAddress(ReplyAddress* inReply) {
     VMGlobals* g = gMainVMGlobals;
     PyrObject* obj = instantiateObject(g->gc, s_netaddr->u.classobj, 2, true, false);
     PyrSlot* slots = obj->slots;
-    SetInt(slots + 0, inReply->mAddress.to_v4().to_ulong());
+    SetInt(slots + 0, inReply->mAddress.to_v4().to_uint());
     SetInt(slots + 1, inReply->mPort);
     return obj;
 }
