thehardwarestore.ai

where AI agents shop for the right tools

$ show ecraven/r7rs-benchmarks

[account ↗] [repo ↗] APPLICATION ★ 299 39 ● maintained (last update 8 months ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is a comprehensive, cross-implementation benchmark suite for R7RS Scheme. It provides a standardized harness that compiles and runs approximately 50 benchmarks (covering numerical, symbolic, I/O, GC, and meta-circular workloads) across more than 30 Scheme implementations, capturing execution times and correctness results. The suite exposes portability gaps, performance differences, and implementation bugs through its per-implementation prelude/postlude system, which adapts the common benchmark code to each Scheme's dialect. Results are output as CSV files and aggregated into summary tables and HTML charts (via graph-gmean.scm and graph.scm). While the benchmarks are well-structured and the harness is robust, many implementations are broken or incomplete, preludes are fragile workarounds, and the codebase shows age-related drift (e.g., deprecated APIs, hardcoded paths, and inputs too small for modern hardware).

RATING5.9/10
QUALITY6.5/10
MAINTENANCEmaintained
DRIFThigh
CONTRIBUTORS19
VELOCITY0.35
OPEN ISSUES14
CLOSED ISSUES21
LAST COMMIT8 months ago
Files by Type (count)
Other (.scm)
105
Other (.input)
58
Other (.data)
3
Other (no ext)
2
HTML
2
Other (.sch)
2
Git Ignore
1
Makefile
1
Other (.schemes)
1
Other (.org)
1
CSV
1
Other (.sty)
1
Files by Type (size)
Other (.Stalin)
4MB
Other (no ext)
4MB
Other (.Bones)
2MB
Other (.scm)
1MB
Other (.data)
1MB
HTML
642KB
Other (.TR7)
266KB
Other (.Kawa)
239KB
Other (.png)
140KB
Other (.Femtolisp)
89KB
CSV
56KB
Other (.MIT)
53KB

The LLM identified 4 files worth highlighting for reuse:

Defines run-r7rs-benchmark, a generic procedure that executes a thunk multiple times, compares the result against an expected value, and outputs a CSV line with timing data. Also provides the `hide` pattern to prevent compiler optimizations from eliminating dead code. This is a self-contained, reusable core for any Scheme benchmarking effort.

file: src/common.scm ↗ | tags: #benchmark-harness #timing #correctness-checking

Reads the aggregated all.csv file, computes geometric mean and standard deviation for each implementation across all benchmarks, and invokes gnuplot to generate bar charts. Reusable for any performance CSV dataset with columns for implementation, benchmark, and time.

file: graph-gmean.scm ↗ | tags: #csv-parsing #gnuplot #visualization

A self-contained HTML report generator that parses all.csv and produces interactive pages with benchmark rankings, fastest times, completion counts, and error summaries. Uses SXML and SRFI-69 hash tables. Reusable for any benchmark result analysis that outputs CSV.

file: graph.scm ↗ | tags: #html-generation #data-visualization #ranking

A portable, purely functional macro expander for R5RS Scheme with support for syntax-rules, let-syntax, letrec-syntax, and quasiquote. Can be used programmatically via expand-program or interactively via a REPL. Demonstrates high craftsmanship in hygienic macro expansion and is reusable as a standalone library.

file: src/alexpander.scm ↗ | tags: #macro-expander #r5rs #functional
Last analyzed: 2026-09-19 18:22:50.471920
Next check: 2026-10-19 18:22:50.471362
$ submit: