~ 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