Tuesday, September 4, 2007

Status

I've revamped the interface for Boost.Extension, to make it more concise. The main difference is that the RTTI requirement is easier to avoid now.

Option 1:

You can have separate containers for each set of constructors for a specific interface.

Option 2:

You can declare your own type of type info - perhaps just integers or strings.

The latest change makes option one easier.

A recent checkin in Boost.Build seems to have broken the build for documentation. If you have trouble generating the documentation, you may have to wait a few days until I check the latest docs into svn.boost.org in the sandbox. I managed to get the docs compiling successfully on Ubuntu, and should have the updates posted in three to four days.

6 comments:

Kobus said...

Hi Jeremy

What is the status of the extension library? Today is the 1st of Nov 2007 and I don't see this library on the Boost website. I'm starting work on an application that requires a plug-in architecture and so far the best candidates seem to be this library and the POCO library.

Ciao,
Kobus.

Jeremy Pack said...

It should be fully functional.

I'm currently spending more time on Boost.Reflection, in order to prepare both libraries for review for inclusion in Boost. (They are not yet officially part of Boost).

They are both available in the Boost Sandbox - check out svn.boost.org

Have you used Boost before?

Kobus said...

I forgot to check for a reply...

I used Boost a long time ago (about 5 years) on a Linux project. At the moment I'm working on Windows. I downloaded Boost 1.34.1 but so far I have not been able to get it to build with MinGW. I have googled for instructions and everybody says the same thing, but I get the error:

Unable to load Boost.Build: could not find build system.
---------------------------------------------------------
E:\src\boost\boost_1_34_1\boost-build.jam attempted to load the build system by invoking

'boost-build tools/build/v2 ;'

but we were unable to find "bootstrap.jam" in the specified directory
or in BOOST_BUILD_PATH (searching E:\src\boost\boost_1_34_1\tools/build/v2).

Please consult the documentation at 'http://www.boost.org'.

Jeremy Pack said...

Send me an e-mail at rostovpack - @ - gmail.com to reply

Is there a file called bootstrap.jam in E:\src\boost\boost_1_34_1\tools/build/v2?

If there is, I think your problem is that the tool is mixing \ and /. With mingw, I think you'll want to use \. So you need to export an environment variable:

BOOST_BUILD_PATH=E:\src\boost\boost_1_34_1\tools\build\v2

Shafi said...

Hi Jeremy

I'm using codeblocks (nightly build) with GCC(MINGW) c++ compiler. I was trying to compile the below code which is using Boost Filesystem. GCC simply generates the error for boost::filesystem::detail::status_api.

Code snippest and generated Error is as follows:


#include "boost/filesystem.hpp"

namespace fs = boost::filesystem;

int main(int argc, char** argv[])
{
fs::path path("C:/Test.txt"); // random pathname
bool result= fs::is_directory(path);
printf("Path is a directory : %d\n", result);
return 0;
}

Error is: undefined reference to `boost::filesystem::detail::status_api(std::string const&, unsigned int&)'

Please help me out as I'm using Boost and Boost Extension for my new project and time frame now is a critical issue here.

Regards
Shafi Ahmed
shafi@icreon.com
India (N.Delhi)

Jeremy Pack said...

Shafi,

I am no expert on the Filesystem library. For that, you will want to contact Beman Dawes, or the Boost mailing list directly.

However, I have seen similar problems with Boost.Filesystem on certain compilers.

What type of Makefile are you using to compile this? What shared or static libraries are you linking to?

In short, some functions in Boost.Filesystem require that you either link directly to the Filesystem shared (or static) library, or that you compile the .cpp files into your executable (the first option is the recommended one).

If you have more questions, or this does not solve your problem, please send me the contents of your makefile and/or subscribe to the boost-users mailing list (see boost.org) and send an e-mail to that list.