On Wednesday, July 16, 2025 at 10:15:01 AM UTC-5 Edward K. Ream wrote: Recent improvements to @clean allow Leo to update outlines containing thousands of @clean nodes. For the first time, it is feasible to use Leo to work on huge repos such as Rust's compiler <https://github.com/rust-lang/rust/tree/master/compiler>.
Alas, Leo's performance degrades substantially when using huge outlines. Python's GC (Garbage Collector) probably gets overly stressed by all the temporary data Leo generates. This Engineering Notebook post explores a possible solution. I now have enough experience with PR #4397 <https://github.com/leo-editor/leo-editor/pull/4397> to know that the features it offers are worthwhile. However, @leo and its infrastructure will not greatly change the Leonine world. *Splitting outlines is the only way to improve performance* Leo chokes when loading more than about half a dozen outlines into tabs. Indeed, the performance is *much worse* than when using a single larger file. So much for that idea! The PR lets user scripts split a large repo into a *top-level outline* and several *sub-outlines*, one per sub-outline. A helper, *c.makeLinkLeoFiles*, does all the heavy lifting. The PR shows the script I have been using for testing. Sub-outlines help performance because (and only because) they are much smaller than an all-inclusive outline. That's not nothing! Furthermore, sub-outlines limit the scope of clone find commands to a sub-directory (and all the files in descendant directories). That's a feature or bug, depending on your point of view. But for study purposes, limiting the scope of searches should work just fine. *Conclusions* - @leo is worth doing because splitting a huge outline into sub-outlines ( *c.makeLinkLeoFiles*) makes sense in some situations. - The transitive closure algorithm (*c.openAllLinkedFiles*) is worth having! - Imo, there is no reason to consider running Leo in separate processes. The benefits are likely to be negligible. - Cross-file searches and cross-file clones aren't going to happen. - I'll merge PR #4397 <https://github.com/leo-editor/leo-editor/pull/4397> as soon as Félix approves it. Edward -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/leo-editor/2a33d7bb-152d-481a-a3d3-e754fa7129een%40googlegroups.com.
