Re: [review] The review of boost::container::hub starts! April 16 - April 26

Matt Borland via Boost <[email protected]>
Newsgroups gmane.comp.lib.boost.devel
Message-ID <Pwd69R2TpE_5uYEes3l5u4oESI1yaprLk_-rJMIZBlc6Mt7KiZ9CZsPUpl9ofwGyM3HcIPOkf5wxZgSadJjp4T8QCyq7GovdXvdzE5JFZbw=@mattborland.com>
Hello All,

Below is my review of boost::container::hub:

- What is your evaluation of the design?

It's clearly well thought out. The deviations from std::hive are well rationalized and clearly articulated. The performance delta makes it clear the right changes were found and implemented.

- What is your evaluation of the implementation?

Generally the implementation is pretty clean and straightforward. I don't have any specific recommendations to offer on this front.

No warnings are set in the testing by default. At a minimum I recommend checking -Wall and -Werror, with -Wextra plus a handful of additional being ideal. The one that's most obviously needing a fix after reading the code is -Wold-style-cast. 


I appreciate that the library ships with pretty printers and information on how to use them. 


I find it odd that GCC 4.8 and Clang 3.5 are supported but the minimum MSVC version is 14.3. Surely 14.0 can be supported if such ancient versions of other compilers are? 


- What is your evaluation of the documentation? (Note that, if accepted, final documentation will be included in Boost.Container docs, so please review the content, not the format)

In general I think the docs answers the questions as to why use this container, and why he engineered it as such. My biggest complaint is with the performance comparisons; there must be a better way to display the information than densely packed ASCII tables. I think a good starting point is likely to talk to Peter Turcan on a better way to display this information. I expect Peter has some good opinions on the matter.

- What is your evaluation of its potential usefulness?

Hub has articulated use cases, and std::hive has been accepted into C++26. There's clearly demand and applications for such a container.

- Did you try to use the container? With which compiler(s)? Did you have any problems?

I ran the tests an ARM Mac using Clang version 22.1.3 and GCC 15.2.0. 4 of the 5 tests failed which have been reported upstream along with PRs. The fix is a one-liner so I am not deeply concerned. I did not try running with enhanced warnings like I have recommended above.

- How much effort did you put into your evaluation? A glance? A quick reading? In-depth study?

A few hours to go through the implementation and doc page.

- Are you knowledgeable about the problem domain?

I do not claim to be an expert in the design of containers.

In conclusion, I vote to ACCEPT. I think this is a useful, and well engineered container. Joaquín has an extensive history in the Boost ecosystem so I have high degree of confidence that hub will continue to be improved and maintained. I think the quality of the author is nearly as important as the quality of the library.

Disclaimer: I am a staff engineer at C++Alliance

Matt

_______________________________________________
Boost mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://lists.boost.org/mailman3/lists/boost.lists.boost.org/
Archived at: https://lists.boost.org/archives/list/[email protected]/message/VSM7XXYHQFCSP32IP5IDFXFGN4A7NEE6/
publickey - [email protected] - 0xC1382EAD.asc (application/pgp-keys, 653 B)
-----BEGIN PGP PUBLIC KEY BLOCK-----

xjMEX2wgdBYJKwYBBAHaRw8BAQdAUHOh0KpbZCszhdvKztWj4C6FR1ozMBQE
waBi3m2PJHLNK21hdHRAbWF0dGJvcmxhbmQuY29tIDxtYXR0QG1hdHRib3Js
YW5kLmNvbT7CjwQQFgoAIAUCX2wgdAYLCQcIAwIEFQgKAgQWAgEAAhkBAhsD
Ah4BACEJEFmBWlVCFaWlFiEEwTgurTcoHwbdSbIsWYFaVUIVpaVWuwEA77rm
OA4TB6Xxe6q8gI42bEICMhMyZKSMcakz39/djYkBAMJOG+IGQC/d0n3dsl10
Kg/oxX88kFO1oPKn4/XW+ToBzjgEX2wgdBIKKwYBBAGXVQEFAQEHQOsmo6wR
UuXRAvFIiqmQkzYrPyvKYKna2z4ZtmnTQMkMAwEIB8J4BBgWCAAJBQJfbCB0
AhsMACEJEFmBWlVCFaWlFiEEwTgurTcoHwbdSbIsWYFaVUIVpaWUJwEA5G0c
ZRnG5WGNErI+y90iQrTv02i4Ivhv7twoFcLD/zwA/jKypw+vehE99mEj1/uI
EkoDFlNzQZqNldbjRcPyI5UH
=462S
-----END PGP PUBLIC KEY BLOCK-----
signature.asc (application/pgp-signature, 343 B)
-----BEGIN PGP SIGNATURE-----
Version: ProtonMail

wrsEARYKAG0Fgmnnk+8JEFmBWlVCFaWlRRQAAAAAABwAIHNhbHRAbm90YXRp
b25zLm9wZW5wZ3Bqcy5vcmfZpSjKCp2LuYS14VmU4DkS/Lfaj4jVgJhswtuU
bT0XhRYhBME4Lq03KB8G3UmyLFmBWlVCFaWlAAAc1gEA+mnIJkqhiFh0yZQx
MULpPZwaHDbONadTWtrvPqDNpBQBAJgrhwqq+TPJIymZkmitdNT6F2A+Crue
1mo/ORFeBicC
=MBsB
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.