From 98d03e884ebe6fd75229dcf2d30b701b87ad972a Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Tue, 29 Dec 2009 14:51:13 +0900 Subject: [PATCH] adding sexp_version constant which is just a string holding the version information (currently "0.3"). also adding some features that may be important to test for: dynamic-loading, modules, and boehm-gc. --- Makefile | 1 + eval.c | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index aa4fd2df..9ba61469 100644 --- a/Makefile +++ b/Makefile @@ -96,6 +96,7 @@ include/chibi/install.h: Makefile echo '#define sexp_so_extension "'$(SO)'"' > $@ echo '#define sexp_default_module_dir "'$(MODDIR)'"' >> $@ echo '#define sexp_platform "'$(PLATFORM)'"' >> $@ + echo '#define sexp_version "'`cat VERSION`'"' >> $@ sexp.o: sexp.c gc.c opt/bignum.c $(INCLUDES) Makefile $(CC) -c $(XCPPFLAGS) $(XCFLAGS) $(CLIBFLAGS) -o $@ $< diff --git a/eval.c b/eval.c index c9a02bd5..6d0ed08e 100644 --- a/eval.c +++ b/eval.c @@ -2546,10 +2546,19 @@ sexp sexp_load_standard_env (sexp ctx, sexp e, sexp version) { sexp_gc_preserve3(ctx, op, tmp, sym); sexp_load_standard_parameters(ctx, e); #if SEXP_USE_DL - sexp_env_define(ctx, e, sexp_intern(ctx, "*shared-object-extension*"), - sexp_c_string(ctx, sexp_so_extension, -1)); + sexp_env_define(ctx, e, sym=sexp_intern(ctx, "*shared-object-extension*"), + tmp=sexp_c_string(ctx, sexp_so_extension, -1)); #endif tmp = sexp_list1(ctx, sym=sexp_intern(ctx, sexp_platform)); +#if SEXP_USE_DL + sexp_push(ctx, tmp, sym=sexp_intern(ctx, "dynamic-loading")); +#endif +#if SEXP_USE_MODULES + sexp_push(ctx, tmp, sym=sexp_intern(ctx, "modules")); +#endif +#if SEXP_USE_BOEHM + sexp_push(ctx, tmp, sym=sexp_intern(ctx, "boehm-gc")); +#endif sexp_push(ctx, tmp, sym=sexp_intern(ctx, "chibi")); sexp_env_define(ctx, e, sexp_intern(ctx, "*features*"), tmp); sexp_global(ctx, SEXP_G_OPTIMIZATIONS) = SEXP_NULL;