Re: [PATCH 4/6] emacs: Replace 'generation-diff' search with 'profile-diff'.

2016-01-12 Thread Ludovic Courtès
Alex Kost  skribis:

> * emacs/guix-main.scm (generation-package-specifications): Rename to...
>   (profile-package-specifications): ... this.  Take a single 'profile'
>   argument.
>   (generation-difference): Rename to...
>   (profile-difference): ... this.  Take profiles as arguments.
>   (package/output-sexps): Adjust accordingly.
> * emacs/guix-ui-generation.el (guix-generation-list-profiles-to-compare):
>   New procedure.
>   (guix-generation-list-show-added-packages)
>   (guix-generation-list-show-removed-packages): Use it.
> * emacs/guix-messages.el (guix-messages): Replace 'generation-diff' with
>   'profile-diff'.
>   (guix-message-outputs-by-diff): Adjust accordingly.

LGTM.



[PATCH 4/6] emacs: Replace 'generation-diff' search with 'profile-diff'.

2016-01-10 Thread Alex Kost
* emacs/guix-main.scm (generation-package-specifications): Rename to...
  (profile-package-specifications): ... this.  Take a single 'profile'
  argument.
  (generation-difference): Rename to...
  (profile-difference): ... this.  Take profiles as arguments.
  (package/output-sexps): Adjust accordingly.
* emacs/guix-ui-generation.el (guix-generation-list-profiles-to-compare):
  New procedure.
  (guix-generation-list-show-added-packages)
  (guix-generation-list-show-removed-packages): Use it.
* emacs/guix-messages.el (guix-messages): Replace 'generation-diff' with
  'profile-diff'.
  (guix-message-outputs-by-diff): Adjust accordingly.
---
 emacs/guix-main.scm | 23 +++
 emacs/guix-messages.el  | 21 ++---
 emacs/guix-ui-generation.el | 13 +
 3 files changed, 30 insertions(+), 27 deletions(-)

diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm
index 5460c96..dfa9cba 100644
--- a/emacs/guix-main.scm
+++ b/emacs/guix-main.scm
@@ -137,10 +137,9 @@ return two values: name and version.  For example, for SPEC
 (define (manifest-entries->package-specifications entries)
   (map manifest-entry->package-specification entries))
 
-(define (generation-package-specifications profile number)
-  "Return a list of package specifications for generation NUMBER."
-  (let ((manifest (profile-manifest
-   (generation-file-name profile number
+(define (profile-package-specifications profile)
+  "Return a list of package specifications for PROFILE."
+  (let ((manifest (profile-manifest profile)))
 (manifest-entries->package-specifications
  (manifest-entries manifest
 
@@ -153,11 +152,11 @@ Each element of the list is a list of the package 
specification and its path."
  (manifest-entry-item entry)))
  (manifest-entries manifest
 
-(define (generation-difference profile number1 number2)
-  "Return a list of package specifications for outputs installed in generation
-NUMBER1 and not installed in generation NUMBER2."
-  (let ((specs1 (generation-package-specifications profile number1))
-(specs2 (generation-package-specifications profile number2)))
+(define (profile-difference profile1 profile2)
+  "Return a list of package specifications for outputs installed in PROFILE1
+and not installed in PROFILE2."
+  (let ((specs1 (profile-package-specifications profile1))
+(specs2 (profile-package-specifications profile2)))
 (lset-difference string=? specs1 specs2)))
 
 (define (manifest-entries->hash-table entries)
@@ -698,11 +697,11 @@ See 'entry-sexps' for details."
   profile))
  (manifest (profile-manifest profile))
  (patterns (if (and (eq? entry-type 'output)
-(eq? search-type 'generation-diff))
+(eq? search-type 'profile-diff))
(match search-vals
- ((g1 g2)
+ ((p1 p2)
   (map specification->output-pattern
-   (generation-difference profile g1 g2)))
+   (profile-difference p1 p2)))
  (_ '()))
(apply (patterns-maker entry-type search-type)
   manifest search-vals)))
diff --git a/emacs/guix-messages.el b/emacs/guix-messages.el
index eb2a76e..234d3d1 100644
--- a/emacs/guix-messages.el
+++ b/emacs/guix-messages.el
@@ -98,7 +98,7 @@
  val profile)
   (many "%d package outputs installed in generation %d of profile '%s'."
 count val profile))
- (generation-diff
+ (profile-diff
   guix-message-outputs-by-diff))
 
 (generation
@@ -183,19 +183,18 @@ Try \"M-x guix-search-by-name\"."
  "matching time period '%s' - '%s'.")
  str-beg profile time-beg time-end)))
 
-(defun guix-message-outputs-by-diff (profile entries generations)
-  "Display a message for outputs searched by GENERATIONS difference."
+(defun guix-message-outputs-by-diff (_ entries profiles)
+  "Display a message for outputs searched by PROFILES difference."
   (let* ((count (length entries))
  (str-beg (guix-message-string-entries count 'output))
- (gen1 (car  generations))
- (gen2 (cadr generations)))
+ (profile1 (car  profiles))
+ (profile2 (cadr profiles)))
 (cl-multiple-value-bind (new old str-action)
-(if (> gen1 gen2)
-(list gen1 gen2 "added to")
-  (list gen2 gen1 "removed from"))
-  (message (concat "%s %s generation %d comparing with "
-   "generation %d of profile '%s'.")
-   str-beg str-action new old profile
+(if (string-lessp profile2 profile1)
+(list profile1 profile2 "added to")
+  (list profile2 profile1 "removed from"))
+  (message "%s %s profile '%s' comparing with profile '%s'."
+   str-