Dear Knut,my apologies in case my comment came across the wrong way. I was not complaining about the bug fixing being slow but the actual process of submitting bugs/files to the bug tracker http://trac.mi.fu-berlin.de/seqan/, which takes a couple of minutes just for submitting a tiny comment. At least from the other side of the world where I am sitting. However, I observe no time lag whatsoever when checking out from SVN.
Best regards, Fabian Reinert, Knut wrote:
Dear Fabian, thank you very much for your reports and the bug fixes. Here in Germany we have the last 3 weeks of the Semester and hence we are a bit bogged down and slow with fixing bugs. All the best, Knut Reinert On Jun 22, 2010, at 3:51 AM, Fabian Buske wrote:Hi,I figured out a solution for the issue. Basically, the missing assignment operator (=) in several classes were causing the problem. I'm in the process of updating the related bug report in the bugtracker (which seems awfully slow by the way). I will attach all files modified by myself. I recommend a prompt merge with the current version of the library to avoid conflicts with subsequent file changes.Thanks & cheers, Fabian Fabian Buske wrote:Hi,After not attracting any attention on this one I worked myself through the MemoryManager, which seems to cause all the problems.First, the part the compiler complains about doesn't make any sense to me at all. So I put the following lines in comments:memoryManager_int.h: //hmmmmmmmmmmm < this was not my comment; its not useful whatsoever size_t x = supremumValue<size_t>(); while (tmpSource != x){ tmpSource = source[tmpSource]; target[tmpTarget] = tmpSource; tmpTarget = target[tmpTarget]; }I also had to change a couple of lines above to prevent a bad memory access. Changed:target.lastValue = &target[length(source)-1]; to if (length(source) > 0) target.lastValue = &target[length(source)-1];I also have the other bugfixes that I did submit to the bug-tracker (bug + fix) but unfortunately nobody has actually made the changes in the library so far.*What I figured out:*The SeedSet is instantiated as a local variable and then added to the map. That means everything is copied, at least it should, otherwise its lost when the program leaves the scope of the SeedSet. However, the memoryManager seems to recycle certain memory regions that contain seeds. At least I loose the seed data when I leave the scope.TMap map; { TSeedSet seedset(100, 0); TSeed seed(1, 2, 4); if (!addSeed(seedset, seed, Single())) ::std::cerr << "adding seed went wrong" << ::std::endl; insert(map, 0, seedset); // insert the seedset at key=0 printMap(map,-2,2); // Seeds still in map } printMap(map,-2,2); // Seeds gone from mapHere, the second printMap() throws a memory access exception. The data for the seed are lost:first printMap(map,-2,2): -2 missed -1 missed 0 found 1 1-4 2-5 1 missed second printMap(map,-2,2): -2 missed -1 missed 0 found Current language: auto; currently c++ Program received signal: “EXC_BAD_ACCESS”.Any idea on how to fix this is very much appreciated since this bug proves himself a stopper.Thanks a lot! Cheers, Fabian Fabian Buske wrote:Hi,I tried to use a map (skiplist) loaded with an __int64 key and a seedSet cargo but get a compiler error. Is there a size limit as to what load of a cargo or what type of cargo can be used?Sample code: typedef SeedSet< int, SimpleSeed, DefaultNoScore , void > TSeedSet; typedef Pair< int, TSeedSet> TSkipValue; typedef Map< TSkipValue , Skiplist< > > TDiagMap; SeedSet< int, SimpleSeed, DefaultNoScore , void > seedset(100, 0); TDiagMap diagMap; insert(diagMap, 1, seedset); throws:seqan/seeds/memoryManager_int.h:185: error: cannot convert 'const seqan::Seed<int, const seqan::Tag<seqan::_Seed_simple> >' to 'size_t' in assignment seqan/seeds/memoryManager_int.h:185: error: cannot convert 'const seqan::Seed<int, const seqan::Tag<seqan::_Seed_simple> >' to 'size_t' in assignment seqan/seeds/memoryManager_int.h:185: error: cannot convert 'const seqan::Seed<int, const seqan::Tag<seqan::_Seed_simple> >' to 'size_t' in assignmentI did put in a ticket for this as well.On a minor note seed_base and the seedSet_base are missing the "= operator" implementation.Seed & operator = (Seed const &orig) Cheers, Fabian-- Fabian Buske Institute for Molecular BioscienceThe University of Queensland Brisbane, Qld. 4072 AustraliaPhone: (61)-(7)-334-62608-- Fabian Buske Institute for Molecular BioscienceThe University of Queensland Brisbane, Qld. 4072 AustraliaPhone: (61)-(7)-334-62608 _______________________________________________ seqan-dev mailing list seqan-dev@lists.fu-berlin.de https://lists.fu-berlin.de/listinfo/seqan-dev
-- Fabian Buske Institute for Molecular BioscienceThe University of Queensland Brisbane, Qld. 4072 Australia
Phone: (61)-(7)-334-62608