Merge pull request #586 from amirouche/wasm-improvements

WASM improvements
This commit is contained in:
Alex Shinn 2019-10-29 21:58:32 +08:00 committed by GitHub
commit 6f57d6ac71
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -65,7 +65,7 @@ COMPILED_LIBS = $(CHIBI_COMPILED_LIBS) $(CHIBI_IO_COMPILED_LIBS) \
lib/scheme/time$(SO) lib/scheme/time$(SO)
ifndef EXCLUDE_POSIX_LIBS ifndef EXCLUDE_POSIX_LIBS
COMPILED_LIBS += lib/srfi/18/threads$(SO) COMPILED_LIBS += lib/srfi/18/threads$(SO)
endif endif
BASE_INCLUDES = include/chibi/sexp.h include/chibi/features.h include/chibi/install.h include/chibi/bignum.h BASE_INCLUDES = include/chibi/sexp.h include/chibi/features.h include/chibi/install.h include/chibi/bignum.h
@ -122,7 +122,7 @@ all: chibi-scheme$(EXE) all-libs chibi-scheme.pc $(META_FILES)
js: js/chibi.js js: js/chibi.js
js/chibi.js: chibi-scheme-emscripten chibi-scheme-static.bc js/pre.js js/post.js js/exported_functions.json js/chibi.js: chibi-scheme-emscripten chibi-scheme-static.bc js/pre.js js/post.js js/exported_functions.json
emcc -O3 chibi-scheme-static.bc -o $@ -s MODULARIZE=1 -s EXPORT_NAME=\"Chibi\" -s EXPORTED_FUNCTIONS=@js/exported_functions.json `find lib -type f \( -name "*.scm" -or -name "*.sld" \) -printf " --preload-file %p"` -s 'EXTRA_EXPORTED_RUNTIME_METHODS=["ccall", "cwrap"]' --pre-js js/pre.js --post-js js/post.js emcc -O0 chibi-scheme-static.bc -o $@ -s ALLOW_MEMORY_GROWTH=1 -s MODULARIZE=1 -s EXPORT_NAME=\"Chibi\" -s EXPORTED_FUNCTIONS=@js/exported_functions.json `find lib -type f \( -name "*.scm" -or -name "*.sld" \) -printf " --preload-file %p"` -s 'EXTRA_EXPORTED_RUNTIME_METHODS=["ccall", "cwrap"]' --pre-js js/pre.js --post-js js/post.js
chibi-scheme-static.bc: chibi-scheme-static.bc:
emmake $(MAKE) PLATFORM=emscripten CHIBI_DEPENDENCIES= CHIBI=./chibi-scheme-emscripten PREFIX= CFLAGS=-O2 SEXP_USE_DL=0 EXE=.bc SO=.bc CPPFLAGS="-DSEXP_USE_STRICT_TOPLEVEL_BINDINGS=1 -DSEXP_USE_ALIGNED_BYTECODE=1 -DSEXP_USE_STATIC_LIBS=1 -DSEXP_USE_STATIC_LIBS_NO_INCLUDE=0" clibs.c chibi-scheme-static.bc emmake $(MAKE) PLATFORM=emscripten CHIBI_DEPENDENCIES= CHIBI=./chibi-scheme-emscripten PREFIX= CFLAGS=-O2 SEXP_USE_DL=0 EXE=.bc SO=.bc CPPFLAGS="-DSEXP_USE_STRICT_TOPLEVEL_BINDINGS=1 -DSEXP_USE_ALIGNED_BYTECODE=1 -DSEXP_USE_STATIC_LIBS=1 -DSEXP_USE_STATIC_LIBS_NO_INCLUDE=0" clibs.c chibi-scheme-static.bc
@ -154,7 +154,7 @@ sexp-ulimit.o: sexp.c $(BASE_INCLUDES)
main.o: main.c $(INCLUDES) main.o: main.c $(INCLUDES)
$(CC) -c $(XCPPFLAGS) $(XCFLAGS) -o $@ $< $(CC) -c $(XCPPFLAGS) $(XCFLAGS) -o $@ $<
SEXP_OBJS = gc.o sexp.o bignum.o gc_heap.o SEXP_OBJS = gc.o sexp.o bignum.o gc_heap.o
SEXP_ULIMIT_OBJS = gc-ulimit.o sexp-ulimit.o bignum.o gc_heap.o SEXP_ULIMIT_OBJS = gc-ulimit.o sexp-ulimit.o bignum.o gc_heap.o
EVAL_OBJS = opcodes.o vm.o eval.o simplify.o EVAL_OBJS = opcodes.o vm.o eval.o simplify.o
@ -251,7 +251,7 @@ lib/scheme/char/case-offsets.scm: data/UnicodeData.txt chibi-scheme$(EXE) all-li
checkdefs: checkdefs:
@for d in $(D); do \ @for d in $(D); do \
if ! $(GREP) -q " SEXP_USE_$${d%%=*} " include/chibi/features.h; then \ if ! $(GREP) -q " SEXP_USE_$${d%%=*} " include/chibi/features.h; then \
echo "WARNING: unknown definition $$d"; \ echo "WARNING: unknown definition $$d"; \
fi; \ fi; \
done done
@ -259,9 +259,9 @@ test-basic: chibi-scheme$(EXE)
@for f in tests/basic/*.scm; do \ @for f in tests/basic/*.scm; do \
$(CHIBI) -xchibi $$f >$${f%.scm}.out 2>$${f%.scm}.err; \ $(CHIBI) -xchibi $$f >$${f%.scm}.out 2>$${f%.scm}.err; \
if $(DIFF) -q $(DIFFOPTS) $${f%.scm}.out $${f%.scm}.res; then \ if $(DIFF) -q $(DIFFOPTS) $${f%.scm}.out $${f%.scm}.res; then \
echo "[PASS] $${f%.scm}"; \ echo "[PASS] $${f%.scm}"; \
else \ else \
echo "[FAIL] $${f%.scm}"; \ echo "[FAIL] $${f%.scm}"; \
fi; \ fi; \
done done