about summary refs log tree commit diff
path: root/pkgs/development/compilers/chicken/4/0001-Introduce-CHICKEN_REPOSITORY_EXTRA.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/chicken/4/0001-Introduce-CHICKEN_REPOSITORY_EXTRA.patch')
-rw-r--r--pkgs/development/compilers/chicken/4/0001-Introduce-CHICKEN_REPOSITORY_EXTRA.patch157
1 files changed, 0 insertions, 157 deletions
diff --git a/pkgs/development/compilers/chicken/4/0001-Introduce-CHICKEN_REPOSITORY_EXTRA.patch b/pkgs/development/compilers/chicken/4/0001-Introduce-CHICKEN_REPOSITORY_EXTRA.patch
deleted file mode 100644
index ca72ba0119f0..000000000000
--- a/pkgs/development/compilers/chicken/4/0001-Introduce-CHICKEN_REPOSITORY_EXTRA.patch
+++ /dev/null
@@ -1,157 +0,0 @@
-From 2877f33747e3871c3a682b3a0c812b8ba2e4da5a Mon Sep 17 00:00:00 2001
-From: Caolan McMahon <caolan@caolanmcmahon.com>
-Date: Sat, 25 Jun 2016 11:52:28 +0100
-Subject: [PATCH] Introduce CHICKEN_REPOSITORY_EXTRA
-
-This environment variable works like CHICKEN_REPOSITORY but supports
-multiple paths separated by `:'. Those paths are searched after
-CHICKEN_REPOSITORY when loading extensions via `require-library' and
-friends. It can be accessed and changed at runtime via the new procedure
-`repository-extra-paths' which is analog to `repository-path'.
-
-Original patch by Moritz Heidkamp.
-Updated by Caolan McMahon for CHICKEN 4.11.0
----
- chicken-install.scm | 29 ++++++++++++++++++++++++-----
- chicken.import.scm  |  1 +
- eval.scm            | 37 +++++++++++++++++++++++++++++++------
- 3 files changed, 56 insertions(+), 11 deletions(-)
-
-diff --git a/chicken-install.scm b/chicken-install.scm
-index 7bc6041..f557793 100644
---- a/chicken-install.scm
-+++ b/chicken-install.scm
-@@ -120,6 +120,19 @@
- 		 (sprintf "lib/chicken/~a" (##sys#fudge 42)))
- 		(repository-path)))))
- 
-+  (define (repo-paths)
-+    (if *deploy*
-+	*prefix*
-+	(if (and *cross-chicken* (not *host-extension*))
-+	    (list (make-pathname C_TARGET_LIB_HOME (sprintf "chicken/~a" C_BINARY_VERSION)))
-+	    (cons
-+	     (if *prefix*
-+		 (make-pathname
-+			*prefix*
-+			(sprintf "lib/chicken/~a" (##sys#fudge 42)))
-+		 (repository-path))
-+	     (repository-extra-paths)))))
-+
-   (define (get-prefix #!optional runtime)
-     (cond ((and *cross-chicken*
- 		(not *host-extension*))
-@@ -226,10 +239,13 @@
-            (chicken-version) )
- 	  ;; Duplication of (extension-information) to get custom
- 	  ;; prefix.  This should be fixed.
--          ((let* ((ep (##sys#canonicalize-extension-path x 'ext-version))
--		  (sf (make-pathname (repo-path) ep "setup-info")))
--	     (and (file-exists? sf)
--		  (with-input-from-file sf read))) =>
-+      ((let ((ep (##sys#canonicalize-extension-path x 'ext-version)))
-+         (let loop ((paths (repo-paths)))
-+           (cond ((null? paths) #f)
-+                 ((let ((sf (make-pathname (car paths) ep "setup-info")))
-+                    (and (file-exists? sf)
-+                         (with-input-from-file sf read))))
-+                 (else (loop (cdr paths)))))) =>
-            (lambda (info)
-              (let ((a (assq 'version info)))
-                (if a
-@@ -776,7 +792,10 @@
- 		  "installed extension has no information about which egg it belongs to"
- 		  (pathname-file sf))
- 		 #f))))
--      (glob (make-pathname (repo-path) "*" "setup-info")))
-+      (append-map
-+       (lambda (path)
-+       (glob (make-pathname path "*" "setup-info")))
-+       (repo-paths)))
-      equal?))
- 
-   (define (list-available-extensions trans locn)
-diff --git a/chicken.import.scm b/chicken.import.scm
-index f6e3a19..be1637c 100644
---- a/chicken.import.scm
-+++ b/chicken.import.scm
-@@ -200,6 +200,7 @@
-    repl
-    repl-prompt
-    repository-path
-+   repository-extra-paths
-    require
-    reset
-    reset-handler
-diff --git a/eval.scm b/eval.scm
-index 6242f62..f7d76d4 100644
---- a/eval.scm
-+++ b/eval.scm
-@@ -81,6 +81,7 @@
- (define-constant source-file-extension ".scm")
- (define-constant setup-file-extension "setup-info")
- (define-constant repository-environment-variable "CHICKEN_REPOSITORY")
-+(define-constant repository-extra-environment-variable "CHICKEN_REPOSITORY_EXTRA")
- (define-constant prefix-environment-variable "CHICKEN_PREFIX")
- 
- ; these are actually in unit extras, but that is used by default
-@@ -1176,6 +1177,25 @@
- 
- (define ##sys#repository-path repository-path)
- 
-+(define ##sys#repository-extra-paths
-+  (let* ((repaths (get-environment-variable repository-extra-environment-variable))
-+	 (repaths (if repaths
-+		      (let ((len (string-length repaths)))
-+			(let loop ((i 0) (offset 0) (res '()))
-+			  (cond ((> i len)
-+				 (reverse res))
-+				((or (= i len) (eq? #\: (string-ref repaths i)))
-+				 (loop (+ i 1) (+ i 1) (cons (substring repaths offset i) res)))
-+				(else
-+				 (loop (+ i 1) offset res)))))
-+		      '())))
-+    (lambda (#!optional val)
-+      (if val
-+	  (set! repaths val)
-+	  repaths))))
-+
-+(define repository-extra-paths ##sys#repository-extra-paths)
-+
- (define ##sys#setup-mode #f)
- 
- (define ##sys#find-extension
-@@ -1193,6 +1213,7 @@
- 	(let loop ((paths (##sys#append
- 			   (if ##sys#setup-mode '(".") '())
- 			   (if rp (list rp) '())
-+			   (##sys#repository-extra-paths)
- 			   (if inc? ##sys#include-pathnames '())
- 			   (if ##sys#setup-mode '() '("."))) ))
- 	  (and (pair? paths)
-@@ -1252,12 +1273,16 @@
- 	[string-append string-append]
- 	[read read] )
-     (lambda (id loc)
--      (and-let* ((rp (##sys#repository-path)))
--	(let* ((p (##sys#canonicalize-extension-path id loc))
--	       (rpath (string-append rp "/" p ".")) )
--	  (cond ((file-exists? (string-append rpath setup-file-extension))
--		 => (cut with-input-from-file <> read) )
--		(else #f) ) ) ) ) ))
-+      (let loop ((rpaths (cons (##sys#repository-path) (##sys#repository-extra-paths))))
-+	(and (pair? rpaths)
-+	     (let ((rp (car rpaths)))
-+	       (if (not rp)
-+		   (loop (cdr rpaths))
-+		   (let* ((p (##sys#canonicalize-extension-path id loc))
-+			  (rpath (string-append rp "/" p ".")) )
-+		     (cond ((file-exists? (string-append rpath setup-file-extension))
-+			    => (cut with-input-from-file <> read) )
-+			   (else (loop (cdr rpaths))) ) )) ))) ) ))
- 
- (define (extension-information ext)
-   (##sys#extension-information ext 'extension-information) )
--- 
-2.1.4
-