mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-22 07:09:18 +02:00
using include-shared for shared object files for portability
This commit is contained in:
parent
0746c445ed
commit
574b1daa32
4 changed files with 13 additions and 8 deletions
|
@ -52,12 +52,15 @@
|
|||
((import)
|
||||
(let ((mod2 (load-module (cadr x))))
|
||||
(%env-copy! env (module-env mod2) (module-exports mod2))))
|
||||
((include)
|
||||
((include include-shared)
|
||||
(for-each
|
||||
(lambda (f)
|
||||
(let ((f (if (eq? (car x) 'include)
|
||||
f
|
||||
(string-append f *shared-object-extension*))))
|
||||
(cond
|
||||
((find-module-file name f) => (lambda (x) (load x env)))
|
||||
(else (error "couldn't find include" f))))
|
||||
(else (error "couldn't find include" f)))))
|
||||
(cdr x)))
|
||||
((body)
|
||||
(for-each (lambda (expr) (eval expr env)) (cdr x)))))
|
||||
|
@ -98,6 +101,7 @@
|
|||
(define-config-primitive import)
|
||||
(define-config-primitive export)
|
||||
(define-config-primitive include)
|
||||
(define-config-primitive include-shared)
|
||||
(define-config-primitive body)
|
||||
|
||||
(let ((exports
|
||||
|
|
2
eval.c
2
eval.c
|
@ -2356,6 +2356,8 @@ static sexp sexp_make_standard_env (sexp ctx, sexp version) {
|
|||
sexp_env_define(ctx, e, sexp_global(ctx, SEXP_G_INTERACTION_ENV_SYMBOL), e);
|
||||
sexp_env_define(ctx, e, sexp_intern(ctx, "*module-directory*"),
|
||||
sexp_c_string(ctx, sexp_module_dir, -1));
|
||||
sexp_env_define(ctx, e, sexp_intern(ctx, "*shared-object-extension*"),
|
||||
sexp_c_string(ctx, sexp_so_extension, -1));
|
||||
/* add default exception handler */
|
||||
err_cell = sexp_env_cell(e, sexp_global(ctx, SEXP_G_CUR_ERR_SYMBOL));
|
||||
perr_cell = sexp_env_cell(e, sexp_intern(ctx, "print-exception"));
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
hash string-hash string-ci-hash hash-by-identity)
|
||||
(import (scheme))
|
||||
(import (srfi 9))
|
||||
(include "srfi/69/type.scm"
|
||||
"srfi/69/hash.so"
|
||||
"srfi/69/interface.scm"))
|
||||
(include-shared "srfi/69/hash")
|
||||
(include "srfi/69/type.scm" "srfi/69/interface.scm"))
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
(define-module (srfi 98)
|
||||
(export get-environment-variable get-environment-variables)
|
||||
(include "srfi/98/env.so"))
|
||||
(include-shared "srfi/98/env"))
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue