Can you open a PR on Codeberg?
On Thu, 08 Oct 2026, "Dr. Arne Babenhauserheide" <[email protected]> wrote:
> Hi,
>
> this is another min/max change: inlining logic in cps/types.scm.
>
> I did this just because I stumbled over it and when I benchmarked with
> the r7rs benchmarks, I saw that this brings a 1-2% speedup for cat,
> gcbench, and quicksort.
>
> Best wishes,
> Arne
>
>
> From b18bc284ed916482f27d89d3123f8c0c28b38a8e Mon Sep 17 00:00:00 2001
> From: Arne Babenhauserheide <[email protected]>
> Date: Thu, 8 Oct 2026 21:46:47 +0200
> Subject: [PATCH] cps: inline min and max three elements deep to reduce
> indirect calls
>
> * module/language/cps/types.scm (min): inline < three levels deep
> * module/language/cps/types.scm (max): inline > three levels deep
> ---
> module/language/cps/types.scm | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/module/language/cps/types.scm b/module/language/cps/types.scm
> index fbe7ae087..88ddf732b 100644
> --- a/module/language/cps/types.scm
> +++ b/module/language/cps/types.scm
> @@ -218,13 +218,13 @@
> (define min
> (case-lambda
> ((a b) (if (< a b) a b))
> - ((a b c) (min (min a b) c))
> - ((a b c d) (min (min a b) c d))))
> + ((a b c) (if (< a b) (if (< b c) a (if (< a c) a c)) (if (< b c) b c)))
> + ((a b c d) (min (min a b c) d))))
> (define max
> (case-lambda
> ((a b) (if (> a b) a b))
> - ((a b c) (max (max a b) c))
> - ((a b c d) (max (max a b) c d))))
> + ((a b c) (if (> a b) (if (> b c) a (if (> a c) a c)) (if (> b c) b c)))
> + ((a b c d) (max (max a b c) d))))
>
>
>
> --
> 2.54.0
>
> --
> Unpolitisch sein
> heißt politisch sein,
> ohne es zu merken.
> https://www.draketo.de
--
Olivier Dion