~ chicken-core (chicken-5) c2f37304ff8ed8c1612f9fe9a5c717876ee29690


commit c2f37304ff8ed8c1612f9fe9a5c717876ee29690
Author:     Evan Hanson <evhan@foldling.org>
AuthorDate: Sat May 21 17:18:35 2016 +1200
Commit:     Peter Bex <peter@more-magic.net>
CommitDate: Sun May 22 13:22:04 2016 +0200

    Make `repository-path` a proper parameter
    
    This makes it compatible with the new `convert?` and `set?` arguments
    that parameterize uses to separately convert and then change a
    parameter's value. See #1227 and a94b69e.
    
    Signed-off-by: Peter Bex <peter@more-magic.net>

diff --git a/eval.scm b/eval.scm
index 1016e2be..6242f62f 100644
--- a/eval.scm
+++ b/eval.scm
@@ -852,7 +852,7 @@
 	  (##sys#meta-macro-environment (##sys#macro-environment))
 	  (##sys#macro-environment oldme)))))
 
-(define ##sys#eval-handler 
+(define eval-handler
   (make-parameter
    (lambda (x #!optional env)
      (let ((se (##sys#current-environment)))
@@ -867,7 +867,7 @@
 	     (else
 	      ((##sys#compile-to-closure x '() se #f #f #f) '() ) ) ) ) )))
 
-(define eval-handler ##sys#eval-handler)
+(define ##sys#eval-handler eval-handler)
 
 (define (eval x . env)
   (apply (##sys#eval-handler) 
@@ -1163,22 +1163,18 @@
 		   (check (##sys#substring p 0 (fx- n 1))) ]
 		  [else p] ) ) ) ) ) ) )
 
-(define ##sys#repository-path
-  (let ((rpath
-	 (if (##sys#fudge 22)		; private repository?
-	     (foreign-value "C_private_repository_path()" c-string)
-	     (or (get-environment-variable repository-environment-variable)
-		 (##sys#chicken-prefix 
-		  (##sys#string-append 
-		   "lib/chicken/"
-		   (##sys#number->string (##sys#fudge 42))) )
-		 install-egg-home))))
-    (lambda (#!optional val)
-      (if val
-	  (set! rpath val)
-	  rpath))))
-
-(define repository-path ##sys#repository-path)
+(define repository-path
+  (make-parameter
+   (if (##sys#fudge 22) ; private repository?
+       (foreign-value "C_private_repository_path()" c-string)
+       (or (get-environment-variable repository-environment-variable)
+	   (##sys#chicken-prefix
+	    (##sys#string-append
+	     "lib/chicken/"
+	     (##sys#number->string (##sys#fudge 42))))
+	   install-egg-home))))
+
+(define ##sys#repository-path repository-path)
 
 (define ##sys#setup-mode #f)
 
Trap