Opened 14 years ago

Closed 14 years ago

#2345 closed Patches (fixed)

[mpl] Patch to improve support for CodeGear C++Builder 2009

Reported by: Nicola Musatti Owned by: Aleksey Gurtovoy
Milestone: To Be Determined Component: mpl
Version: Boost Development Trunk Severity: Problem
Keywords: Cc:

Description

The attached patch fixes workarounds for the latest CodeGear (ex Borland) compiler.

Attachments (1)

boost_mpl.patch (11.9 KB ) - added by Nicola Musatti 14 years ago.

Download all attachments as: .zip

Change History (8)

by Nicola Musatti, 14 years ago

Attachment: boost_mpl.patch added

comment:1 by Nicola Musatti, 14 years ago

Although I have commit privileges I'd rather have this patch reviewed before applying it myself (aleksey?)

comment:2 by Aleksey Gurtovoy, 14 years ago

Status: newassigned

comment:3 by Aleksey Gurtovoy, 14 years ago

Overall, it looks good. A couple of questions:

  1. In "assert.hpp", why
-#if BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
+#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \

vs.

-#if BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
+#if BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \

?

  1. In "quote.hpp", why
-#if defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS)
+#if defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) && !BOOST_WORKAROUND( __BORLANDC__, >=0x590 )
 #   define BOOST_MPL_CFG_NO_QUOTE_TEMPLATE
 #endif

vs. modifying BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS condition in "aux_/config/ttp.hpp"?

  1. Changes to "apply_wrap.hpp" and "quote.hpp" won't have any effect until we regenerate preprocessed headers. Were you testing the whole thing with BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS defined?

in reply to:  3 comment:4 by Nicola Musatti, 14 years ago

Replying to agurtovoy:

First of all. keep in mind that I'm not the original author of most of the patches I submitted in the last few weeks. These are the work of Alisdair Meredith and his collegues at CodeGear. I'm more or less just helping with getting them in shape for being applied to trunk.

Overall, it looks good. A couple of questions:

  1. In "assert.hpp", why
-#if BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
+#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \

vs.

-#if BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, < 0x600) \
+#if BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \

?

I guess this is just meant as a simplification, as the last compiler before 5.6.0, i.e. 5.5.1 is about eight years old and not likely to be able to compile very much of current Boost anyway.

  1. In "quote.hpp", why
-#if defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS)
+#if defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) && !BOOST_WORKAROUND( __BORLANDC__, >=0x590 )
 #   define BOOST_MPL_CFG_NO_QUOTE_TEMPLATE
 #endif

vs. modifying BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS condition in "aux_/config/ttp.hpp"?

I have no idea, sorry...

  1. Changes to "apply_wrap.hpp" and "quote.hpp" won't have any effect until we regenerate preprocessed headers. Were you testing the whole thing with BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS defined?

Yes. My problem is I don't know how to regenerate the preprocessed headers for this compiler; still either that needs to be done or needs to be defined BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS, if just on a temporary basis.

Cheers, Nicola

comment:5 by Nicola Musatti, 14 years ago

I took the liberty of committing this patch to trunk, as tonight is the last chance to get it through a trunk regression test run and still make it into 1.37 . Ready to revert in case of problems.

comment:6 by Aleksey Gurtovoy, 14 years ago

Thanks. I've made a couple of small fixes and regenerated corresponding preprocessed headers. Let's see how this turns out.

comment:7 by Aleksey Gurtovoy, 14 years ago

Resolution: fixed
Status: assignedclosed

Merged to the release branch.

Note: See TracTickets for help on using tickets.