On Thu, Mar 5, 2026 at 2:53 PM 'Simon Guest' via Beancount < [email protected]> wrote:
> OK, fair cop, I haven't profiled anything! > > As to what's possible though, it is perfectly possible for a stateful > transducer that gives the appearance of operating on each directive at a > time to in fact slurp in them all before spitting anything out, so this > scenario is covered. > Yeah but then you won't have any of the benefit > That's part of the genius of the transducer design. Even if you're not > primarily interested in Clojure, Rich Hickey's original presentation on > transducers <https://www.youtube.com/watch?v=6mTbuzafcII> is both > compelling and entertaining. Worth a watch. (And worth thinking about > whether there's anything possible like this in Python land, or whatever is > your language of choice.) > I used to attend NYC Clojure at Google NYC and I think Rich presented it one time. He's a brilliant guy. I do understand that this isn't something that's feasible to change in OG > Beancount, but I do think next generation developers should pay attention > to such things! > > > > > > > On Fri, 6 Mar 2026 at 03:09, Martin Blais <[email protected]> wrote: > >> It's a bit difficult because some plugins process the entire thing and >> insert directives after seeing the entirety of the stream before making >> modifications. In other words it's not "online". I think it's possible for >> some subset of plugins though. >> >> I don't think you'll get a lot of performance benefit from that. Do some >> profiling. Maybe finding a way to reuse balance accumulation across plugin >> runs might help, but honestly I would let profiling guide us. >> >> >> >> On Wed, Mar 4, 2026 at 11:09 PM 'Simon Guest' via Beancount < >> [email protected]> wrote: >> >>> Having been designing a plugins system for limabean using Clojure >>> transducers <https://clojure.org/reference/transducers>, I happened to >>> notice a very different implementation for plugins in OG Beancount. >>> >>> Clojure transducers compose, so if you have a number of plugins, the >>> limabean plugin framework loops once over all the directives, passing each >>> directive through the whole chain of plugins. >>> >>> I noticed that with the way plugins have been implemented in OG >>> Beancount, each plugin iterates over the entire list of directives. And >>> then the next plugin does the same, and so on. I wonder if there is the >>> potential here for iterating just once, and passing each directive through >>> the chain of plugins? >>> >>> Just to be clear, I'm only throwing this idea out. I won't be working >>> on this! 😅 >>> >>> cheers, >>> Simon >>> >>> PS. Upon reflection, it may not be very low hanging! But worth >>> considering for vNext, surely. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Beancount" 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/beancount/CAFhGSbuY8fz7ETo2%3DCJguqYsnhZC0_Um9xoF-8XPh9hAzeARpg%40mail.gmail.com >>> <https://groups.google.com/d/msgid/beancount/CAFhGSbuY8fz7ETo2%3DCJguqYsnhZC0_Um9xoF-8XPh9hAzeARpg%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Beancount" 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/beancount/CAK21%2BhPQvip3AJ6RMemWGH%3D%3D2ZbfT5NcxQOXz_31PJfp50xj5Q%40mail.gmail.com >> <https://groups.google.com/d/msgid/beancount/CAK21%2BhPQvip3AJ6RMemWGH%3D%3D2ZbfT5NcxQOXz_31PJfp50xj5Q%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > You received this message because you are subscribed to the Google Groups > "Beancount" 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/beancount/CAFhGSbvS_8NS2QVRer7P4NP3bsEm%3DEFmzVJJpH9Qp8CTH3QwPA%40mail.gmail.com > <https://groups.google.com/d/msgid/beancount/CAFhGSbvS_8NS2QVRer7P4NP3bsEm%3DEFmzVJJpH9Qp8CTH3QwPA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Beancount" 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/beancount/CAK21%2BhNDMiS5XQvcAr%3D0hHvjGpengrAQC33L%2BDaFavc%2BugAhrA%40mail.gmail.com.
