packages: Add a printer for <package>.
authorLudovic Courtès <ludo@gnu.org>
Sat, 1 Sep 2012 17:21:06 +0000 (19:21 +0200)
committerLudovic Courtès <ludo@gnu.org>
Sun, 2 Sep 2012 13:41:52 +0000 (15:41 +0200)
* guix/packages.scm (<package>): Add record printer.

guix/packages.scm

index a1257b2..0ecd4ca 100644 (file)
@@ -23,6 +23,7 @@
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-9)
+  #:use-module (srfi srfi-9 gnu)
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
   #:export (location
@@ -164,6 +165,19 @@ representation."
             (default (and=> (current-source-location)
                             source-properties->location))))
 
+(set-record-type-printer! <package>
+                          (lambda (package port)
+                            (let ((loc    (package-location package))
+                                  (format simple-format))
+                              (format port "#<package ~a-~a ~a:~a ~a>"
+                                      (package-name package)
+                                      (package-version package)
+                                      (location-file loc)
+                                      (location-line loc)
+                                      (number->string (object-address
+                                                       package)
+                                                      16)))))
+
 
 ;; Error conditions.