Home / Pragma / amaru
Dec 29, 7-8 AM (0)
Dec 29, 8-9 AM (0)
Dec 29, 9-10 AM (0)
Dec 29, 10-11 AM (0)
Dec 29, 11-12 PM (1)
Dec 29, 12-1 PM (0)
Dec 29, 1-2 PM (0)
Dec 29, 2-3 PM (1)
Dec 29, 3-4 PM (0)
Dec 29, 4-5 PM (0)
Dec 29, 5-6 PM (0)
Dec 29, 6-7 PM (0)
Dec 29, 7-8 PM (0)
Dec 29, 8-9 PM (0)
Dec 29, 9-10 PM (0)
Dec 29, 10-11 PM (0)
Dec 29, 11-12 AM (0)
Dec 30, 12-1 AM (0)
Dec 30, 1-2 AM (0)
Dec 30, 2-3 AM (0)
Dec 30, 3-4 AM (0)
Dec 30, 4-5 AM (0)
Dec 30, 5-6 AM (0)
Dec 30, 6-7 AM (0)
Dec 30, 7-8 AM (0)
Dec 30, 8-9 AM (0)
Dec 30, 9-10 AM (1)
Dec 30, 10-11 AM (0)
Dec 30, 11-12 PM (0)
Dec 30, 12-1 PM (0)
Dec 30, 1-2 PM (0)
Dec 30, 2-3 PM (0)
Dec 30, 3-4 PM (0)
Dec 30, 4-5 PM (0)
Dec 30, 5-6 PM (0)
Dec 30, 6-7 PM (0)
Dec 30, 7-8 PM (0)
Dec 30, 8-9 PM (0)
Dec 30, 9-10 PM (0)
Dec 30, 10-11 PM (0)
Dec 30, 11-12 AM (0)
Dec 31, 12-1 AM (0)
Dec 31, 1-2 AM (0)
Dec 31, 2-3 AM (0)
Dec 31, 3-4 AM (0)
Dec 31, 4-5 AM (0)
Dec 31, 5-6 AM (0)
Dec 31, 6-7 AM (0)
Dec 31, 7-8 AM (0)
Dec 31, 8-9 AM (0)
Dec 31, 9-10 AM (0)
Dec 31, 10-11 AM (0)
Dec 31, 11-12 PM (1)
Dec 31, 12-1 PM (0)
Dec 31, 1-2 PM (0)
Dec 31, 2-3 PM (0)
Dec 31, 3-4 PM (0)
Dec 31, 4-5 PM (2)
Dec 31, 5-6 PM (2)
Dec 31, 6-7 PM (0)
Dec 31, 7-8 PM (0)
Dec 31, 8-9 PM (2)
Dec 31, 9-10 PM (3)
Dec 31, 10-11 PM (1)
Dec 31, 11-12 AM (4)
Jan 01, 12-1 AM (0)
Jan 01, 1-2 AM (0)
Jan 01, 2-3 AM (0)
Jan 01, 3-4 AM (0)
Jan 01, 4-5 AM (0)
Jan 01, 5-6 AM (0)
Jan 01, 6-7 AM (0)
Jan 01, 7-8 AM (0)
Jan 01, 8-9 AM (0)
Jan 01, 9-10 AM (0)
Jan 01, 10-11 AM (1)
Jan 01, 11-12 PM (0)
Jan 01, 12-1 PM (0)
Jan 01, 1-2 PM (0)
Jan 01, 2-3 PM (1)
Jan 01, 3-4 PM (1)
Jan 01, 4-5 PM (2)
Jan 01, 5-6 PM (2)
Jan 01, 6-7 PM (3)
Jan 01, 7-8 PM (0)
Jan 01, 8-9 PM (0)
Jan 01, 9-10 PM (0)
Jan 01, 10-11 PM (0)
Jan 01, 11-12 AM (0)
Jan 02, 12-1 AM (0)
Jan 02, 1-2 AM (0)
Jan 02, 2-3 AM (0)
Jan 02, 3-4 AM (0)
Jan 02, 4-5 AM (0)
Jan 02, 5-6 AM (0)
Jan 02, 6-7 AM (0)
Jan 02, 7-8 AM (0)
Jan 02, 8-9 AM (0)
Jan 02, 9-10 AM (0)
Jan 02, 10-11 AM (1)
Jan 02, 11-12 PM (0)
Jan 02, 12-1 PM (0)
Jan 02, 1-2 PM (0)
Jan 02, 2-3 PM (1)
Jan 02, 3-4 PM (7)
Jan 02, 4-5 PM (43)
Jan 02, 5-6 PM (0)
Jan 02, 6-7 PM (0)
Jan 02, 7-8 PM (0)
Jan 02, 8-9 PM (0)
Jan 02, 9-10 PM (0)
Jan 02, 10-11 PM (0)
Jan 02, 11-12 AM (0)
Jan 03, 12-1 AM (0)
Jan 03, 1-2 AM (0)
Jan 03, 2-3 AM (0)
Jan 03, 3-4 AM (0)
Jan 03, 4-5 AM (0)
Jan 03, 5-6 AM (0)
Jan 03, 6-7 AM (0)
Jan 03, 7-8 AM (0)
Jan 03, 8-9 AM (0)
Jan 03, 9-10 AM (0)
Jan 03, 10-11 AM (0)
Jan 03, 11-12 PM (0)
Jan 03, 12-1 PM (0)
Jan 03, 1-2 PM (0)
Jan 03, 2-3 PM (0)
Jan 03, 3-4 PM (0)
Jan 03, 4-5 PM (1)
Jan 03, 5-6 PM (0)
Jan 03, 6-7 PM (0)
Jan 03, 7-8 PM (0)
Jan 03, 8-9 PM (0)
Jan 03, 9-10 PM (0)
Jan 03, 10-11 PM (0)
Jan 03, 11-12 AM (0)
Jan 04, 12-1 AM (0)
Jan 04, 1-2 AM (0)
Jan 04, 2-3 AM (0)
Jan 04, 3-4 AM (0)
Jan 04, 4-5 AM (0)
Jan 04, 5-6 AM (0)
Jan 04, 6-7 AM (0)
Jan 04, 7-8 AM (0)
Jan 04, 8-9 AM (0)
Jan 04, 9-10 AM (0)
Jan 04, 10-11 AM (0)
Jan 04, 11-12 PM (0)
Jan 04, 12-1 PM (0)
Jan 04, 1-2 PM (0)
Jan 04, 2-3 PM (0)
Jan 04, 3-4 PM (0)
Jan 04, 4-5 PM (0)
Jan 04, 5-6 PM (0)
Jan 04, 6-7 PM (0)
Jan 04, 7-8 PM (0)
Jan 04, 8-9 PM (0)
Jan 04, 9-10 PM (0)
Jan 04, 10-11 PM (0)
Jan 04, 11-12 AM (0)
Jan 05, 12-1 AM (0)
Jan 05, 1-2 AM (0)
Jan 05, 2-3 AM (0)
Jan 05, 3-4 AM (0)
Jan 05, 4-5 AM (0)
Jan 05, 5-6 AM (0)
Jan 05, 6-7 AM (0)
Jan 05, 7-8 AM (0)
81 commits this week Dec 29, 2025 - Jan 05, 2026
fix: adjust vm alloc arena creation and defaults
  - Clarify names outside of the ledger and add comments explaining what the config parameters stands for.
  - Reduce the default number of arenas to 1; we aren't parellalizing anything at the moment, so there's no point.
  - Move where we create the arena; it's not a concern of the upper layers (I would even be tempted to move it further down the line, inside the ledger state creation)
  - DO NOT EXPOSE arena settings to end-users. This is not a configuration we want to bother users with. This is something we have to fine-tune as implementors.

Signed-off-by: KtorZ <[email protected]>
chore: cleanup redeemers handling in script context(s)
  - Avoid duplicating sorting logic between 'Redeemers' and
    'OrderedRedeemer'. The Ord instance on the latter already carry the
    sorting logic, so we can

  - Store redeemers in an 'inverted' BTreeMap:
    - This works because we know redeemer values are unique (different
      tags and indexes; although I admittedly haven't controlled that we
      have a test for it in the rules that would correctly rule out
      duplications).

    - Doing this, we reduce the number of traversals we have to do on
      the redeemers, everything is much more streamlined.

    - We also allow near-instant lookups of redeemers, instead of having
      search them by tag & index in O(n).

  - Factor out the common instance for ToPlutusData between V2 and V3;
    generally speaking, we should avoid duplicating instances where
    possible. We use a parameterized trait for that reason!

Signed-off-by: KtorZ <[email protected]>