diff --git a/libguile/eval.c b/libguile/eval.c index 50e30f2e4..e7484376a 100644 --- a/libguile/eval.c +++ b/libguile/eval.c @@ -2102,6 +2102,10 @@ unmemoize_at_call_with_values (const SCM expr, const SCM env) unmemoize_exprs (SCM_CDR (expr), env)); } +#if 0 + +/* See futures.h for a comment why futures are not enabled. + */ SCM_SYNTAX (s_future, "future", scm_i_makbimacro, scm_m_future); SCM_GLOBAL_SYMBOL (scm_sym_future, s_future); @@ -2126,6 +2130,7 @@ unmemoize_future (const SCM expr, const SCM env) return scm_list_2 (scm_sym_future, unmemoize_expression (thunk_expr, env)); } +#endif SCM_SYNTAX (s_gset_x, "set!", scm_i_makbimacro, scm_m_generalized_set_x); SCM_SYMBOL (scm_sym_setter, "setter"); @@ -2393,8 +2398,12 @@ unmemoize_builtin_macro (const SCM expr, const SCM env) case (ISYMNUM (SCM_IM_CALL_WITH_VALUES)): return unmemoize_at_call_with_values (expr, env); +#if 0 + /* See futures.h for a comment why futures are not enabled. + */ case (ISYMNUM (SCM_IM_FUTURE)): return unmemoize_future (expr, env); +#endif case (ISYMNUM (SCM_IM_SLOT_REF)): return unmemoize_atslot_ref (expr, env); @@ -3748,10 +3757,12 @@ dispatch: case (ISYMNUM (SCM_IM_DELAY)): RETURN (scm_makprom (scm_closure (SCM_CDR (x), env))); - +#if 0 + /* See futures.h for a comment why futures are not enabled. + */ case (ISYMNUM (SCM_IM_FUTURE)): RETURN (scm_i_make_future (scm_closure (SCM_CDR (x), env))); - +#endif /* PLACEHOLDER for case (ISYMNUM (SCM_IM_DISPATCH)): The following code (type_dispatch) is intended to be the tail of the case diff --git a/libguile/futures.c b/libguile/futures.c index f7d53a6aa..f465cfcfd 100644 --- a/libguile/futures.c +++ b/libguile/futures.c @@ -18,6 +18,12 @@ +#if 0 + +/* This whole file is not being compiled. See futures.h for the + reason. +*/ + #include "libguile/_scm.h" #include "libguile/eval.h" #include "libguile/ports.h" @@ -360,6 +366,8 @@ scm_init_futures () #include "libguile/futures.x" } +#endif + /* Local Variables: c-file-style: "gnu" diff --git a/libguile/futures.h b/libguile/futures.h index 9b6b6a15b..6b8ee2339 100644 --- a/libguile/futures.h +++ b/libguile/futures.h @@ -22,6 +22,18 @@ +#if 0 + +/* Futures have the following known bugs, which should be fixed before + including them in Guile: + + - The implementation of the thread cache needs to be better so that + it behaves reasonable under heavy use. + + - The dynamic state of a thread needs to be properly initialized + when it is retrieved from the cache. +*/ + #include "libguile/__scm.h" #include "libguile/threads.h" @@ -67,6 +79,8 @@ SCM_API SCM scm_future_ref (SCM future); void scm_init_futures (void); +#endif /* Futures are disabled for now. */ + #endif /* SCM_FUTURES_H */ /* diff --git a/libguile/init.c b/libguile/init.c index 9746a90ce..6ca30f0b1 100644 --- a/libguile/init.c +++ b/libguile/init.c @@ -455,7 +455,11 @@ scm_i_init_guile (SCM_STACKITEM *base) scm_init_dynwind (); scm_init_eq (); scm_init_error (); +#if 0 + /* See futures.h for a comment why futures are not enabled. + */ scm_init_futures (); +#endif scm_init_fluids (); scm_init_feature (); /* Requires fluids */ scm_init_backtrace (); /* Requires fluids */