[parameter] arg_list.hpp depends on maybe.hpp

I've been inspecting my code for a possible compilation speedup. The code uses Boost.Parameter and thus my attention shifted to it as well. I noticed that the parameter/aux_/arg_list.hpp header depends on parameter/aux_/maybe.hpp, which appears to be quite heavy due to its usage of Boost.Optional and other headers. From the code it looks like this "maybe" is only related to python binding, and the only thing arg_list.hpp needs from it is the maybe_base class, which is trivial. Is it possible to extract this class to a separate header and remove the dependency on maybe.hpp from arg_list.hpp or am I missing something? The change looks quite harmless. If I'm not missing anything, am I allowed to apply the change?

At Mon, 24 May 2010 22:10:20 +0400, Andrey Semashev wrote:
I've been inspecting my code for a possible compilation speedup. The code uses Boost.Parameter and thus my attention shifted to it as well.
I noticed that the parameter/aux_/arg_list.hpp header depends on parameter/aux_/maybe.hpp, which appears to be quite heavy due to its usage of Boost.Optional and other headers. From the code it looks like this "maybe" is only related to python binding, and the only thing arg_list.hpp needs from it is the maybe_base class, which is trivial.
Is it possible to extract this class to a separate header and remove the dependency on maybe.hpp from arg_list.hpp or am I missing something? The change looks quite harmless. If I'm not missing anything, am I allowed to apply the change?
If you can run all the regression tests and they pass, feel free to apply it. -- Dave Abrahams Meet me at BoostCon: http://www.boostcon.com BoostPro Computing http://www.boostpro.com

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Monday 24 May 2010, David Abrahams wrote:
If you can run all the regression tests and they pass, feel free to apply it.
Speaking of Boost.Parameter patches, is there any reason your patch for supporting function types as named template parameters: https://svn.boost.org/trac/boost/ticket/2793 never made it into svn? -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAkv61QYACgkQ5vihyNWuA4V9awCdGSOwN/0NXZCMnSyT2ZcpGvwM xTYAnifa/FGuBMfuX5Bw+va21Lfd1pPS =vrEj -----END PGP SIGNATURE-----

At Mon, 24 May 2010 15:35:34 -0400, Frank Mori Hess wrote:
Speaking of Boost.Parameter patches, is there any reason your patch for supporting function types as named template parameters:
https://svn.boost.org/trac/boost/ticket/2793
never made it into svn?
Mostly inattention I guess, but I note that it lacks a testcase. If you can supply one, I'll commit it. -- Dave Abrahams Meet me at BoostCon: http://www.boostcon.com BoostPro Computing http://www.boostpro.com

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Monday 24 May 2010, David Abrahams wrote:
Mostly inattention I guess, but I note that it lacks a testcase. If you can supply one, I'll commit it.
I've added a compile test to the ticket: https://svn.boost.org/trac/boost/attachment/ticket/2793/function_type_named_... The test actually fails even with the patch, due to the function type being changed into a reference to function type. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAkv65V0ACgkQ5vihyNWuA4WYrACZARk2ozRTQEbSFcHemY12zf/s utEAoKJlKIG3dY2QSSE9jbhxffG2np4I =FMdA -----END PGP SIGNATURE-----

At Mon, 24 May 2010 16:45:16 -0400, Frank Mori Hess wrote:
I've added a compile test to the ticket:
https://svn.boost.org/trac/boost/attachment/ticket/2793/function_type_named_...
The test actually fails even with the patch, due to the function type being changed into a reference to function type.
Sorry, but what am I supposed to do with a test that will fail even after the patch? Is the test broken, the patch broken, or something else? -- Dave Abrahams Meet me at BoostCon: http://www.boostcon.com BoostPro Computing http://www.boostpro.com

On Monday 24 May 2010, David Abrahams wrote:
Sorry, but what am I supposed to do with a test that will fail even after the patch? Is the test broken, the patch broken, or something else?
I think the patch is broken and the test is valid. I couldn't tell you exactly what practical difference it would make that the function type is changed into a reference to function type, but it seems wrong that the type is not exactly preserved.

On 05/24/2010 11:05 PM, David Abrahams wrote:
If you can run all the regression tests and they pass, feel free to apply it.
Done in trunk. https://svn.boost.org/trac/boost/changeset/62202/
participants (4)
-
Andrey Semashev
-
David Abrahams
-
Frank Mori Hess
-
Frank Mori Hess