diff options
author | MITSUNARI Shigeo <herumi@nifty.com> | 2017-10-01 14:16:41 +0800 |
---|---|---|
committer | MITSUNARI Shigeo <herumi@nifty.com> | 2017-10-01 14:16:41 +0800 |
commit | 9d1a2d754d28d3fc2d66a0f554719ca53572815d (patch) | |
tree | 36744fd33789b68461c28a8014e897cfba7cc40f | |
parent | f0409370691edfcc8460105b5ba02bab97b0f160 (diff) | |
download | dexon-mcl-9d1a2d754d28d3fc2d66a0f554719ca53572815d.tar.gz dexon-mcl-9d1a2d754d28d3fc2d66a0f554719ca53572815d.tar.zst dexon-mcl-9d1a2d754d28d3fc2d66a0f554719ca53572815d.zip |
[js] add re option to export-functions.py
-rw-r--r-- | Makefile | 23 | ||||
-rw-r--r-- | docs/demo/exported-mcl.js | 86 | ||||
-rw-r--r-- | ffi/js/export-functions.py | 8 | ||||
-rw-r--r-- | ffi/js/she-re.txt | 1 | ||||
-rw-r--r-- | src/she_c_impl.hpp | 2 |
5 files changed, 20 insertions, 100 deletions
@@ -205,24 +205,25 @@ test: $(TEST_EXE) @sh -ec 'for i in $(TEST_EXE); do $$i|grep "ctest:name"; done' > result.txt @grep -v "ng=0, exception=0" result.txt; if [ $$? -eq 1 ]; then echo "all unit tests succeed"; else exit 1; fi -EXPORTED_TXT=ffi/js/exported-mcl.txt -EXPORTED_JS=docs/demo/exported-mcl.js -$(EXPORTED_TXT): ./include/mcl/bn.h - python ffi/js/export-functions.py $< > $@ +EXPORTED_SHE_JS=docs/demo/exported-she.js +SHE_TXT=ffi/js/she.txt +EXPORT_OPT=-re ffi/js/she-re.txt +$(SHE_TXT): ./include/mcl/she.h + python ffi/js/export-functions.py $(EXPORT_OPT) $< > $@ -$(EXPORTED_JS): ./include/mcl/bn.h - python ffi/js/export-functions.py -js mcl $< > $@ +$(EXPORTED_SHE_JS): ./include/mcl/she.h + python ffi/js/export-functions.py $(EXPORT_OPT) -js she $< > $@ -EXPORTED_MCL=$(shell cat $(EXPORTED_TXT)) +EXPORTED_SHE=$(shell cat $(SHE_TXT)) -docs/demo/mclbn.js: src/fp.cpp src/bn_c256.cpp $(EXPORTED_TXT) $(EXPORTED_JS) - emcc -o $@ src/fp.cpp src/bn_c256.cpp -I./include -I../cybozulib/include -s WASM=1 -s "MODULARIZE=1" -s "EXPORTED_FUNCTIONS=[$(EXPORTED_MCL)]" -O3 -DNDEBUG -DMCLBN_FP_UNIT_SIZE=4 -DMCL_MAX_BIT_SIZE=256 -s DISABLE_EXCEPTION_CATCHING=0 -s NO_EXIT_RUNTIME=1 +docs/demo/mclshe.js: src/fp.cpp src/she_c256.cpp $(SHE_TXT) $(EXPORTED_SHE_JS) + emcc -o $@ src/fp.cpp src/she_c256.cpp -I./include -I./src -I../cybozulib/include -s WASM=1 -s "MODULARIZE=1" -s "EXPORTED_FUNCTIONS=[$(EXPORTED_SHE)]" -O3 -DNDEBUG -DMCLBN_FP_UNIT_SIZE=4 -DMCL_MAX_BIT_SIZE=256 -s DISABLE_EXCEPTION_CATCHING=0 -s NO_EXIT_RUNTIME=1 demo: - $(MAKE) docs/demo/mclbn.js + $(MAKE) docs/demo/mclshe.js clean: - $(RM) $(MCL_LIB) $(MCL_SLIB) $(BN256_LIB) $(BN256_SLIB) $(BN384_LIB) $(BN384_SLIB) $(OBJ_DIR)/*.o $(OBJ_DIR)/*.d $(EXE_DIR)/*.exe $(GEN_EXE) $(ASM_OBJ) $(LIB_OBJ) $(BN256_OBJ) $(BN384_OBJ) $(LLVM_SRC) $(FUNC_LIST) src/*.ll $(EXPORTED_JS) $(EXPORTED_TXT) docs/demo/mclbn.js docs/demo/mclbn.wasm + $(RM) $(MCL_LIB) $(MCL_SLIB) $(BN256_LIB) $(BN256_SLIB) $(BN384_LIB) $(BN384_SLIB) $(OBJ_DIR)/*.o $(OBJ_DIR)/*.d $(EXE_DIR)/*.exe $(GEN_EXE) $(ASM_OBJ) $(LIB_OBJ) $(BN256_OBJ) $(BN384_OBJ) $(LLVM_SRC) $(FUNC_LIST) src/*.ll $(EXPORTED_SHE_JS) $(SHE_TXT) docs/demo/mclshe.js docs/demo/mclshe.wasm ALL_SRC=$(SRC_SRC) $(TEST_SRC) $(SAMPLE_SRC) DEPEND_FILE=$(addprefix $(OBJ_DIR)/, $(addsuffix .d,$(basename $(ALL_SRC)))) diff --git a/docs/demo/exported-mcl.js b/docs/demo/exported-mcl.js deleted file mode 100644 index 89626c9..0000000 --- a/docs/demo/exported-mcl.js +++ /dev/null @@ -1,86 +0,0 @@ -function define_exported_mcl(mod) { -mclBn_setErrFile = mod.cwrap('mclBn_setErrFile', 'number', ['number', ]) -_mclBn_init = mod.cwrap('mclBn_init', 'number', ['number', 'number', ]) -mclBn_getOpUnitSize = mod.cwrap('mclBn_getOpUnitSize', 'number', []) -mclBn_getCurveOrder = mod.cwrap('mclBn_getCurveOrder', 'number', ['number', 'number', ]) -mclBn_getFieldOrder = mod.cwrap('mclBn_getFieldOrder', 'number', ['number', 'number', ]) -mclBnFr_clear = mod.cwrap('mclBnFr_clear', 'null', ['number', ]) -mclBnFr_setInt = mod.cwrap('mclBnFr_setInt', 'null', ['number', 'number', ]) -_mclBnFr_setStr = mod.cwrap('mclBnFr_setStr', 'number', ['number', 'number', 'number', 'number', ]) -_mclBnFr_deserialize = mod.cwrap('mclBnFr_deserialize', 'number', ['number', 'number', 'number', ]) -_mclBnFr_setLittleEndian = mod.cwrap('mclBnFr_setLittleEndian', 'number', ['number', 'number', 'number', ]) -mclBnFr_isValid = mod.cwrap('mclBnFr_isValid', 'number', ['number', ]) -mclBnFr_isEqual = mod.cwrap('mclBnFr_isEqual', 'number', ['number', 'number', ]) -mclBnFr_isZero = mod.cwrap('mclBnFr_isZero', 'number', ['number', ]) -mclBnFr_isOne = mod.cwrap('mclBnFr_isOne', 'number', ['number', ]) -mclBnFr_setByCSPRNG = mod.cwrap('mclBnFr_setByCSPRNG', 'number', ['number', ]) -_mclBnFr_setHashOf = mod.cwrap('mclBnFr_setHashOf', 'number', ['number', 'number', 'number', ]) -_mclBnFr_getStr = mod.cwrap('mclBnFr_getStr', 'number', ['number', 'number', 'number', 'number', ]) -_mclBnFr_serialize = mod.cwrap('mclBnFr_serialize', 'number', ['number', 'number', 'number', ]) -mclBnFr_neg = mod.cwrap('mclBnFr_neg', 'null', ['number', 'number', ]) -mclBnFr_inv = mod.cwrap('mclBnFr_inv', 'null', ['number', 'number', ]) -mclBnFr_add = mod.cwrap('mclBnFr_add', 'null', ['number', 'number', 'number', ]) -mclBnFr_sub = mod.cwrap('mclBnFr_sub', 'null', ['number', 'number', 'number', ]) -mclBnFr_mul = mod.cwrap('mclBnFr_mul', 'null', ['number', 'number', 'number', ]) -mclBnFr_div = mod.cwrap('mclBnFr_div', 'null', ['number', 'number', 'number', ]) -mclBnG1_clear = mod.cwrap('mclBnG1_clear', 'null', ['number', ]) -_mclBnG1_setStr = mod.cwrap('mclBnG1_setStr', 'number', ['number', 'number', 'number', 'number', ]) -_mclBnG1_deserialize = mod.cwrap('mclBnG1_deserialize', 'number', ['number', 'number', 'number', ]) -mclBnG1_isValid = mod.cwrap('mclBnG1_isValid', 'number', ['number', ]) -mclBnG1_isEqual = mod.cwrap('mclBnG1_isEqual', 'number', ['number', 'number', ]) -mclBnG1_isZero = mod.cwrap('mclBnG1_isZero', 'number', ['number', ]) -_mclBnG1_hashAndMapTo = mod.cwrap('mclBnG1_hashAndMapTo', 'number', ['number', 'number', 'number', ]) -_mclBnG1_getStr = mod.cwrap('mclBnG1_getStr', 'number', ['number', 'number', 'number', 'number', ]) -_mclBnG1_serialize = mod.cwrap('mclBnG1_serialize', 'number', ['number', 'number', 'number', ]) -mclBnG1_neg = mod.cwrap('mclBnG1_neg', 'null', ['number', 'number', ]) -mclBnG1_dbl = mod.cwrap('mclBnG1_dbl', 'null', ['number', 'number', ]) -mclBnG1_add = mod.cwrap('mclBnG1_add', 'null', ['number', 'number', 'number', ]) -mclBnG1_sub = mod.cwrap('mclBnG1_sub', 'null', ['number', 'number', 'number', ]) -mclBnG1_mul = mod.cwrap('mclBnG1_mul', 'null', ['number', 'number', 'number', ]) -mclBnG1_mulCT = mod.cwrap('mclBnG1_mulCT', 'null', ['number', 'number', 'number', ]) -mclBnG2_clear = mod.cwrap('mclBnG2_clear', 'null', ['number', ]) -_mclBnG2_setStr = mod.cwrap('mclBnG2_setStr', 'number', ['number', 'number', 'number', 'number', ]) -_mclBnG2_deserialize = mod.cwrap('mclBnG2_deserialize', 'number', ['number', 'number', 'number', ]) -mclBnG2_isValid = mod.cwrap('mclBnG2_isValid', 'number', ['number', ]) -mclBnG2_isEqual = mod.cwrap('mclBnG2_isEqual', 'number', ['number', 'number', ]) -mclBnG2_isZero = mod.cwrap('mclBnG2_isZero', 'number', ['number', ]) -_mclBnG2_hashAndMapTo = mod.cwrap('mclBnG2_hashAndMapTo', 'number', ['number', 'number', 'number', ]) -_mclBnG2_getStr = mod.cwrap('mclBnG2_getStr', 'number', ['number', 'number', 'number', 'number', ]) -_mclBnG2_serialize = mod.cwrap('mclBnG2_serialize', 'number', ['number', 'number', 'number', ]) -mclBnG2_neg = mod.cwrap('mclBnG2_neg', 'null', ['number', 'number', ]) -mclBnG2_dbl = mod.cwrap('mclBnG2_dbl', 'null', ['number', 'number', ]) -mclBnG2_add = mod.cwrap('mclBnG2_add', 'null', ['number', 'number', 'number', ]) -mclBnG2_sub = mod.cwrap('mclBnG2_sub', 'null', ['number', 'number', 'number', ]) -mclBnG2_mul = mod.cwrap('mclBnG2_mul', 'null', ['number', 'number', 'number', ]) -mclBnG2_mulCT = mod.cwrap('mclBnG2_mulCT', 'null', ['number', 'number', 'number', ]) -mclBnGT_clear = mod.cwrap('mclBnGT_clear', 'null', ['number', ]) -mclBnGT_setInt = mod.cwrap('mclBnGT_setInt', 'null', ['number', 'number', ]) -_mclBnGT_setStr = mod.cwrap('mclBnGT_setStr', 'number', ['number', 'number', 'number', 'number', ]) -_mclBnGT_deserialize = mod.cwrap('mclBnGT_deserialize', 'number', ['number', 'number', 'number', ]) -mclBnGT_isEqual = mod.cwrap('mclBnGT_isEqual', 'number', ['number', 'number', ]) -mclBnGT_isZero = mod.cwrap('mclBnGT_isZero', 'number', ['number', ]) -mclBnGT_isOne = mod.cwrap('mclBnGT_isOne', 'number', ['number', ]) -_mclBnGT_getStr = mod.cwrap('mclBnGT_getStr', 'number', ['number', 'number', 'number', 'number', ]) -_mclBnGT_serialize = mod.cwrap('mclBnGT_serialize', 'number', ['number', 'number', 'number', ]) -mclBnGT_neg = mod.cwrap('mclBnGT_neg', 'null', ['number', 'number', ]) -mclBnGT_inv = mod.cwrap('mclBnGT_inv', 'null', ['number', 'number', ]) -mclBnGT_add = mod.cwrap('mclBnGT_add', 'null', ['number', 'number', 'number', ]) -mclBnGT_sub = mod.cwrap('mclBnGT_sub', 'null', ['number', 'number', 'number', ]) -mclBnGT_mul = mod.cwrap('mclBnGT_mul', 'null', ['number', 'number', 'number', ]) -mclBnGT_div = mod.cwrap('mclBnGT_div', 'null', ['number', 'number', 'number', ]) -mclBnGT_powGeneric = mod.cwrap('mclBnGT_powGeneric', 'null', ['number', 'number', 'number', ]) -mclBnGT_pow = mod.cwrap('mclBnGT_pow', 'null', ['number', 'number', 'number', ]) -mclBn_pairing = mod.cwrap('mclBn_pairing', 'null', ['number', 'number', 'number', ]) -mclBn_finalExp = mod.cwrap('mclBn_finalExp', 'null', ['number', 'number', ]) -mclBn_millerLoop = mod.cwrap('mclBn_millerLoop', 'null', ['number', 'number', 'number', ]) -mclBn_getUint64NumToPrecompute = mod.cwrap('mclBn_getUint64NumToPrecompute', 'number', []) -mclBn_precomputeG2 = mod.cwrap('mclBn_precomputeG2', 'null', ['number', 'number', ]) -mclBn_precomputedMillerLoop = mod.cwrap('mclBn_precomputedMillerLoop', 'null', ['number', 'number', 'number', ]) -mclBn_precomputedMillerLoop2 = mod.cwrap('mclBn_precomputedMillerLoop2', 'null', ['number', 'number', 'number', 'number', 'number', ]) -mclBn_FrLagrangeInterpolation = mod.cwrap('mclBn_FrLagrangeInterpolation', 'number', ['number', 'number', 'number', 'number', ]) -mclBn_G1LagrangeInterpolation = mod.cwrap('mclBn_G1LagrangeInterpolation', 'number', ['number', 'number', 'number', 'number', ]) -mclBn_G2LagrangeInterpolation = mod.cwrap('mclBn_G2LagrangeInterpolation', 'number', ['number', 'number', 'number', 'number', ]) -mclBn_FrEvaluatePolynomial = mod.cwrap('mclBn_FrEvaluatePolynomial', 'number', ['number', 'number', 'number', 'number', ]) -mclBn_G1EvaluatePolynomial = mod.cwrap('mclBn_G1EvaluatePolynomial', 'number', ['number', 'number', 'number', 'number', ]) -mclBn_G2EvaluatePolynomial = mod.cwrap('mclBn_G2EvaluatePolynomial', 'number', ['number', 'number', 'number', 'number', ]) -} diff --git a/ffi/js/export-functions.py b/ffi/js/export-functions.py index ebaea4b..d6ff1f8 100644 --- a/ffi/js/export-functions.py +++ b/ffi/js/export-functions.py @@ -39,10 +39,14 @@ def main(): p = argparse.ArgumentParser('export_functions') p.add_argument('header', type=str, nargs='+', help='headers') p.add_argument('-js', type=str, nargs='?', help='module name') - p.add_argument('-re', type=str, nargs='?', help='regular expression to add underscore to function name') + p.add_argument('-re', type=str, nargs='?', help='regular expression file to add underscore to function name') args = p.parse_args() - export_functions(args.js, args.header, args.re) + reToAddUnderscore = '' + if args.re: + reToAddUnderscore = open(args.re).read().strip() + print 'RE', reToAddUnderscore + export_functions(args.js, args.header, reToAddUnderscore) if __name__ == '__main__': main() diff --git a/ffi/js/she-re.txt b/ffi/js/she-re.txt new file mode 100644 index 0000000..036ffb2 --- /dev/null +++ b/ffi/js/she-re.txt @@ -0,0 +1 @@ +sheInit|erialize|Str diff --git a/src/she_c_impl.hpp b/src/she_c_impl.hpp index 85d2e86..075ef43 100644 --- a/src/she_c_impl.hpp +++ b/src/she_c_impl.hpp @@ -5,7 +5,7 @@ #include <iosfwd> #include <stdint.h> #include <memory.h> -#include "../mcl/src/bn_c_impl.hpp" +#include "../src/bn_c_impl.hpp" #define MCLSHE_DLL_EXPORT #include <mcl/she.h> |