This is my review of the Boost DLL library: On 7/9/2015 2:13 PM, Vladimir Prus wrote:
Boosters,
I wanted to remind that the formal review of Boost.DLL library by Antony Polukhin is nearing the end - the last day to submit reviews is Sunday. Of course, not much discussion is likely to happen on Sunday, so if you have any thoughts, sending them on Thursday or Friday will be much appreciated. Thanks in advance!
The summary of the library features and review checklists are reproduced below.
Boost.DLL is a C++98 library for comfortable work with DLL and DSO. Library provides a portable across platforms way to:
- load libraries at runtime - import and export any native functions and variables - make alias names for C++ mangled functions and symbols - query libraries/objects and executables for sections and exported symbols - self loading and self querying - getting program and module location by exported symbol
The documentation can be found at:
http://apolukhin.github.io/Boost.DLL/index.html
and the source can be obtained at:
https://github.com/apolukhin/Boost.DLL
Please post your reviews on the mailing list and if possible, answer the following questions:
- Should the library be accepted?
Yes. I vote for acceptance.
- How useful is it?
I view it as very useful as it provides a cross-platform implementation of loading a shared library and invoking functionality in that library. This is a common usage of programming in all major platforms.
- What's your evaluation of - Design
The design from the end-user's point of view is clear and consistent.
- Implementation
I did not look at the implementation.
- Documentations
The name of the library seems Windows specific, since DLL is the term that Windows uses for shared libraries. Would not Boost DLM ( for dynamic loadable modules ) or Boost Loadable Library be clearer ? I think the documentation is good and thorough but could use a general overview section which briefly explained what the library accomplishes and of what the general means of accomplishing it consists. The rest of the documentation is more than adequate. I could understand how to use the library fairly easily even without an overview but for the general end-user I think an overview is necessary.
- Tests - How much effort did you put into your evaluation?
I ran DLL's tests against a number of compilers on Windows, including gcc, clang, and VC++. I encountered some problems but not enough to make me think there was any serious problems in the design.
- Did you attempt to use the library? On what systems and compilers?
I ran the DLL tests on Windows with mingw/gcc-4.8.1, mingw-64/gcc-5.1, clang-3.6, clang-3.7 ( latest ), and VC++12. Whatever problems I found I believe the library developer will fix if/when they occur in regression testing.