altos/scheme: Support scheme subsetting via feature settings
[fw/altos] / src / scheme / ao_scheme_mem.c
index acc726c8a8fea8b0f834c48a63a084c0ff8b1576..292d0f9d6835db38756e9ec055b1117389caf586 100644 (file)
@@ -465,8 +465,15 @@ static const struct ao_scheme_type * const ao_scheme_types[AO_SCHEME_NUM_TYPE] =
        [AO_SCHEME_LAMBDA] = &ao_scheme_lambda_type,
        [AO_SCHEME_STACK] = &ao_scheme_stack_type,
        [AO_SCHEME_BOOL] = &ao_scheme_bool_type,
+#ifdef AO_SCHEME_FEATURE_BIGINT
        [AO_SCHEME_BIGINT] = &ao_scheme_bigint_type,
+#endif
+#ifdef AO_SCHEME_FEATURE_FLOAT
        [AO_SCHEME_FLOAT] = &ao_scheme_float_type,
+#endif
+#ifdef AO_SCHEME_FEATURE_VECTOR
+       [AO_SCHEME_VECTOR] = &ao_scheme_vector_type,
+#endif
 };
 
 static int
@@ -482,9 +489,9 @@ ao_scheme_poly_mark_ref(ao_poly *p, uint8_t do_note_cons)
 }
 
 #if DBG_MEM_STATS
-int ao_scheme_collects[2];
-int ao_scheme_freed[2];
-int ao_scheme_loops[2];
+uint64_t ao_scheme_collects[2];
+uint64_t ao_scheme_freed[2];
+uint64_t ao_scheme_loops[2];
 #endif
 
 int ao_scheme_last_top;