Skip to content

Commit

Permalink
Use Agda Haskell lib instead of MAlonzo (#6562)
Browse files Browse the repository at this point in the history
Co-authored-by: zeme <[email protected]>
  • Loading branch information
ana-pantilie and zeme-wana authored Nov 5, 2024
1 parent d7d35f0 commit 6fa1bc9
Show file tree
Hide file tree
Showing 15 changed files with 445 additions and 188 deletions.
49 changes: 0 additions & 49 deletions nix/agda-packages.nix

This file was deleted.

42 changes: 0 additions & 42 deletions nix/agda-project.nix

This file was deleted.

30 changes: 0 additions & 30 deletions nix/agda-with-stdlib.nix

This file was deleted.

147 changes: 147 additions & 0 deletions nix/agda.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
{ repoRoot, inputs, pkgs, system, lib }:

rec {

agda-stdlib = agda-packages.standard-library.overrideAttrs (oldAtts: rec {

version = "1.7.3";

src = pkgs.fetchFromGitHub {
repo = "agda-stdlib";
owner = "agda";
rev = "v${version}";
sha256 = "sha256-vtL6VPvTXhl/mepulUm8SYyTjnGsqno4RHDmTIy22Xg=";
};

# This is preConfigure is copied from more recent nixpkgs that also
# uses version 1.7 of standard-library. Old nixpkgs (that used 1.4)
# had a preConfigure step that worked with 1.7. Less old nixpkgs
# (that used 1.6) had a preConfigure step that attempts to `rm`
# files that are now in the .gitignore list for 1.
preConfigure = ''
runhaskell GenerateEverything.hs
# We will only build/consider Everything.agda, in particular we don't want Everything*.agda
# do be copied to the store.
rm EverythingSafe.agda
'';
});


# We want to keep control of which version of Agda we use, so we supply our own and override
# the one from nixpkgs.
#
# The Agda builder needs a derivation with:
# - The 'agda' executable
# - The 'agda-mode' executable
# - A 'version' attribute
#
# So we stitch one together here.
#
# Furthermore, the agda builder uses a `ghcWithPackages` that has to have ieee754 available.
# We'd like it to use the same GHC as we have, if nothing else just to avoid depending on
# another GHC from nixpkgs! Sadly, this one is harder to override, and we just hack
# it into pkgs.haskellPackages in a fragile way. Annoyingly, this also means we have to ensure
# we have a few extra packages that it uses in our Haskell package set.
agda-packages =
let
Agda = agda-project.hsPkgs.Agda;

frankenAgdaBin = pkgs.symlinkJoin {
name = "agda";
version = Agda.identifier.version;
paths = [
Agda.components.exes.agda
Agda.components.exes.agda-mode
];
};

frankenAgda = frankenAgdaBin // {
# Newer Agda is built with enableSeparateBinOutput, hence this hacky workaround.
# https://github.com/NixOS/nixpkgs/commit/294245f7501e0a8e69b83346a4fa5afd4ed33ab3
bin = frankenAgdaBin;
};

frankenPkgs =
pkgs //
{
haskellPackages = pkgs.haskellPackages //
{
inherit (agda-project) ghcWithPackages;
};
};
in
pkgs.agdaPackages.override {
Agda = frankenAgda;
pkgs = frankenPkgs;
};


# Agda is a huge pain. They have a special custom setup that compiles the
# interface files for the Agda that ships with the compiler. These go in
# the data files for the *library*, but they require the *executable* to
# compile them, which depends on the library! They get away with it by
# using the old-style builds and building everything together, we can't
# do that.
# So we work around it:
# - turn off the custom setup
# - manually compile the executable (fortunately it has no extra dependencies!)
# and do the compilation at the end of the library derivation.
# In addition, depending on whether we are cross-compiling or not, the
# compiler-nix-name handed to us by haskell.nix will be different, so we need
# to pass it in.
agda-project-module-patch = { compiler-nix-name }: {
packages.Agda.doHaddock = lib.mkForce false;
packages.Agda.package.buildType = lib.mkForce "Simple";
packages.Agda.components.library.enableSeparateDataOutput = lib.mkForce true;
packages.Agda.components.library.postInstall = ''
# Compile the executable using the package DB we've just made, which contains
# the main Agda library
${compiler-nix-name} src/main/Main.hs -package-db=$out/package.conf.d -o agda
# Find all the files in $data
shopt -s globstar
files=($data/**/*.agda)
for f in "''${files[@]}" ; do
echo "Compiling $f"
# This is what the custom setup calls in the end
./agda --no-libraries --local-interfaces $f
done
'';
};


agda-project-module-patch-default = agda-project-module-patch {
compiler-nix-name = "ghc";
};


agda-project-module-patch-musl64 = agda-project-module-patch {
compiler-nix-name = "x86_64-unknown-linux-musl-ghc";
};


agda-with-stdlib = agda-packages.agda.withPackages [ agda-stdlib ];


agda-project = pkgs.haskell-nix.hackage-project {
name = "Agda";
version = "2.6.4.3";
compiler-nix-name = "ghc96";
cabalProjectLocal = "extra-packages: ieee754, filemanip";
modules = [ agda-project-module-patch-default ];
};


# TODO this is a bit of a hack, but it's the only way to get the uplc
# executable to find the metatheory and the stdandard library.
shell-hook-exports = ''
export AGDA_STDLIB_SRC="${agda-stdlib}/src"
export PLUTUS_METHATHEORY_SRC="./plutus-metatheory/src"
'';


wrap-program-args = ''
--set AGDA_STDLIB_SRC "${agda-stdlib}/src" \
--set PLUTUS_METHATHEORY_SRC "./plutus-metatheory/src"
'';
}
2 changes: 1 addition & 1 deletion nix/build-latex-doc.nix
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ repoRoot.nix.build-latex {


buildInputs = lib.optionals withAgda [
repoRoot.nix.agda-with-stdlib
repoRoot.nix.agda.agda-with-stdlib
];


Expand Down
5 changes: 1 addition & 4 deletions nix/outputs.nix
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ in
{
packages.plutus-metatheory-site = repoRoot.nix.plutus-metatheory-site;
packages.pre-commit-check = ghc96.pre-commit-check;
packages.agda-project = repoRoot.nix.agda-project.hsPkgs.Agda.components.exes.agda;
}

(lib.optionalAttrs (system == "x86_64-linux" || system == "x86_64-darwin")
Expand Down Expand Up @@ -64,9 +63,7 @@ in
(lib.optionalAttrs (system == "aarch64-darwin")
{
# Plausibly if things build on x86 darwin then they'll build on aarch darwin.
# Se we only build roots and devshells on aarch to avoid overloading the builders.
# Note: We can't build the 9.6 shell on aarch64-darwin
# because of https://github.com/well-typed/cborg/issues/311
# Se we only build roots and dev sshells on aarch to avoid overloading the builders.
hydraJobs.ghc810.devShell = ghc810.devShell;
hydraJobs.ghc96.devShell = ghc96.devShell;
hydraJobs.ghc98.devShell = ghc98.devShell;
Expand Down
2 changes: 1 addition & 1 deletion nix/plutus-metatheory-site.nix
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ let
plutus-metatheory-agda-html = pkgs.stdenv.mkDerivation {
name = "plutus-metatheory-doc";
src = lib.cleanSource (inputs.self + /plutus-metatheory);
buildInputs = [ repoRoot.nix.agda-with-stdlib ];
buildInputs = [ repoRoot.nix.agda.agda-with-stdlib ];
dontInstall = true;

# Jekyll requires the _layouts folder to be in the same directory as the
Expand Down
30 changes: 23 additions & 7 deletions nix/project.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@

let
cabalProject = pkgs.haskell-nix.cabalProject' ({ config, pkgs, ... }:
let isCrossCompiling = pkgs.stdenv.hostPlatform != pkgs.stdenv.buildPlatform; in
let
isCompilingMingwW64 = pkgs.stdenv.hostPlatform.system == "x86_64-windows" && pkgs.stdenv.hostPlatform.libc == "msvcrt";
isCompilingMusl64 = pkgs.stdenv.hostPlatform.system == "x86_64-linux" && pkgs.stdenv.hostPlatform.libc == "musl";
in
{
name = "plutus";

Expand Down Expand Up @@ -41,19 +44,32 @@ let
};

modules = [

(
lib.mkIf (!isCompilingMingwW64 && !isCompilingMusl64) repoRoot.nix.agda.agda-project-module-patch-default
)

(
lib.mkIf isCompilingMusl64 repoRoot.nix.agda.agda-project-module-patch-musl64
)

# Common
{
packages = {
# plutus-metatheory needs agda with the stdlib around for the custom setup
# I can't figure out a way to apply this as a blanket change for all the
# components in the package, oh well
plutus-metatheory.components.library.build-tools = [ repoRoot.nix.agda-with-stdlib ];
plutus-metatheory.components.exes.plc-agda.build-tools = [ repoRoot.nix.agda-with-stdlib ];
plutus-metatheory.components.tests.test-NEAT.build-tools = [ repoRoot.nix.agda-with-stdlib ];
plutus-metatheory.components.library.build-tools = [ repoRoot.nix.agda.agda-with-stdlib ];
plutus-metatheory.components.exes.plc-agda.build-tools = [ repoRoot.nix.agda.agda-with-stdlib ];
plutus-metatheory.components.tests.test-NEAT.build-tools = [ repoRoot.nix.agda.agda-with-stdlib ];

plutus-executables.components.exes.uplc.build-tools = [ repoRoot.nix.agda.agda-with-stdlib ];
plutus-executables.components.exes.uplc.postInstall = ''
wrapProgram $out/bin/uplc ${repoRoot.nix.agda.wrap-program-args}
'';

plutus-executables.components.exes.uplc.build-tools = [ repoRoot.nix.agda-with-stdlib ];
plutus-executables.components.tests.test-simple.build-tools = [ repoRoot.nix.agda-with-stdlib ];
plutus-executables.components.tests.test-detailed.build-tools = [ repoRoot.nix.agda-with-stdlib ];
plutus-executables.components.tests.test-simple.build-tools = [ repoRoot.nix.agda.agda-with-stdlib ];
plutus-executables.components.tests.test-detailed.build-tools = [ repoRoot.nix.agda.agda-with-stdlib ];

plutus-core.components.benchmarks.update-cost-model = {
build-tools = [ repoRoot.nix.r-with-packages ];
Expand Down
3 changes: 2 additions & 1 deletion nix/shell.nix
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ in
welcomeMessage = "🤟 \\033[1;34mWelcome to Plutus\\033[0m 🤟";

packages = [
repoRoot.nix.agda-with-stdlib
repoRoot.nix.agda.agda-with-stdlib

# R environment
repoRoot.nix.r-with-packages
Expand Down Expand Up @@ -92,6 +92,7 @@ in

shellHook = ''
${builtins.readFile certEnv}
${repoRoot.nix.agda.shell-hook-exports}
'';

preCommit = {
Expand Down
2 changes: 1 addition & 1 deletion nix/unraveling-recursion-paper.nix
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ repoRoot.nix.build-latex {
};

buildInputs = [
repoRoot.nix.agda-with-stdlib
repoRoot.nix.agda.agda-with-stdlib
pkgs.zip
];

Expand Down
Loading

1 comment on commit 6fa1bc9

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Plutus Benchmarks'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.05.

Benchmark suite Current: 6fa1bc9 Previous: d7d35f0 Ratio
validation-auction_1-1 256.3 μs 180.5 μs 1.42
validation-auction_1-2 909.6 μs 641.2 μs 1.42
validation-auction_1-3 829.8 μs 636.6 μs 1.30
validation-auction_2-3 1190 μs 839.5 μs 1.42
validation-auction_2-4 900.9 μs 636.7 μs 1.41
validation-game-sm-success_1-4 292 μs 235.7 μs 1.24
validation-multisig-sm-1 493.3 μs 415.1 μs 1.19
validation-prism-3 528.8 μs 368.1 μs 1.44
validation-pubkey-1 202.5 μs 141.7 μs 1.43
validation-stablecoin_1-1 1286 μs 900.7 μs 1.43
validation-stablecoin_1-2 281.6 μs 219.8 μs 1.28
validation-decode-auction_1-3 770.7 μs 718.8 μs 1.07
validation-decode-auction_2-2 772.5 μs 536.6 μs 1.44
validation-decode-auction_2-3 772.7 μs 539.5 μs 1.43
validation-decode-auction_2-4 774 μs 540.7 μs 1.43
validation-decode-auction_2-5 274.7 μs 192.9 μs 1.42
validation-decode-crowdfunding-success-1 335.2 μs 235.3 μs 1.42
validation-decode-crowdfunding-success-2 334.4 μs 235.7 μs 1.42
validation-decode-crowdfunding-success-3 334.3 μs 235.4 μs 1.42
validation-decode-currency-1 336 μs 238 μs 1.41
validation-decode-escrow-redeem_1-1 447.1 μs 316 μs 1.41
validation-decode-escrow-redeem_1-2 440.5 μs 364.2 μs 1.21
validation-decode-future-settle-early-2 449.1 μs 315.5 μs 1.42
validation-decode-future-settle-early-3 451.2 μs 316.3 μs 1.43
validation-decode-future-settle-early-4 977.7 μs 684.4 μs 1.43
validation-decode-game-sm-success_1-1 750.7 μs 535.6 μs 1.40
validation-decode-game-sm-success_1-2 231.8 μs 197.8 μs 1.17
validation-decode-game-sm-success_1-3 656.4 μs 527.1 μs 1.25
validation-decode-game-sm-success_2-1 558.8 μs 528.3 μs 1.06
validation-decode-game-sm-success_2-2 169.7 μs 160.9 μs 1.05
validation-decode-game-sm-success_2-3 565.8 μs 527.2 μs 1.07
validation-decode-game-sm-success_2-4 232.1 μs 163.8 μs 1.42
validation-decode-game-sm-success_2-5 750.9 μs 529.1 μs 1.42
validation-decode-game-sm-success_2-6 232.2 μs 164.2 μs 1.41
validation-decode-multisig-sm-1 835.5 μs 587.8 μs 1.42
validation-decode-multisig-sm-2 835.4 μs 588.1 μs 1.42
validation-decode-multisig-sm-3 833.4 μs 587.9 μs 1.42
validation-decode-multisig-sm-4 832.6 μs 589 μs 1.41
validation-decode-multisig-sm-5 817.3 μs 588.1 μs 1.39
validation-decode-multisig-sm-6 833 μs 613.7 μs 1.36
validation-decode-stablecoin_1-2 225.4 μs 208.9 μs 1.08
validation-decode-stablecoin_2-4 178.7 μs 160.6 μs 1.11
validation-decode-uniswap-4 252.9 μs 178.1 μs 1.42
validation-decode-uniswap-5 1022 μs 722.2 μs 1.42
validation-decode-uniswap-6 253.9 μs 178.9 μs 1.42
validation-decode-vesting-1 389.3 μs 327.5 μs 1.19
nofib-clausify/formula1 4297 μs 3031 μs 1.42
nofib-clausify/formula2 5753 μs 4065.0000000000005 μs 1.42
nofib-clausify/formula3 15660 μs 11080 μs 1.41
nofib-clausify/formula4 36030 μs 25350 μs 1.42
nofib-clausify/formula5 72590 μs 67120 μs 1.08
nofib-primetest/30digits 90270 μs 78990 μs 1.14
nofib-queens4x4/bt 6683 μs 5343 μs 1.25
nofib-queens4x4/bjbt1 8109.999999999999 μs 7392 μs 1.10
nofib-queens5x5/bjbt2 116900 μs 97920 μs 1.19
nofib-queens5x5/fc 223100 μs 173800 μs 1.28
marlowe-semantics/0000020002010200020101020201000100010001020101020201010000020102 449.7 μs 316.2 μs 1.42
marlowe-semantics/0001000101000000010101000001000001010101010100000001000001010000 611.3 μs 433.1 μs 1.41
marlowe-semantics/0003040402030103010203030303000200000104030002040304020400000102 1454 μs 1022.9999999999999 μs 1.42
marlowe-semantics/004025fd712d6c325ffa12c16d157064192992faf62e0b991d7310a2f91666b8 1132 μs 799.4 μs 1.42
marlowe-semantics/0101010001010101010101000100010100000001010000010001000001000101 1285 μs 914.1 μs 1.41
marlowe-semantics/202d273721330b31193405101e0637202e2a0f1140211c3e3f171e26312b0220 7967 μs 5881 μs 1.35
marlowe-semantics/21953bf8798b28df60cb459db24843fb46782b19ba72dc4951941fb4c20d2263 495.7 μs 349.9 μs 1.42
marlowe-semantics/238b21364ab5bdae3ddb514d7001c8feba128b4ddcf426852b441f9a9d02c882 423.6 μs 306.3 μs 1.38
marlowe-semantics/33c3efd79d9234a78262b52bc6bbf8124cb321a467dedb278328215167eca455 762.7 μs 618.6 μs 1.23
marlowe-semantics/383683bfcecdab0f4df507f59631c702bd11a81ca3841f47f37633e8aacbb5de 1064 μs 751.9 μs 1.42
marlowe-semantics/3bb75b2e53eb13f718eacd3263ab4535f9137fabffc9de499a0de7cabb335479 409.7 μs 298.3 μs 1.37
marlowe-semantics/3db496e6cd39a8b888a89d0de07dace4397878958cab3b9d9353978b08c36d8a 946.7 μs 820.6 μs 1.15
marlowe-semantics/44a9e339fa25948b48637fe7e10dcfc6d1256319a7b5ce4202cb54dfef8e37e7 421.9 μs 299.5 μs 1.41
marlowe-semantics/4c3efd13b6c69112a8a888372d56c86e60c232125976f29b1c3e21d9f537845c 1446 μs 1016 μs 1.42
marlowe-semantics/4d7adf91bfc93cebe95a7e054ec17cfbb912b32bd8aecb48a228b50e02b055c8 978.3 μs 689.9 μs 1.42
marlowe-semantics/4f9e8d361b85e62db2350dd3ae77463540e7af0d28e1eb68faeecc45f4655f57 557.3 μs 394.4 μs 1.41
marlowe-semantics/52df7c8dfaa5f801cd837faa65f2fd333665fff00a555ce8c55e36ddc003007a 502.5 μs 354.7 μs 1.42
marlowe-semantics/53ed4db7ab33d6f907eec91a861d1188269be5ae1892d07ee71161bfb55a7cb7 508.4 μs 359.6 μs 1.41
marlowe-semantics/55dfe42688ad683b638df1fa7700219f00f53b335a85a2825502ab1e0687197e 423.1 μs 300.2 μs 1.41
marlowe-semantics/56333d4e413dbf1a665463bf68067f63c118f38f7539b7ba7167d577c0c8b8ce 1093 μs 772.4 μs 1.42
marlowe-semantics/57728d8b19b0e06412786f3dfed9e1894cd0ad1d2bc2bd497ec0ecb68f989d2b 423.5 μs 298.8 μs 1.42
marlowe-semantics/5abae75af26f45658beccbe48f7c88e74efdfc0b8409ba1e98f95fa5b6caf999 679.2 μs 480.8 μs 1.41
marlowe-semantics/5d0a88250f13c49c20e146819357a808911c878a0e0a7d6f7fe1d4a619e06112 1448 μs 1016.9999999999999 μs 1.42
marlowe-semantics/5e274e0f593511543d41570a4b03646c1d7539062b5728182e073e5760561a66 1422 μs 1002.9999999999999 μs 1.42
marlowe-semantics/5e2c68ac9f62580d626636679679b97109109df7ac1a8ce86d3e43dfb5e4f6bc 730.3 μs 514.8 μs 1.42
marlowe-semantics/5f130d19918807b60eab4c03119d67878fb6c6712c28c54f5a25792049294acc 424.2 μs 300.7 μs 1.41
marlowe-semantics/5f306b4b24ff2b39dab6cdc9ac6ca9bb442c1dc6f4e7e412eeb5a3ced42fb642 1062 μs 749.5 μs 1.42
marlowe-semantics/5f3d46c57a56cef6764f96c9de9677ac6e494dd7a4e368d1c8dd9c1f7a4309a5 682.2 μs 482.5 μs 1.41
marlowe-semantics/64c3d5b43f005855ffc4d0950a02fd159aa1575294ea39061b81a194ebb9eaae 846.9 μs 653.9 μs 1.30
marlowe-semantics/70f65b21b77ddb451f3df9d9fb403ced3d10e1e953867cc4900cc25e5b9dec47 1050 μs 778.4 μs 1.35
marlowe-semantics/71965c9ccae31f1ffc1d85aa20a356d4ed97a420954018d8301ec4f9783be0d7 661.5 μs 468.5 μs 1.41
marlowe-semantics/74c67f2f182b9a0a66c62b95d6fac5ace3f7e71ea3abfc52ffbe3ecb93436ea2 1126 μs 793.4 μs 1.42
marlowe-semantics/7529b206a78becb793da74b78c04d9d33a2540a1abd79718e681228f4057403a 1114 μs 787.9 μs 1.41
marlowe-semantics/75a8bb183688bce447e00f435a144c835435e40a5defc6f3b9be68b70b4a3db6 962.8 μs 688.4 μs 1.40
marlowe-semantics/7a758e17486d1a30462c32a5d5309bd1e98322a9dcbe277c143ed3aede9d265f 712.9 μs 507.2 μs 1.41
marlowe-semantics/7cbc5644b745f4ea635aca42cce5e4a4b9d2e61afdb3ac18128e1688c07071ba 668.5 μs 473.4 μs 1.41
marlowe-semantics/82213dfdb6a812b40446438767c61a388d2c0cfd0cbf7fd4a372b0dc59fa17e1 1783 μs 1269 μs 1.41
marlowe-semantics/8c7fdc3da6822b5112074380003524f50fb3a1ce6db4e501df1086773c6c0201 1629 μs 1153 μs 1.41
marlowe-semantics/8d9ae67656a2911ab15a8e5301c960c69aa2517055197aff6b60a87ff718d66c 496 μs 350.2 μs 1.42
marlowe-semantics/96e1a2fa3ceb9a402f2a5841a0b645f87b4e8e75beb636692478ec39f74ee221 424.2 μs 300.8 μs 1.41
marlowe-semantics/9fabc4fc3440cdb776b28c9bb1dd49c9a5b1605fe1490aa3f4f64a3fa8881b25 1436 μs 1016 μs 1.41
marlowe-semantics/a85173a832db3ea944fafc406dfe3fa3235254897d6d1d0e21bc380147687bd5 511.2 μs 363 μs 1.41
marlowe-semantics/a9a853b6d083551f4ed2995551af287880ef42aee239a2d9bc5314d127cce592 722 μs 511.2 μs 1.41
marlowe-semantics/acb9c83c2b78dabef8674319ad69ba54912cd9997bdf2d8b2998c6bfeef3b122 916.5 μs 648.9 μs 1.41
marlowe-semantics/acce04815e8fd51be93322888250060da173eccf3df3a605bd6bc6a456cde871 387.6 μs 274.1 μs 1.41
marlowe-semantics/ad6db94ed69b7161c7604568f44358e1cc11e81fea90e41afebd669e51bb60c8 816.6 μs 580.9 μs 1.41
marlowe-semantics/b21a4df3b0266ad3481a26d3e3d848aad2fcde89510b29cccce81971e38e0835 1893 μs 1346 μs 1.41
marlowe-semantics/b50170cea48ee84b80558c02b15c6df52faf884e504d2c410ad63ba46d8ca35c 1069 μs 757.2 μs 1.41
marlowe-semantics/bb5345bfbbc460af84e784b900ec270df1948bb1d1e29eacecd022eeb168b315 1340 μs 950.4 μs 1.41
marlowe-semantics/c4bb185380df6e9b66fc1ee0564f09a8d1253a51a0c0c7890f2214df9ac19274 1037 μs 734.2 μs 1.41
marlowe-semantics/c9efcb705ee057791f7c18a1de79c49f6e40ba143ce0579f1602fd780cabf153 1144 μs 812 μs 1.41
marlowe-semantics/ccab11ce1a8774135d0e3c9e635631b68af9e276b5dabc66ff669d5650d0be1c 1373 μs 1000.9999999999999 μs 1.37
marlowe-semantics/cdb9d5c233b288a5a9dcfbd8d5c1831a0bb46eec7a26fa31b80ae69d44805efc 1195 μs 874.4 μs 1.37
marlowe-semantics/ced1ea04649e093a501e43f8568ac3e6b37cd3eccec8cac9c70a4857b88a5eb8 1176 μs 833.7 μs 1.41
marlowe-semantics/cf542b7df466b228ca2197c2aaa89238a8122f3330fe5b77b3222f570395d9f5 680.9 μs 615.4 μs 1.11
marlowe-role-payout/01dcc372ea619cb9f23c45b17b9a0a8a16b7ca0e04093ef8ecce291667a99a4c 227.4 μs 161 μs 1.41
marlowe-role-payout/0201020201020000020000010201020001020200000002010200000101010100 259.7 μs 183.9 μs 1.41
marlowe-role-payout/0202010002010100020102020102020001010101020102010001010101000100 241.8 μs 171 μs 1.41
marlowe-role-payout/0303020000020001010201060303040208070100050401080304020801030001 244.1 μs 172.2 μs 1.42
marlowe-role-payout/031d56d71454e2c4216ffaa275c4a8b3eb631109559d0e56f44ea8489f57ba97 287.5 μs 203.3 μs 1.41
marlowe-role-payout/03d730a62332c51c7b70c16c64da72dd1c3ea36c26b41cd1a1e00d39fda3d6cc 272.1 μs 192.1 μs 1.42
marlowe-role-payout/0403020000030204010000030001000202010101000304030001040404030100 252 μs 178.5 μs 1.41
marlowe-role-payout/0405010105020401010304080005050800040301010800080207080704020206 277.6 μs 196.2 μs 1.41
marlowe-role-payout/041a2c3b111139201a3a2c173c392b170e16370d300f2d28342d0f2f0e182e01 276.8 μs 195.8 μs 1.41
marlowe-role-payout/04f592afc6e57c633b9c55246e7c82e87258f04e2fb910c37d8e2417e9db46e5 321.5 μs 227.5 μs 1.41
marlowe-role-payout/057ebc80922f16a5f4bf13e985bf586b8cff37a2f6fe0f3ce842178c16981027 236 μs 167.4 μs 1.41
marlowe-role-payout/06317060a8e488b1219c9dae427f9ce27918a9e09ee8ac424afa33ca923f7954 250.7 μs 177.7 μs 1.41
marlowe-role-payout/07658a6c898ad6d624c37df1e49e909c2e9349ba7f4c0a6be5f166fe239bfcae 230.3 μs 162.9 μs 1.41
marlowe-role-payout/0e97c9d9417354d9460f2eb35018d3904b7b035af16ab299258adab93be0911a 262.4 μs 185.5 μs 1.41
marlowe-role-payout/0f010d040810040b10020e040f0e030b0a0d100f0c080c0c05000d04100c100f 275.2 μs 194.6 μs 1.41
marlowe-role-payout/1138a04a83edc0579053f9ffa9394b41df38230121fbecebee8c039776a88c0c 243.8 μs 172 μs 1.42
marlowe-role-payout/121a0a1b12030616111f02121a0e070716090a0e031c071419121f141409031d 234.8 μs 165.5 μs 1.42
marlowe-role-payout/159e5a1bf16fe984b5569be7011b61b5e98f5d2839ca7e1b34c7f2afc7ffb58e 240.1 μs 169.6 μs 1.42
marlowe-role-payout/195f522b596360690d04586a2563470f2214163435331a6622311f7323433f1c 232.4 μs 164.3 μs 1.41
marlowe-role-payout/1a20b465d48a585ffd622bd8dc26a498a3c12f930ab4feab3a5064cfb3bc536a 259.4 μs 183.3 μs 1.42
marlowe-role-payout/211e1b6c10260c4620074d2e372c260d38643a3d605f63772524034f0a4a7632 247.9 μs 175.2 μs 1.41
marlowe-role-payout/21a1426fb3fb3019d5dc93f210152e90b0a6e740ef509b1cdd423395f010e0ca 261.2 μs 184.8 μs 1.41
marlowe-role-payout/224ce46046fab9a17be4197622825f45cc0c59a6bd1604405148e43768c487ef 243.3 μs 171.9 μs 1.42
marlowe-role-payout/371c10d2526fc0f09dbe9ed59e44dcd949270b27dc42035addd7ff9f7e0d05e7 226.6 μs 197.8 μs 1.15
marlowe-role-payout/3897ef714bba3e6821495b706c75f8d64264c3fdaa58a3826c808b5a768c303d 244.8 μs 173.1 μs 1.41
marlowe-role-payout/4121d88f14387d33ac5e1329618068e3848445cdd66b29e5ba382be2e02a174a 276.9 μs 196.1 μs 1.41
marlowe-role-payout/ff38b1ec89952d0247630f107a90cbbeb92ecbfcd19b284f60255718e4ec7548 283.2 μs 198.9 μs 1.42

This comment was automatically generated by workflow using github-action-benchmark.

CC: @IntersectMBO/plutus-core

Please sign in to comment.