This repository hosts Pebble submission sources for the UPLC-CAPE benchmark.
benchmarks/: Contains the source code for the benchmarks (following CAPE naming conventions).fibonacci_naive_recursion/: Naive recursive Fibonacci implementation.factorial_naive_recursion/: Naive recursive Factorial implementation.
scripts/: Utility scripts for build process.flat-to-uplc.js: Converts UPLC Flat binary format to textual UPLC representation.
flake.nix: Nix flake defining the development environment.package.json: Node.js project configuration and build scripts.
- Nix with flakes enabled.
-
Enter the development shell:
nix develop
This provides
bun,nodejs, and other necessary tools. -
Install project dependencies (including the Pebble CLI):
bun install
To compile the benchmark sources into both UPLC Flat (binary) and textual UPLC formats:
bun run buildThis will generate .uplc files (textual UPLC format) in the respective benchmark directories:
benchmarks/fibonacci_naive_recursion/fibonacci_naive_recursion.uplcbenchmarks/factorial_naive_recursion/factorial_naive_recursion.uplc
Note: .flat files (binary format) are generated as intermediate build artifacts but are not committed (excluded via .gitignore).
You can also compile them individually:
bun run compile:fib
bun run compile:factTo clean generated files:
bun run clean.uplcfiles: Human-readable textual UPLC representation in S-expression syntax (primary output for CAPE benchmarking).flatfiles: Binary UPLC Flat format, generated as intermediate build artifact (gitignored, not committed)