Skip to content

feat(factorial): integrate Plutarch 1.10.1 submission#33

Merged
Unisay merged 3 commits intomainfrom
integrate-plutarch-factorial
Aug 20, 2025
Merged

feat(factorial): integrate Plutarch 1.10.1 submission#33
Unisay merged 3 commits intomainfrom
integrate-plutarch-factorial

Conversation

@Unisay
Copy link
Copy Markdown
Collaborator

@Unisay Unisay commented Aug 20, 2025

Summary

This PR integrates the Plutarch factorial submission from #29, following the same clean integration strategy used for the fibonacci submission.

Changes:

  • ✅ Add Plutarch 1.10.1 factorial submission by @SeungheonOh
  • ✅ Update all measurements with cape submission measure --all
  • ✅ Regenerate performance reports with factorial comparison

Performance Comparison:

Compiler CPU Units Memory Units Script Size Term Size
Plinth 1.52.0.0 5.86M ⭐ 21.75K ⭐ 37 ⭐ 29 ⭐
Plutarch 1.10.1 7.85M 28.36K 42 35

Implementation Notes:

  • Uses fix point combinators with conditional logic
  • Demonstrates "builtin casing" power as noted by contributor
  • Much more efficient than fibonacci benchmarks (M vs B scale)
  • Source code available in source/factorial.hs

Integration Strategy

This PR cleanly integrates only the submission files from #29, avoiding merge conflicts by:

  1. Cherry-picking submission directory: submissions/factorial/Plutarch_1.10.1_SeungheonOh/
  2. Running fresh measurements across all submissions for consistency
  3. Regenerating reports from scratch with factorial comparison
  4. Maintaining proper formatting and schema compliance

Verification

Factorial benchmark now displays both submissions:

  • Reports: Updated main index shows "factorial (2 submissions)"
  • Charts: Generated factorial performance comparison charts
  • Tables: Both submissions properly compared in factorial.html

Supersedes and closes #29

Related: Closes #30 (Review UPLC-CAPE submission: factorial)

cc @SeungheonOh @Unisay

Unisay added 3 commits August 20, 2025 12:01
Cherry-picked Plutarch factorial submission from PR #29:
- CPU units: 7,845,912
- Memory units: 28,362
- Script size: 42 bytes
- Demonstrates power of builtin casing as noted by contributor
- Updated all submission metrics from cape submission measure --all
- Regenerated reports showing factorial benchmark with 2 submissions:
  - Plinth 1.52.0.0: 5.86M CPU, 21.75K Memory (best)
  - Plutarch 1.10.1: 7.85M CPU, 28.36K Memory
- Refreshed fibonacci charts and tables with latest measurements
…ibility

Fixes GHC parser error in Haddock mode for postfix qualified imports:
- Added {-# LANGUAGE ImportQualifiedPost #-} pragma
- Enables proper formatting with fourmolu/treefmt
- Formatted with consistent import ordering and spacing
@Unisay Unisay self-assigned this Aug 20, 2025
@Unisay Unisay merged commit 5949825 into main Aug 20, 2025
1 check passed
@Unisay Unisay deleted the integrate-plutarch-factorial branch August 20, 2025 10:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Review UPLC-CAPE submission: factorial

1 participant