Hi, In its version 22, libc++ introduced changes to their implementation of non-heterogeneous lookup for associative containers that break some assumptions Boost.ICL relies on: https://github.com/llvm/llvm-project/issues/183189 Turns out lookup for associative containers has been poorly specified since forever. I submitted an issue to the WG21 committee positing that a resolution should be adopted that (among other things) would make Boost.ICL assumptions correct: https://cplusplus.github.io/LWG/issue4572 In the latest meeting in Brno, however, the committee decided against that resolution with the result that, pending an upcoming reformulation of the affected part of the standard, Boost.ICL will be officially relying on undefined behavior. I've written a PR to circumvent this problem: https://github.com/boostorg/icl/pull/54 that relies on heterogeneous lookup (well defined and compatible with the asumptions made by Boost.ICL). I contacted the library maintainer some weeks ago but received no answer, so I'm asking here for this PR to be merged before Boost 1.92, since without it, Boost.ICL is currently broken for libc++ v22. FWIW, some users of Boost.ICL are already applying this fix to their local deployments of Boost: https://github.com/azahar-emu/ext-boost/commit/6a85c3100499e886e11c87a5c2109... Another contributor has posted a different PR with the same goal: https://github.com/boostorg/icl/pull/57 My analisys is that this PR is not as comprehensive as PR#54 (it fails to cover intervals of type right_open_interval and related), plus its performance is probably slightly inferior, so I still recommend that PR#54 be used instead. Thank you, Joaquín M López Muñoz
El 15/06/2026 a las 16:08, Joaquin M López Muñoz escribió:
Hi,
In its version 22, libc++ introduced changes to their implementation of non-heterogeneous lookup for associative containers that break some assumptions Boost.ICL relies on:
https://github.com/llvm/llvm-project/issues/183189
Turns out lookup for associative containers has been poorly specified since forever. I submitted an issue to the WG21 committee positing that a resolution should be adopted that (among other things) would make Boost.ICL assumptions correct:
https://cplusplus.github.io/LWG/issue4572
In the latest meeting in Brno, however, the committee decided against that resolution with the result that, pending an upcoming reformulation of the affected part of the standard, Boost.ICL will be officially relying on undefined behavior.
I've written a PR to circumvent this problem:
https://github.com/boostorg/icl/pull/54
that relies on heterogeneous lookup (well defined and compatible with the asumptions made by Boost.ICL). I contacted the library maintainer some weeks ago but received no answer, so I'm asking here for this PR to be merged before Boost 1.92, since without it, Boost.ICL is currently broken for libc++ v22. FWIW, some users of Boost.ICL are already applying this fix to their local deployments of Boost:
https://github.com/azahar-emu/ext-boost/commit/6a85c3100499e886e11c87a5c2109...
Another contributor has posted a different PR with the same goal:
https://github.com/boostorg/icl/pull/57
My analisys is that this PR is not as comprehensive as PR#54 (it fails to cover intervals of type right_open_interval and related), plus its performance is probably slightly inferior, so I still recommend that PR#54 be used instead.
Hi, I've tried to contact the registered maintainer off-list to no avail. He ceased to respond to issues with the library around February this year and the last commit is from Dec 2025, so I'm afraid we must assume Boost.ICL is currently not maintained. Is there any volunteer? We're still in time to merge PR#54 (which solves an issue real users have complained about in the last few months) so that it ships with Boost 1.92. Thank you, Joaquín M López Muñoz
Joaquín M López Muñoz wrote:
Hi, I've tried to contact the registered maintainer off-list to no avail. He ceased to respond to issues with the library around February this year and the last commit is from Dec 2025, so I'm afraid we must assume Boost.ICL is currently not maintained. Is there any volunteer? We're still in time to merge PR#54 (which solves an issue real users have complained about in the last few months) so that it ships with Boost 1.92.
If there aren't any objections, I'm going to give Joaquin write access to ICL so that he can merge the patch and take responsibility for it.
Am Do., 25. Juni 2026 um 19:55 Uhr schrieb Peter Dimov via Boost < boost@lists.boost.org>:
Joaquín M López Muñoz wrote:
Hi, I've tried to contact the registered maintainer off-list to no avail. He ceased to respond to issues with the library around February this year and the last commit is from Dec 2025, so I'm afraid we must assume Boost.ICL is currently not maintained. Is there any volunteer? We're still in time to merge PR#54 (which solves an issue real users have complained about in the last few months) so that it ships with Boost 1.92.
If there aren't any objections, I'm going to give Joaquin write access to ICL so that he can merge the patch and take responsibility for it.
Dear Peter, dear fellow developers, I had a serious health issue in spring this year and had to be treated in hospital. Now I am back and available as a maintainer of Boost.ICL. I already contacted Joaquín on PR#54, who has fixed the current SWO-Issue of ICL with a masterpiece of a code refactoring. So thank you so much Joaquín and all contributors who helped fix this bug and other open issues. With best regards, Joachim
_______________________________________________ Boost mailing list -- boost@lists.boost.org To unsubscribe send an email to boost-leave@lists.boost.org https://lists.boost.org/mailman3/lists/boost.lists.boost.org/ Archived at: https://lists.boost.org/archives/list/boost@lists.boost.org/message/TIYRJOMY...
-- Interval Container Library [Boost.Icl] http://www.joachim-faulhaber.de
El 08/07/2026 a las 19:57, Joachim Faulhaber via Boost escribió:
Am Do., 25. Juni 2026 um 19:55 Uhr schrieb Peter Dimov via Boost < boost@lists.boost.org>:
Joaquín M López Muñoz wrote:
Hi, I've tried to contact the registered maintainer off-list to no avail. He ceased to respond to issues with the library around February this year and the last commit is from Dec 2025, so I'm afraid we must assume Boost.ICL is currently not maintained. Is there any volunteer? We're still in time to merge PR#54 (which solves an issue real users have complained about in the last few months) so that it ships with Boost 1.92.
If there aren't any objections, I'm going to give Joaquin write access to ICL so that he can merge the patch and take responsibility for it.
Dear Peter, dear fellow developers,
I had a serious health issue in spring this year and had to be treated in hospital. Now I am back and available as a maintainer of Boost.ICL.
So happy to have you back at the helm! I hope your recovery is going fine.
I already contacted Joaquín on PR#54, who has fixed the current SWO-Issue of ICL with a masterpiece of a code refactoring. So thank you so much Joaquín and all contributors who helped fix this bug and other open issues.
It's been my pleasure (and I'm sure that of the other people involved). I understand you plan to fix the problem using another, more elegant approach. The PR tried to be as minimally invasive as possible, given the fact that the lib is quite large and I don't fully understand its internals. We've just bought us some time for a proper refactoring post 1.92. Take care and best regards, Joaquín M López Muñoz
participants (3)
-
Joachim Faulhaber -
Joaquin M López Muñoz -
Peter Dimov