Have delete-duplicates/sort! take a equality procedure

And change the default, as eq? doesn't always work.
This commit is contained in:
Christopher Baines 2024-01-18 14:38:33 +00:00
parent 45d9b1ad7c
commit 15b6dad5a5
3 changed files with 5 additions and 4 deletions

View file

@ -1840,7 +1840,8 @@ WHERE derivation_inputs.derivation_id IN ("
(length ids-chunk))
(exec-query conn query)))))
(chunk! ids 500))
<))
<
=))
(define (derivation-ids->missing-sources ids)
(define query

View file

@ -417,7 +417,7 @@ available. Return the resource once PROC has returned."
#t)
(define (delete-duplicates/sort! unsorted-lst less)
(define* (delete-duplicates/sort! unsorted-lst less #:optional (equal? equal?))
(if (null? unsorted-lst)
unsorted-lst
(let ((sorted-lst (sort! unsorted-lst less)))
@ -428,7 +428,7 @@ available. Return the resource once PROC has returned."
(if (null? lst)
result
(let ((current-element (car lst)))
(if (eq? current-element last-element)
(if (equal? current-element last-element)
(loop (cdr lst)
last-element
result)

View file

@ -865,7 +865,7 @@ enough builds to determine a change")))
((names . new-drvs-count)
(let ((distinct-packages
(length
(delete-duplicates/sort! names string<?))))
(delete-duplicates/sort! names string<? string=?))))
`((p
,(simple-format #f "Showing ~A new derivations across ~A packages"
new-drvs-count