This greatly reduces the amount of code we need to load while reducing abstractions which slow us down and hurt memory use when displaying gigantic threads.
More may be done and we may use SearchMsg directly for threading in the future and obviate the need for the container abstraction. Eric Wong (17): view: remove "subject dummy" references thread: remove Mail::Thread dependency thread: pass array refs instead of entire arrays thread: remove accessor usage in internals inbox: deal with ghost smsg thread: remove Email::Abstract wrapping thread: remove rootset accessor method thread: simplify thread: remove iterate_down thread: avoid incrementing undefined value thread: order_children no longer cares about depth thread: inline and remove recurse_down logic thread: fix sorting without topmost thread: use hash + array instead of hand-rolled linked list view: remove redundant children array in thread views t/thread-cycle: test self-referential messages thread: remove weaken dependency INSTALL | 1 - MANIFEST | 3 +- Makefile.PL | 1 - lib/PublicInbox/Inbox.pm | 2 + lib/PublicInbox/SearchIdx.pm | 4 +- lib/PublicInbox/SearchMsg.pm | 29 ------- lib/PublicInbox/SearchThread.pm | 147 +++++++++++++++++++++++++++++++++++ lib/PublicInbox/SearchView.pm | 15 ++-- lib/PublicInbox/Thread.pm | 86 --------------------- lib/PublicInbox/View.pm | 165 ++++++++++++++++++---------------------- lib/PublicInbox/WWW.pm | 2 +- t/plack.t | 3 +- t/search.t | 7 +- t/thread-cycle.t | 97 +++++++++++++++++++++++ 14 files changed, 333 insertions(+), 229 deletions(-)