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

Reply via email to