From 11ff9603ac83d754ce4c8be4ca0011da0b2792c6 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Mon, 7 Nov 2011 23:51:29 +0900 Subject: [PATCH] missed some sexp_init_library defs --- lib/chibi/optimize/profile.c | 5 ++++- lib/chibi/optimize/rest.c | 5 ++++- lib/scheme/time.c | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/chibi/optimize/profile.c b/lib/chibi/optimize/profile.c index 95de0cff..8759fedf 100644 --- a/lib/chibi/optimize/profile.c +++ b/lib/chibi/optimize/profile.c @@ -10,7 +10,10 @@ static sexp sexp_increment_cdr (sexp ctx, sexp self, sexp_sint_t n, sexp pair) { return SEXP_VOID; } -sexp sexp_init_library (sexp ctx, sexp self, sexp_sint_t n, sexp env) { +sexp sexp_init_library (sexp ctx, sexp self, sexp_sint_t n, sexp env, const char* version, sexp_abi_identifier_t abi) { + if (!(sexp_version_compatible(ctx, version, sexp_version) + && sexp_abi_compatible(ctx, abi, SEXP_ABI_IDENTIFIER))) + return sexp_global(ctx, SEXP_G_ABI_ERROR); sexp_define_foreign(ctx, env, "increment-cdr!", 1, sexp_increment_cdr); return SEXP_VOID; } diff --git a/lib/chibi/optimize/rest.c b/lib/chibi/optimize/rest.c index f8352e11..3fb2f8d5 100644 --- a/lib/chibi/optimize/rest.c +++ b/lib/chibi/optimize/rest.c @@ -19,8 +19,11 @@ static sexp copy_opcode (sexp ctx, struct sexp_opcode_struct *op) { return res; } -sexp sexp_init_library (sexp ctx, sexp self, sexp_sint_t n, sexp env) { +sexp sexp_init_library (sexp ctx, sexp self, sexp_sint_t n, sexp env, const char* version, sexp_abi_identifier_t abi) { sexp_gc_var2(name, op); + if (!(sexp_version_compatible(ctx, version, sexp_version) + && sexp_abi_compatible(ctx, abi, SEXP_ABI_IDENTIFIER))) + return sexp_global(ctx, SEXP_G_ABI_ERROR); sexp_gc_preserve2(ctx, name, op); sexp_define_foreign(ctx, env, "num-parameters", 0, sexp_num_parameters); op = copy_opcode(ctx, &local_ref_op); diff --git a/lib/scheme/time.c b/lib/scheme/time.c index 406049c8..73b8a0de 100644 --- a/lib/scheme/time.c +++ b/lib/scheme/time.c @@ -13,7 +13,10 @@ static sexp sexp_current_second (sexp ctx, sexp self, sexp_sint_t n) { return sexp_make_flonum(ctx, res + leap_seconds_since_epoch); } -sexp sexp_init_library (sexp ctx, sexp self, sexp_sint_t n, sexp env) { +sexp sexp_init_library (sexp ctx, sexp self, sexp_sint_t n, sexp env, const char* version, sexp_abi_identifier_t abi) { + if (!(sexp_version_compatible(ctx, version, sexp_version) + && sexp_abi_compatible(ctx, abi, SEXP_ABI_IDENTIFIER))) + return sexp_global(ctx, SEXP_G_ABI_ERROR); sexp_define_foreign(ctx, env, "current-second", 0, sexp_current_second); return SEXP_VOID; }