aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <herumi@nifty.com>2017-10-01 14:16:41 +0800
committerMITSUNARI Shigeo <herumi@nifty.com>2017-10-01 14:16:41 +0800
commit9d1a2d754d28d3fc2d66a0f554719ca53572815d (patch)
tree36744fd33789b68461c28a8014e897cfba7cc40f
parentf0409370691edfcc8460105b5ba02bab97b0f160 (diff)
downloaddexon-mcl-9d1a2d754d28d3fc2d66a0f554719ca53572815d.tar.gz
dexon-mcl-9d1a2d754d28d3fc2d66a0f554719ca53572815d.tar.zst
dexon-mcl-9d1a2d754d28d3fc2d66a0f554719ca53572815d.zip
[js] add re option to export-functions.py
-rw-r--r--Makefile23
-rw-r--r--docs/demo/exported-mcl.js86
-rw-r--r--ffi/js/export-functions.py8
-rw-r--r--ffi/js/she-re.txt1
-rw-r--r--src/she_c_impl.hpp2
5 files changed, 20 insertions, 100 deletions
diff --git a/Makefile b/Makefile
index 4689aea..376987a 100644
--- a/Makefile
+++ b/Makefile
@@ -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>