Move <location> to (guix utils).
* guix/packages.scm (<location>, location): Move to... * guix/utils.scm: ... here.master
parent
ea52a52d7c
commit
ff352cfb97
|
@ -22,17 +22,10 @@
|
||||||
#:use-module (guix build-system)
|
#:use-module (guix build-system)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-9)
|
|
||||||
#:use-module (srfi srfi-9 gnu)
|
#:use-module (srfi srfi-9 gnu)
|
||||||
#:use-module (srfi srfi-34)
|
#:use-module (srfi srfi-34)
|
||||||
#:use-module (srfi srfi-35)
|
#:use-module (srfi srfi-35)
|
||||||
#:export (location
|
#:export (origin
|
||||||
location?
|
|
||||||
location-file
|
|
||||||
location-line
|
|
||||||
location-column
|
|
||||||
|
|
||||||
origin
|
|
||||||
origin?
|
origin?
|
||||||
origin-uri
|
origin-uri
|
||||||
origin-method
|
origin-method
|
||||||
|
@ -78,31 +71,6 @@
|
||||||
;;;
|
;;;
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
;; 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
|
|
||||||
(memoize
|
|
||||||
(lambda (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."
|
|
||||||
(let ((file (assq-ref loc 'filename))
|
|
||||||
(line (assq-ref loc 'line))
|
|
||||||
(col (assq-ref loc 'column)))
|
|
||||||
(location file (and line (+ line 1)) col)))
|
|
||||||
|
|
||||||
|
|
||||||
;; The source of a package, such as a tarball URL and fetcher---called
|
;; The source of a package, such as a tarball URL and fetcher---called
|
||||||
;; "origin" to avoid name clash with `package-source', `source', etc.
|
;; "origin" to avoid name clash with `package-source', `source', etc.
|
||||||
(define-record-type* <origin>
|
(define-record-type* <origin>
|
||||||
|
|
|
@ -48,6 +48,14 @@
|
||||||
define-record-type*
|
define-record-type*
|
||||||
compile-time-value
|
compile-time-value
|
||||||
memoize
|
memoize
|
||||||
|
|
||||||
|
location
|
||||||
|
location?
|
||||||
|
location-file
|
||||||
|
location-line
|
||||||
|
location-column
|
||||||
|
source-properties->location
|
||||||
|
|
||||||
gnu-triplet->nix-system
|
gnu-triplet->nix-system
|
||||||
%current-system))
|
%current-system))
|
||||||
|
|
||||||
|
@ -605,3 +613,32 @@ returned by `config.guess'."
|
||||||
(define %current-system
|
(define %current-system
|
||||||
;; System type as expected by Nix, usually ARCHITECTURE-KERNEL.
|
;; System type as expected by Nix, usually ARCHITECTURE-KERNEL.
|
||||||
(make-parameter (gnu-triplet->nix-system %host-type)))
|
(make-parameter (gnu-triplet->nix-system %host-type)))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Source location.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
;; 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
|
||||||
|
(memoize
|
||||||
|
(lambda (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."
|
||||||
|
(let ((file (assq-ref loc 'filename))
|
||||||
|
(line (assq-ref loc 'line))
|
||||||
|
(col (assq-ref loc 'column)))
|
||||||
|
(location file (and line (+ line 1)) col)))
|
||||||
|
|
Loading…
Reference in New Issue