From 695bf2c80fcb4544141263eeba55052480be32b6 Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Thu, 29 Mar 2018 15:24:33 -0400 Subject: [PATCH] Use WASM instead of asm.js --- Makefile | 7 +++---- numpy/Makefile | 44 ++++++++++++++++++++++++-------------------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/Makefile b/Makefile index 28095dfec..fdbf81aeb 100644 --- a/Makefile +++ b/Makefile @@ -8,15 +8,15 @@ CC=emcc CXX=em++ OPTFLAGS=-O3 CXXFLAGS=-std=c++14 $(OPTFLAGS) -g -I$(CPYTHONINC) -Wno-warn-absolute-paths -LDFLAGS=$(OPTFLAGS) \ +LDFLAGS=\ $(CPYTHONROOT)/installs/python-$(PYVERSION)/lib/libpython$(PYMINOR).a \ -s "BINARYEN_METHOD='native-wasm'" \ -s TOTAL_MEMORY=268435456 \ -s MAIN_MODULE=1 \ - -s ASSERTIONS=2 \ -s EMULATED_FUNCTION_POINTERS=1 \ -s EMULATE_FUNCTION_POINTER_CASTS=1 \ -s EXPORTED_FUNCTIONS='["_main"]' \ + -s WASM=1 \ --memory-init-file 0 NUMPY_ROOT=numpy/build/numpy @@ -25,7 +25,6 @@ NUMPY_LIBS=\ $(NUMPY_ROOT)/core/umath.so \ $(NUMPY_ROOT)/linalg/lapack_lite.so \ $(NUMPY_ROOT)/linalg/_umath_linalg.so \ - $(NUMPY_ROOT)/fft/fftpack_lite.so \ $(NUMPY_ROOT)/random/mtrand.so SITEPACKAGES=root/lib/python$(PYMINOR)/site-packages @@ -85,5 +84,5 @@ $(CPYTHONLIB): make -C $(CPYTHONROOT) -$(NUMPY_LIBS): +$(NUMPY_LIBS): $(CPYTHONLIB) make -C numpy diff --git a/numpy/Makefile b/numpy/Makefile index e00af3b5c..9bee8deb6 100644 --- a/numpy/Makefile +++ b/numpy/Makefile @@ -36,11 +36,12 @@ RANDOM_SRC=$(HOSTDIR)/numpy/random CC=emcc AR=emar CFLAGS=-O3 -Werror -std=c99 -DNPY_INTERNAL_BUILD=1 -DHAVE_NPY_CONFIG_H=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -I$(ROOT)/config -I$(INCLUDE) -I$(GENINCLUDE)/numpy -I$(INCLUDE)/private -I$(SRC) -I$(SRC)/.. -I$(SRC)/private -I$(SRC)/npymath -I$(SRC)/multiarray -I$(SRC)/umath -I$(SRC)/npysort -I$(PYTHONINCLUDE) -I$(GENSRC)/private -I$(GENSRC)/npymath -I$(GENSRC)/umath -LDFLAGS=-Werror \ +LDFLAGS=\ + -Werror \ -s EMULATED_FUNCTION_POINTERS=1 \ -s EMULATE_FUNCTION_POINTER_CASTS=1 \ - -s ASSERTIONS=2 \ -s SIDE_MODULE=1 \ + -s WASM=1 \ --memory-init-file 0 @@ -50,7 +51,6 @@ all: \ $(BUILDCORE)/umath.so \ $(BUILDLINALG)/lapack_lite.so \ $(BUILDLINALG)/_umath_linalg.so \ - $(BUILDFFT)/fftpack_lite.so \ $(BUILDRANDOM)/mtrand.so @@ -82,7 +82,7 @@ $(BUILD)/numpy/__init__.py: $(HOSTBUILD)/lib.$(PLATFORMSLUG)/numpy/__init__.py [ -d $(BUILD) ] || mkdir $(BUILD) cp -r $(HOSTBUILD)/lib.$(PLATFORMSLUG)/numpy $(BUILD) && \ cd $(BUILD); find . -name "*.so" -type f -delete - touch $(BUILD)/numpy/__init__.py + $(ROOT)/.patched: $(HOSTDIR)/setup.py cat patches/*.patch | (cd $(HOSTDIR) ; patch -p1) @@ -171,18 +171,22 @@ UMATH_SRC=\ $(SRC)/umath/umathmodule.bc \ -LAPACK_LITE_SRC=\ - $(LINALG_SRC)/lapack_litemodule.bc \ +LAPACK_BLAS_SRC=\ $(LINALG_SRC)/lapack_lite/python_xerbla.bc \ $(LINALG_SRC)/lapack_lite/f2c_z_lapack.bc \ $(LINALG_SRC)/lapack_lite/f2c_d_lapack.bc \ $(LINALG_SRC)/lapack_lite/f2c_s_lapack.bc \ + $(LINALG_SRC)/lapack_lite/f2c_c_lapack.bc \ $(LINALG_SRC)/lapack_lite/f2c_lapack.bc \ $(LINALG_SRC)/lapack_lite/f2c_blas.bc \ $(LINALG_SRC)/lapack_lite/f2c_config.bc \ $(LINALG_SRC)/lapack_lite/f2c.bc +LAPACK_LITE_SRC=\ + $(LINALG_SRC)/lapack_litemodule.bc + + UMATH_LINALG_SRC=\ $(LINALG_GENSRC)/umath_linalg.bc @@ -200,33 +204,33 @@ MTRAND_SRC=\ $(BUILDCORE)/multiarray.so: $(MULTIARRAY_SRC) $(NPYMATH_SRC) $(NPYSORT_SRC) - $(CC) $(LDFLAGS) $^ -o $(BUILDCORE)/multiarray.js - mv $(BUILDCORE)/multiarray.js $(BUILDCORE)/multiarray.so + $(CC) $(LDFLAGS) $^ -o $(BUILDCORE)/multiarray.wasm + mv $(BUILDCORE)/multiarray.wasm $(BUILDCORE)/multiarray.so $(BUILDCORE)/umath.so: $(UMATH_SRC) $(NPYMATH_SRC) - $(CC) $(LDFLAGS) $^ -o $(BUILDCORE)/umath.js - mv $(BUILDCORE)/umath.js $(BUILDCORE)/umath.so + $(CC) $(LDFLAGS) $^ -o $(BUILDCORE)/umath.wasm + mv $(BUILDCORE)/umath.wasm $(BUILDCORE)/umath.so -$(BUILDLINALG)/lapack_lite.so: $(LAPACK_LITE_SRC) - $(CC) $(LDFLAGS) $^ -o $(BUILDLINALG)/lapack_lite.js - mv $(BUILDLINALG)/lapack_lite.js $(BUILDLINALG)/lapack_lite.so +$(BUILDLINALG)/lapack_lite.so: $(LAPACK_LITE_SRC) $(LAPACK_BLAS_SRC) $(NPYMATH_SRC) + $(CC) $(LDFLAGS) $^ -o $(BUILDLINALG)/lapack_lite.wasm + mv $(BUILDLINALG)/lapack_lite.wasm $(BUILDLINALG)/lapack_lite.so -$(BUILDLINALG)/_umath_linalg.so: $(UMATH_LINALG_SRC) - $(CC) $(LDFLAGS) $^ -o $(BUILDLINALG)/_umath_linalg.js - mv $(BUILDLINALG)/_umath_linalg.js $(BUILDLINALG)/_umath_linalg.so +$(BUILDLINALG)/_umath_linalg.so: $(UMATH_LINALG_SRC) $(LAPACK_BLAS_SRC) $(NPYMATH_SRC) + $(CC) $(LDFLAGS) $^ -o $(BUILDLINALG)/_umath_linalg.wasm + mv $(BUILDLINALG)/_umath_linalg.wasm $(BUILDLINALG)/_umath_linalg.so $(BUILDFFT)/fftpack_lite.so: $(FFTPACK_LITE_SRC) - $(CC) $(LDFLAGS) $^ -o $(BUILDFFT)/fftpack_lite.js - mv $(BUILDFFT)/fftpack_lite.js $(BUILDFFT)/fftpack_lite.so + $(CC) $(LDFLAGS) $^ -o $(BUILDFFT)/fftpack_lite.wasm + mv $(BUILDFFT)/fftpack_lite.wasm $(BUILDFFT)/fftpack_lite.so $(BUILDRANDOM)/mtrand.so: $(MTRAND_SRC) - $(CC) $(LDFLAGS) $^ -o $(BUILDRANDOM)/mtrand.js - mv $(BUILDRANDOM)/mtrand.js $(BUILDRANDOM)/mtrand.so + $(CC) $(LDFLAGS) $^ -o $(BUILDRANDOM)/mtrand.wasm + mv $(BUILDRANDOM)/mtrand.wasm $(BUILDRANDOM)/mtrand.so %.bc: %.c $(BUILD)/numpy/__init__.py