Tech debt: opportunistic Boost -> std cleanup (bind/function, filesystem, lexical_cast, thread) #619

Open
opened 2026-10-10 01:34:09 +00:00 by sky_line · 0 comments
Owner

Opportunistic cleanup: when we are in a file anyway, replace Boost pieces the standard library now covers. No dedicated sweep; this ticket tracks the direction. To be revisited more closely later (with the wider third-party review).

Replace when touched

  • boost::function / boost::bind (~100 files) -> std::function / lambdas
  • boost::filesystem -> std::filesystem
  • boost::lexical_cast -> std::from_chars / std::to_chars
  • boost::thread -> std::thread / std::jthread
  • boost::unordered_map/set where a std container is fine (keep boost::unordered_flat_map where speed matters)
  • boost::noncopyable, boost::static_assert, boost::type_traits, boost::assign, boost::lambda -> language features

Keep (load-bearing or better than std)

  • Boost.Fiber + Context (LLCoros: every coroutine in the viewer)
  • Boost.Signals2 (settings / UI / event pump signals)
  • Boost.JSON, Boost.Graph (lldependencies), Boost.Regex (faster than std::regex)
  • Niche but working: Wave (LSL preprocessor), Spirit (XUI parser, llcalcparser), Program_options (command line), URL (GLTF loader), Iostreams (LLSD serialize)

Compile time and binary size only; none of it is in the render path.

Opportunistic cleanup: when we are in a file anyway, replace Boost pieces the standard library now covers. No dedicated sweep; this ticket tracks the direction. To be revisited more closely later (with the wider third-party review). ## Replace when touched - `boost::function` / `boost::bind` (~100 files) -> `std::function` / lambdas - `boost::filesystem` -> `std::filesystem` - `boost::lexical_cast` -> `std::from_chars` / `std::to_chars` - `boost::thread` -> `std::thread` / `std::jthread` - `boost::unordered_map/set` where a std container is fine (keep `boost::unordered_flat_map` where speed matters) - `boost::noncopyable`, `boost::static_assert`, `boost::type_traits`, `boost::assign`, `boost::lambda` -> language features ## Keep (load-bearing or better than std) - Boost.Fiber + Context (LLCoros: every coroutine in the viewer) - Boost.Signals2 (settings / UI / event pump signals) - Boost.JSON, Boost.Graph (lldependencies), Boost.Regex (faster than std::regex) - Niche but working: Wave (LSL preprocessor), Spirit (XUI parser, llcalcparser), Program_options (command line), URL (GLTF loader), Iostreams (LLSD serialize) Compile time and binary size only; none of it is in the render path.
sky_line added this to the Slipstream project 2026-10-10 01:34:09 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#619
No description provided.