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.

Reply via email to