Fix a test problem caused by make-parameter changing to unsettable.
authorChris Hanson <org/chris-hanson/cph>
Tue, 1 Mar 2016 21:34:06 +0000 (13:34 -0800)
committerChris Hanson <org/chris-hanson/cph>
Tue, 1 Mar 2016 21:34:06 +0000 (13:34 -0800)
Thanks to craven@gmx.net for finding this.

doc/ref-manual/misc-datatypes.texi
doc/ref-manual/special-forms.texi
tests/runtime/test-dynamic-env.scm

index 61e6212be8c29569b8799755f793137ab345fd85..2b0e485512adc4130c4d8603db541c31badeafe3 100644 (file)
@@ -432,6 +432,8 @@ This procedure is like @code{make-parameter}, except that the returned
 parameter object may also be assigned by passing it an argument.  Note
 that an assignment to a settable parameter affects only the extent of
 its current binding.
+
+@code{make-settable-parameter} is an MIT/GNU Scheme extension.
 @end deffn
 
 @deffn procedure parameterize* bindings thunk
@@ -440,7 +442,7 @@ new values.  Returns the value of @var{thunk} while the parameters are
 dynamically bound to the values.
 
 Note that the @code{parameterize} special form expands into a call to
-this procedure.
+this procedure.  @code{parameterize*} is an MIT/GNU Scheme extension.
 @end deffn
 
 @anchor{Cells}
index 385c43f4f78f44daefdb8ef98cad8a4e832a9a6b..fc5ec573151efee45d3f3b5802c8576dc8ba4335 100644 (file)
@@ -419,7 +419,7 @@ to jump in and out of the body repeatedly.
 @example
 @group
 (define (complicated-dynamic-parameter)
-  (let ((variable (make-parameter 1))
+  (let ((variable (make-settable-parameter 1))
         (inside-continuation))
     (write-line (variable))
     (call-with-current-continuation
index 581231b50a8d0e05a05fe91e14ebeb18df23a87f..75190168c20f125f80f38c630a3ec9444977048e 100644 (file)
@@ -30,23 +30,26 @@ USA.
 \f
 (define-test 'PARAMETERS
   (lambda ()
+    (assert-eqv make-unsettable-parameter make-parameter)
     (let ((p (make-parameter 1))
-         (q (make-parameter 2 (lambda (v)
-                                (if (not (integer? v))
-                                    (error:wrong-type-argument v "an integer"
-                                                               'PARAMETER-Q)
-                                    v)))))
+         (q (make-parameter 2
+                            (lambda (v)
+                              (guarantee-exact-nonnegative-integer v)
+                              v))))
       (assert-eqv (p) 1)
-      (assert-equal (parameterize ((p "7") (q 9)) (cons (p) (q)))
+      (assert-equal (parameterize ((p "7") (q 9))
+                     (cons (p) (q)))
                    '("7" . 9))
       (assert-equal (cons (p) (q))
                    '(1 . 2))
-      (assert-error (lambda () (parameterize ((q "7")) (q)))
+      (assert-error (lambda ()
+                     (parameterize ((q "7"))
+                       (q)))
                    (list condition-type:wrong-type-argument)))))
 
 ;; From node "Dynamic Binding" in doc/ref-manual/special-forms.texi:
 (define (complicated-dynamic-parameter)
-  (let ((variable (make-parameter 1))
+  (let ((variable (make-settable-parameter 1))
         (inside-continuation))
     (write-line (variable))
     (call-with-current-continuation