2009/8/11 Jean-Philippe Bernardy <jeanphilippe.berna...@gmail.com>: > > On Mon, Aug 10, 2009 at 11:51 PM, Jean-Philippe > Bernardy<jeanphilippe.berna...@gmail.com> wrote: >> On Mon, Aug 10, 2009 at 11:28 PM, Colin McQuillan<m.ni...@googlemail.com> >> wrote: >> >>> Great news. Could you give a quick summary of how you did it? >> >> Step by step: >> [...] > > GC time still increase after, say, an hour of normal usage. > So I'd say there is still a leak somewhere, which shows > probably only in edit mode. Now, this isn't surprising, as we still > have infinite undo -- but it seems that even after closing all buffers, > which should clear the undo lists, the leak is still there.
I found a leak that can't be fixed by seq. The *messages* buffer will still save undo information including everything that was ever shown. This patch will print increasingly big lines: @@ -91,6 +91,9 @@ interactive action = do evs <- withEditor $ getA pendingEventsA logPutStrLn $ ">>> interactively" ++ showEvs evs + buffers <- getA buffersA + logPutStrLn $ ">>> buffers" ++ show buffers + forM_ buffers (\buffer -> let undos=buffer^.undosA in logPutStrLn $ ">>> undos:" ++ show undos) withEditor $ modA buffersA (fmap $ undosA ^: addChangeU InteractivePoint) mapM_ runAction action withEditor $ modA killringA krEndCmd For example minibuffer completions are stored forever via withMinibufferGen->printStatus->setTmpStatus->insertN. --~--~---------~--~----~------------~-------~--~----~ Yi development mailing list yi-devel@googlegroups.com http://groups.google.com/group/yi-devel -~----------~----~----~----~------~----~------~--~---