I'm using Visual C++ 8.0 (Express) and Boost 1.33.1. I have built Stxxl in its Debug version (getting lots of warnings but no errors). When running the various tests provided with the library I get lots of annoying runtime errors (corrupted list iterators for instance).
I have also built Stxxl under VC++ 7.1 before and most of the tests I did then seemed to worked (not so sure about that, unfortunately). So, my question is: has anyone successfully run the tests when compiling with VC++ 8.0?
Apart from that: does anybody know whether the map/btree class can be used when building with VC++ 7.1 or 8.0? I read that the btree class is not portable in some way.
Thanks in advance!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
There are two problems with VC8 I have discovered so far
1) many range checks in VC8 STL leading to many assertions.
These assertions actually do not imply errors in fact: e.g.
{
std::vector<...>::iterator i = V.begin();
--i; // though i will not be used thereafter, the program fails here
}
I am working on workarounds for this. They will be released
soon.
The current solution is to switch the optimization off for debug version:
remove /O2 option in the make.settings.msvc file and recompile the Stxxl library and the tests.
However, the optimization flags should work in the release version.
The stxxl::map should work already in the current version of Stxxl for both VC++ 7.1 and 8.0.
--
Roman
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
thank you for your quick response. I'm looking forward to hear of your improvements concerning your first note. I'll try turning off optimization tomorrow. It's a bit late now and compilation takes quite some time. :-)
--
Andreas
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It's me again. I got your newest sources and have turned optimization off (/Od). After building the whole thing in VC++ 7.1 and 8.0 I ran the test_map program. As far as I can tell, it runs stable when compiling with VC++ 7.1 but raises an "unknown software exception" (immediately after program start) in its VC++ 8.0 version. I suppose you don't have any other clues unfortunately... Meanwhile, I guess I'll stick with Berkeley DB which offers similar functionality (BTrees, efficient I/O).
Thanks for your efforts!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
> It's me again. I got your newest sources and have turned optimization off (/Od).
> After building the whole thing in VC++ 7.1 and 8.0 I ran the test_map program.
> As far as I can tell, it runs stable when compiling with VC++ 7.1 but raises an
> "unknown software exception" (immediately after program start) in its VC++ 8.0
> version.
:(( I have tested only the debug version. The release version with or without optimization (VC8) failed as you have described on my machine as well. I did not test it before. Sorry.
> I suppose you don't have any other clues unfortunately...
not true ;-) I have found and fixed the bug already (I believe :) ) The source of error is that I did too many assumptions about the (VC8) STL implementation. Looks like it works now. Check the new version out.
Interestingly, the error did not appear in the debug version :-o .
--
Roman
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Just a quick reply from me: I fetched your latest sources and build the Release configuration under VC++ 8.0. Test_map works now (well, at least it doesn't crash). I have to do more testing with my own data, but I'm quite optimistic that I'll use this promising library.
Thank you once more!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
I'm using Visual C++ 8.0 (Express) and Boost 1.33.1. I have built Stxxl in its Debug version (getting lots of warnings but no errors). When running the various tests provided with the library I get lots of annoying runtime errors (corrupted list iterators for instance).
I have also built Stxxl under VC++ 7.1 before and most of the tests I did then seemed to worked (not so sure about that, unfortunately). So, my question is: has anyone successfully run the tests when compiling with VC++ 8.0?
Apart from that: does anybody know whether the map/btree class can be used when building with VC++ 7.1 or 8.0? I read that the btree class is not portable in some way.
Thanks in advance!
Hi,
There are two problems with VC8 I have discovered so far
1) many range checks in VC8 STL leading to many assertions.
These assertions actually do not imply errors in fact: e.g.
{
std::vector<...>::iterator i = V.begin();
--i; // though i will not be used thereafter, the program fails here
}
I am working on workarounds for this. They will be released
soon.
2) a bug in VC8, see: http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=98724
The current solution is to switch the optimization off for debug version:
remove /O2 option in the make.settings.msvc file and recompile the Stxxl library and the tests.
However, the optimization flags should work in the release version.
The stxxl::map should work already in the current version of Stxxl for both VC++ 7.1 and 8.0.
--
Roman
Hi Roman,
thank you for your quick response. I'm looking forward to hear of your improvements concerning your first note. I'll try turning off optimization tomorrow. It's a bit late now and compilation takes quite some time. :-)
--
Andreas
> thank you for your quick response. I'm looking forward to
> hear of your improvements concerning your first note.
Try the latest Stxxl version that I have released today.
It's me again. I got your newest sources and have turned optimization off (/Od). After building the whole thing in VC++ 7.1 and 8.0 I ran the test_map program. As far as I can tell, it runs stable when compiling with VC++ 7.1 but raises an "unknown software exception" (immediately after program start) in its VC++ 8.0 version. I suppose you don't have any other clues unfortunately... Meanwhile, I guess I'll stick with Berkeley DB which offers similar functionality (BTrees, efficient I/O).
Thanks for your efforts!
Hi,
> It's me again. I got your newest sources and have turned optimization off (/Od).
> After building the whole thing in VC++ 7.1 and 8.0 I ran the test_map program.
> As far as I can tell, it runs stable when compiling with VC++ 7.1 but raises an
> "unknown software exception" (immediately after program start) in its VC++ 8.0
> version.
:(( I have tested only the debug version. The release version with or without optimization (VC8) failed as you have described on my machine as well. I did not test it before. Sorry.
> I suppose you don't have any other clues unfortunately...
not true ;-) I have found and fixed the bug already (I believe :) ) The source of error is that I did too many assumptions about the (VC8) STL implementation. Looks like it works now. Check the new version out.
Interestingly, the error did not appear in the debug version :-o .
--
Roman
Hi again :-)
Just a quick reply from me: I fetched your latest sources and build the Release configuration under VC++ 8.0. Test_map works now (well, at least it doesn't crash). I have to do more testing with my own data, but I'm quite optimistic that I'll use this promising library.
Thank you once more!