diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-07-24 22:58:08 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-07-25 19:11:36 +0200 |
commit | a5e2fc73760a2ae023f2e56bdbf8025971f90e64 (patch) | |
tree | 2933826e391a889723e1db12699c74a845b7c4c5 /guix/utils.scm | |
parent | 07dbdbd766760ce0121c1ac96fee766135fe7320 (diff) | |
download | guix-patches-a5e2fc73760a2ae023f2e56bdbf8025971f90e64.tar guix-patches-a5e2fc73760a2ae023f2e56bdbf8025971f90e64.tar.gz |
utils: Move <location> and '&error-location' to (guix diagnostics).
* guix/utils.scm (<location>, source-properties->location)
(location->source-properties, &error-location): Move to...
* guix/diagnostics.scm: ... here.
* gnu.scm: Adjust imports accordingly.
* gnu/machine.scm: Likewise.
* gnu/system.scm: Likewise.
* gnu/tests.scm: Likewise.
* guix/inferior.scm: Likewise.
* tests/channels.scm: Likewise.
* tests/packages.scm: Likewise.
Diffstat (limited to 'guix/utils.scm')
-rw-r--r-- | guix/utils.scm | 71 |
1 files changed, 15 insertions, 56 deletions
diff --git a/guix/utils.scm b/guix/utils.scm index 17a96370f1..64894ecf1f 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -37,13 +37,27 @@ #:use-module (guix memoization) #:use-module ((guix build utils) #:select (dump-port mkdir-p delete-file-recursively)) #:use-module ((guix build syscalls) #:select (mkdtemp! fdatasync)) + #:use-module (guix diagnostics) ;<location>, &error-location, etc. #:use-module (ice-9 format) #:use-module (ice-9 regex) #:use-module (ice-9 match) #:use-module (ice-9 format) #:use-module ((ice-9 iconv) #:prefix iconv:) #:use-module (system foreign) - #:re-export (memoize) ; for backwards compatibility + #:re-export (memoize ;for backwards compatibility + + <location> + location + location? + location-file + location-line + location-column + source-properties->location + location->source-properties + + &error-location + error-location? + error-location) #:export (strip-keyword-arguments default-keyword-arguments substitute-keyword-arguments @@ -51,19 +65,6 @@ current-source-directory - <location> - location - location? - location-file - location-line - location-column - source-properties->location - location->source-properties - - &error-location - error-location? - error-location - &fix-hint fix-hint? condition-fix-hint @@ -834,48 +835,6 @@ be determined." ;; raising an error would upset Geiser users #f)))))) -;; A source location. -(define-record-type <location> - (make-location file line column) - location? - (file location-file) ; file name - (line location-line) ; 1-indexed line - (column location-column)) ; 0-indexed column - -(define (location file line column) - "Return the <location> object for the given FILE, LINE, and COLUMN." - (and line column file - (make-location file line column))) - -(define (source-properties->location loc) - "Return a location object based on the info in LOC, an alist as returned -by Guile's `source-properties', `frame-source', `current-source-location', -etc." - ;; In accordance with the GCS, start line and column numbers at 1. Note - ;; that unlike LINE and `port-column', COL is actually 1-indexed here... - (match loc - ((('line . line) ('column . col) ('filename . file)) ;common case - (and file line col - (make-location file (+ line 1) col))) - (#f - #f) - (_ - (let ((file (assq-ref loc 'filename)) - (line (assq-ref loc 'line)) - (col (assq-ref loc 'column))) - (location file (and line (+ line 1)) col))))) - -(define (location->source-properties loc) - "Return the source property association list based on the info in LOC, -a location object." - `((line . ,(and=> (location-line loc) 1-)) - (column . ,(location-column loc)) - (filename . ,(location-file loc)))) - -(define-condition-type &error-location &error - error-location? - (location error-location)) ;<location> - (define-condition-type &fix-hint &condition fix-hint? (hint condition-fix-hint)) ;string |