~ 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