~ chicken-core (chicken-5) ac843dd5da8f41ba1fabd4d2ad7ba80b0adbf984


commit ac843dd5da8f41ba1fabd4d2ad7ba80b0adbf984
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Sun Jul 31 14:07:22 2011 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Sun Jul 31 14:07:22 2011 +0200

    parameter-assignments returns the new value

diff --git a/library.scm b/library.scm
index 8d605849..0abf2dfa 100644
--- a/library.scm
+++ b/library.scm
@@ -2203,8 +2203,9 @@ EOF
 		 (when (fx>= i n)
 		   (set! ##sys#current-parameter-vector
 		     (##sys#grow-vector ##sys#current-parameter-vector (fx+ i 1) ##sys#snafu) ) )
-		 (##sys#setslot ##sys#current-parameter-vector i (guard val))
-		 (##core#undefined) )))
+		 (let ((val (guard val)))
+		   (##sys#setslot ##sys#current-parameter-vector i val)
+		   val))))
 	  (getter-with-setter
 	   (lambda arg
 	     (let ((n (##sys#size ##sys#current-parameter-vector)))
diff --git a/manual/Parameters b/manual/Parameters
index 2d9b22ca..e5b17421 100644
--- a/manual/Parameters
+++ b/manual/Parameters
@@ -22,7 +22,6 @@ owns a local copy of a parameters' value.
 CHICKEN implements [[http://srfi.schemers.org/srfi-39/srfi-39.html|SRFI-39]].
 
 
-
 === make-parameter
 
 <procedure>(make-parameter VALUE [GUARD])</procedure>
@@ -30,11 +29,12 @@ CHICKEN implements [[http://srfi.schemers.org/srfi-39/srfi-39.html|SRFI-39]].
 Returns a procedure that accepts zero or one argument. Invoking the
 procedure with zero arguments returns {{VALUE}}. Invoking the
 procedure with one argument changes its value to the value of that
-argument (subsequent invocations with zero parameters return the new
-value). {{GUARD}} should be a procedure of a single argument. Any
-new values of the parameter (even the initial value) are passed to this
-procedure. The guard procedure should check the value and/or convert it
-to an appropriate form.
+argument and returns the new value (subsequent invocations with zero
+parameters return the new value). {{GUARD}} should be a procedure of a
+single argument. Any new values of the parameter (even the initial
+value) are passed to this procedure. The guard procedure should check
+the value and/or convert it to an appropriate form.
+
 
 == Built-in parameters
 
Trap