Menu

Stxxl and VC++ 8.0

2006-11-06
2013-04-25
  • Nobody/Anonymous

    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!

     
    • Roman Dementiev

      Roman Dementiev - 2006-11-06

      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

       
      • Nobody/Anonymous

        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

         
        • Roman Dementiev

          Roman Dementiev - 2006-11-07

          >  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.

           
          • Nobody/Anonymous

            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!

             
            • Roman Dementiev

              Roman Dementiev - 2006-11-08

              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

               
              • Nobody/Anonymous

                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!

                 

Log in to post a comment.