summaryrefslogtreecommitdiff
path: root/module
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2011-11-23 12:13:12 +0100
committerAndy Wingo <wingo@pobox.com>2011-11-23 12:53:38 +0100
commitaafb4ed72414dd0dccc6ff27a59318adfda26abf (patch)
treebb02ba84034611d66207c33d6a1ebf78db798721 /module
parentadf8616fabbf3248cfbe4f075b5f2c02fed9e5c2 (diff)
optional default-value arg to make-fluid
* libguile/fluids.c (grow_dynamic_state, new_fluid): Arrange for the default value in the dynamic-state vector to be SCM_UNDEFINED instead of SCM_BOOL_F. If the value in the dynamic-state is #f, default to a value attached to the fluid instead. This allows useful default values. (scm_make_fluid_with_default): New function, allows the user to specify a default value for the fluid. Defaults to #f. Bound to `make-fluid' on the Scheme side. (scm_make_unbound_fluid): Use SCM_UNDEFINED as the default in all threads. (scm_fluid_unset_x): Also unset the default value. Not sure if this is the right thing. (fluid_ref): Update to the new default-value strategy. * libguile/threads.c (scm_i_reset_fluid): Reset to SCM_UNDEFINED. * libguile/threads.h: Remove extra arg to scm_i_reset_fluid. * libguile/vm-i-system.c (fluid-ref): Update to new default-value strategy. * module/ice-9/vlist.scm (block-growth-factor): Default to 2 in all threads. Fixes http://debbugs.gnu.org/10093.
Diffstat (limited to 'module')
-rw-r--r--module/ice-9/vlist.scm4
1 files changed, 1 insertions, 3 deletions
diff --git a/module/ice-9/vlist.scm b/module/ice-9/vlist.scm
index 4b40b9932..8c7c87b72 100644
--- a/module/ice-9/vlist.scm
+++ b/module/ice-9/vlist.scm
@@ -66,9 +66,7 @@
;;;
(define block-growth-factor
- (let ((f (make-fluid)))
- (fluid-set! f 2)
- f))
+ (make-fluid 2))
(define-syntax-rule (define-inline (name formals ...) body ...)
;; Work around the lack of an inliner.