guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

04/13: Have delete-duplicates/sort! take a equality procedure


From: Christopher Baines
Subject: 04/13: Have delete-duplicates/sort! take a equality procedure
Date: Fri, 19 Jan 2024 04:57:46 -0500 (EST)

cbaines pushed a commit to branch master
in repository data-service.

commit 15b6dad5a56a48f81d2a0bb45de9224c5e8ed805
Author: Christopher Baines <mail@cbaines.net>
AuthorDate: Thu Jan 18 14:38:33 2024 +0000

    Have delete-duplicates/sort! take a equality procedure
    
    And change the default, as eq? doesn't always work.
---
 guix-data-service/model/derivation.scm | 3 ++-
 guix-data-service/utils.scm            | 4 ++--
 guix-data-service/web/compare/html.scm | 2 +-
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/guix-data-service/model/derivation.scm 
b/guix-data-service/model/derivation.scm
index d95e285..c516e58 100644
--- a/guix-data-service/model/derivation.scm
+++ b/guix-data-service/model/derivation.scm
@@ -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
diff --git a/guix-data-service/utils.scm b/guix-data-service/utils.scm
index 7357a40..c91b10b 100644
--- a/guix-data-service/utils.scm
+++ b/guix-data-service/utils.scm
@@ -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)
diff --git a/guix-data-service/web/compare/html.scm 
b/guix-data-service/web/compare/html.scm
index 6979e42..5b624d1 100644
--- a/guix-data-service/web/compare/html.scm
+++ b/guix-data-service/web/compare/html.scm
@@ -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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]