~ chicken-r7rs (master) 6e45b962b052c1de7aa4dbadee7a9e9e61d8114e


commit 6e45b962b052c1de7aa4dbadee7a9e9e61d8114e
Author:     Peter Bex <peter@more-magic.net>
AuthorDate: Sat Jul 6 19:11:19 2013 +0000
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Sat Jul 6 19:11:19 2013 +0000

    Don't cache the command-line!  his change also makes it fully pure

diff --git a/scheme.process-context.scm b/scheme.process-context.scm
index 2202cf0..488e210 100644
--- a/scheme.process-context.scm
+++ b/scheme.process-context.scm
@@ -14,17 +14,13 @@
 ;;; 6.14. System interface.
 ;;;
 
-(: command-line (-> (list-of string)))
+(: command-line (--> (list-of string)))
 (: exit (* -> noreturn))
 (: emergency-exit (* -> noreturn))
 
-(define command-line
-  (let ((command-line #f)
-        (arguments (command-line-arguments)))
-    (lambda ()
-      (unless command-line
-        (set! command-line (cons (program-name) arguments)))
-      command-line)))
+(define (command-line)
+  ;; Don't cache these; they may be parameterized at any time!
+  (cons (program-name) (command-line-arguments)))
 
 (define (->exit-status obj)
   (cond ((integer? obj) obj)
Trap