diff --git a/tests/build/build-opts.txt b/tests/build/build-opts.txt index 04e99e52..93431524 100644 --- a/tests/build/build-opts.txt +++ b/tests/build/build-opts.txt @@ -36,6 +36,7 @@ CPPFLAGS=-DSEXP_USE_MUTABLE_STRINGS=0 CPPFLAGS=-DSEXP_USE_STRING_INDEX_TABLE=1 CPPFLAGS=-DSEXP_USE_STRICT_TOPLEVEL_BINDINGS=1 CPPFLAGS=-DSEXP_USE_FIXED_CHUNK_SIZE_HEAPS=1 +CPPFLAGS=-DSEXP_USE_FULL_SOURCE_INFO=0 CPPFLAGS=-DSEXP_USE_NO_FEATURES=1 CFLAGS=-std=c89 CFLAGS=-m32;LDFLAGS=-m32 diff --git a/vm.c b/vm.c index 907384d3..35e57750 100644 --- a/vm.c +++ b/vm.c @@ -678,7 +678,12 @@ static void generate_lambda (sexp ctx, sexp name, sexp loc, sexp lam, sexp lambd sexp_context_exception(ctx) = bc; } else { sexp_bytecode_name(bc) = sexp_lambda_name(lambda); +#if SEXP_USE_FULL_SOURCE_INFO + sexp_bytecode_source(bc) = sexp_cons(ctx, SEXP_NEG_ONE, sexp_lambda_source(lambda)); + sexp_bytecode_source(bc) = sexp_cons(ctx, sexp_bytecode_source(bc), SEXP_NULL); +#else sexp_bytecode_source(bc) = sexp_lambda_source(lambda); +#endif if (sexp_nullp(fv)) { /* shortcut, no free vars */ tmp = sexp_make_vector(ctx2, SEXP_ZERO, SEXP_VOID);