From eff78b92512cfe89675f2efd768ddacb2e93ec62 Mon Sep 17 00:00:00 2001 From: bakedsnake Date: Mon, 24 Aug 2026 15:59:05 +0200 Subject: [PATCH] Updates deprecated `asio::io_service` with `asio::io_context` Thought I would leave this here for documentation purposes at least. This makes the latest version able to build. ( latest commit ). --- --- a/src/libslic3r/GCodeSender.cpp +++ b/src/libslic3r/GCodeSender.cpp @@ -35,7 +35,9 @@ struct termios2 { speed_t c_ispeed; speed_t c_ospeed; }; +#ifndef BOTHER #define BOTHER CBAUDEX +#endif #endif @@ -97,12 +99,12 @@ GCodeSender::connect(std::string devname, unsigned int baud_rate) fs.open("serial.txt", std::fstream::out | std::fstream::trunc); #endif - // this gives some work to the io_service before it is started + // this gives some work to the io_context before it is started // (post() runs the supplied function in its thread) - this->io.post(boost::bind(&GCodeSender::do_read, this)); + boost::asio::post(this->io, boost::bind(&GCodeSender::do_read, this)); // start reading in the background thread - boost::thread t(boost::bind(&asio::io_service::run, &this->io)); + boost::thread t(boost::bind(&asio::io_context::run, &this->io)); this->background_thread.swap(t); // always send a M105 to check for connection because firmware might be silent on connect @@ -159,9 +161,8 @@ GCodeSender::disconnect() if (!this->open) return; this->open = false; this->connected = false; - this->io.post(boost::bind(&GCodeSender::do_close, this)); + boost::asio::post(this->io, boost::bind(&GCodeSender::do_close, this)); this->background_thread.join(); - this->io.reset(); /* if (this->error_status()) { throw(boost::system::system_error(boost::system::error_code(), @@ -444,7 +445,7 @@ GCodeSender::send(const std::string &line, bool priority) void GCodeSender::send() { - this->io.post(boost::bind(&GCodeSender::do_send, this)); + boost::asio::post(this->io, boost::bind(&GCodeSender::do_send, this)); } void --- a/src/libslic3r/GCodeSender.hpp +++ b/src/libslic3r/GCodeSender.hpp @@ -47,7 +47,7 @@ class GCodeSender : private boost::noncopyable { void reset(); private: - asio::io_service io; + asio::io_context io; asio::serial_port serial; boost::thread background_thread; boost::asio::streambuf read_buffer, write_buffer; From: bakedsnake Date: Mon, 24 Aug 2026 15:59:05 +0200 Subject: [PATCH] add missing boost noncopyable --- a/src/libslic3r/GCodeSender.hpp +++ b/src/libslic3r/GCodeSender.hpp @@ -8,6 +8,7 @@ #include #include #include +#include #include namespace Slic3r { From d5084db14e7b4e75bf588fe063a5b9941c1cac31 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 3 Jun 2020 01:05:39 +0200 Subject: [PATCH 01/15] Make boost::Placeholders::_1 visible Fixes https://github.com/slic3r/Slic3r/issues/4967 --- --- a/src/libslic3r/GCodeTimeEstimator.cpp +++ b/src/libslic3r/GCodeTimeEstimator.cpp @@ -1,9 +1,12 @@ #include "GCodeTimeEstimator.hpp" -#include +#include #include namespace Slic3r { +using boost::placeholders::_1; +using boost::placeholders::_2; + void GCodeTimeEstimator::parse(const std::string &gcode) { --- a/src/libslic3r/SLAPrint.cpp +++ b/src/libslic3r/SLAPrint.cpp @@ -7,9 +7,12 @@ #include #include #include +#include namespace Slic3r { +using boost::placeholders::_1; + void SLAPrint::slice() { --- a/src/libslic3r/TriangleMesh.cpp +++ b/src/libslic3r/TriangleMesh.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #ifdef SLIC3R_DEBUG #include "SVG.hpp" @@ -22,6 +23,8 @@ namespace Slic3r { +using boost::placeholders::_1; + TriangleMesh::TriangleMesh() : repaired(false) { --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -4,6 +4,9 @@ #include "Geometry.hpp" #include #include +#include + +using boost::placeholders::_1; namespace Slic3r { --- a/Build.PL +++ b/Build.PL @@ -142,7 +142,7 @@ if (defined $ENV{BOOST_LIBRARYPATH}) { } # In order to generate the -l switches we need to know how Boost libraries are named my $have_boost = 0; -my @boost_libraries = qw(system thread filesystem); # we need these +my @boost_libraries = qw(thread filesystem); # we need these # check without explicit lib path (works on Linux) if (! $mswin) { $have_boost = 1