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)) (length ids-chunk))
(exec-query conn query))))) (exec-query conn query)))))
(chunk! ids 500)) (chunk! ids 500))
<)) <
=))
(define (derivation-ids->missing-sources ids) (define (derivation-ids->missing-sources ids)
(define query (define query

View file

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

View file

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