From: Janne H. <ja...@hy...> - 2004-12-28 10:02:59
|
skaller wrote: > I'm too lazy to search the archives, but segfaults were reported > with Dynarray some time ago. Much more recently someone actually > found a problem with 0 length Dynarrays. Even DynArray.create makes 0 length DynArrays, so it would be quite surprising if this was the actual bug. On the other hand, DynArray.copy uses a magic "idup" which is used only in two places in the module. This might well be the culprit. >> I think this approach is perfectly reasonable >>since GC bugs should not be that frequent. > > > Hmmm. What *other* kinds of bugs do you expect to find?? So far I have found only one bug that manifests itself in the GC cycle. Here are the bugs I've found from BitSet: - BitSet.compare logic mistakes, didn't handle different bit vector lengths - BitSet.differentiate et al. read past the bit vector thus producing a random answer for some test cases. Since these were reads, they didn't cause problems in GC. These kinds of bugs may or may not segfault, usually they will not if they only read a few bytes off. - Inconsistent behaviour: BitSet.is_set should throw an exception for negative indices (since others do as well!) but it doesn't. In the future if a Date/Time modules get added into ExtLib and should there be any bugs, I doubt these will be related to GC. Same goes for path handling. > --test=mmm_aa_ttt > --exe=foobar Yep, been thinking about the same options. I'll probably add these during this week. ciao, janne |