This archive contains the original Racket source code to accompany the paper
"Rewriting Macros on the Fly". Each section of the paper corresponds to a
different (collection of) source file(s) found in the src/ directory:
-
(Section 2) Administrative Reduction of CPS Transformations
cps-trans.rkt
-
(Section 3) Modular, Monadic CPS Macros
cps-monad.rkt
-
(Section 4) Rewriting Administrative Steps Across Macro Boundaries
cps-inline.rkt
-
(Section 5) Extensible Macro Rewriting Rules
cps-rewrite.rkt
-
(Section 6) Case Study of Rewriting Copatterns
-
stats.rkt: calculations for measuring syntax tree statistics, and the benchmark suites of original / expanded code. -
copattern-examples.rkt: a set of example programs using copatterns from [9] -
composable.rkt: the original, naive implementation of copattern-matching macros from [9] -
composable-inline.rkt: a revision of the above using macro-rewriting rules to eliminate administrative steps at expansion-time
-
[9] Paul Downen and Adriano Corbelino II. 2025. CoScheme: Compositional Copatterns in Scheme. TFP '25. Source: https://github.com/pdownen/CoScheme