This causes builds to happen in sorted order rather than in
declaration order. This gets annoying when you make a global change
and then you notice that the files that are being compiled are jumping
around the directory hierarchy.
 
         for base in type(self).__mro__:
             if issubclass(base, SourceFile):
-                bisect.insort_right(base.all, self)       
+                base.all.append(self)
 
     def __lt__(self, other): return self.filename < other.filename
     def __le__(self, other): return self.filename <= other.filename