From b362be2edf097c7c4a3be0a29b3a14675496ed28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20M=C3=A4kel=C3=A4?= Date: Thu, 28 Feb 2019 15:56:19 +0200 Subject: [PATCH 1/5] hopefully works --- filesystem-wasm.wasm | Bin 11842 -> 11850 bytes filesystem.c | 1 + pre-run.js | 18 +++++++++++++----- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/filesystem-wasm.wasm b/filesystem-wasm.wasm index ad766dfaacc1d3c6ba57a5d438046492be27681b..2856783742b7bab151ef1585222a9153d0ee09f0 100644 GIT binary patch delta 41 xcmX>Ub1G(oIU7gcg@y(Or$-Hw1%;G0C$e?PGTz?&M)?>cvjC&i=C!I*IRIe74~hT) delta 36 ucmV+<0Nek{T*6$iHwFiW(13sdLgJI*Dpos[fd] += j; total_length += j; } + debugInt(total_length); return total_length; } diff --git a/pre-run.js b/pre-run.js index e68bcca..d126da1 100644 --- a/pre-run.js +++ b/pre-run.js @@ -26,13 +26,16 @@ var no_return = { "__unlock": true, } +var foo = 0 + function makeStub(name, func) { console.log("Stub: " + name) return function () { console.log("HERE!!!") + foo++ if (trace_calls) console.log("Calling ", name, arguments) // console.log("Checking", HEAP32[1024/4]) - if (recording) startMemoryRecord() + // if (recording) startMemoryRecord() if (name == "___syscall146") { console.log("FD is at", arguments[1]) var fd = HEAP32[arguments[1]>>2] @@ -40,7 +43,9 @@ function makeStub(name, func) { // var stream = FS.getStream(fd) // console.log("stream is at", stream.position) } + console.log("HERE 2!!!", func) var res = func.apply(null, arguments) + console.log("HERE 3!!!") if (recording_calls) { var obj = {result: res, args:Array.from(arguments), name:name, memory:(recording ? memory_record : { heap8: [], heap16: [], heap32 : [] })} if (!no_return[name]) obj.result = obj.result || 0 @@ -59,7 +64,8 @@ var implemented = { "_emscripten_memcpy_big": true, "__syscall5": true, // open "__syscall54": true, // sysctl - "__syscall140": true, // see + "__syscall140": false, // seek + "__syscall145": false, // readv "__syscall6": true, // close "__lock": true, "__unlock": true, @@ -80,7 +86,6 @@ var implemented = { "pthread_cond_broadcast": true, "__cxa_atexit": true, "__syscall4": true, // write - "__syscall145": true, // readv "__syscall146": true, // writev "__syscall197": true, // fstat64 "__syscall221": true, // fadvice64 @@ -101,9 +106,11 @@ function insertStubs() { else { if (typeof global_info.env[i] == "function" && !implemented[i] && !implemented[i.substr(1)] && i.substr(0,6) != "invoke") global_info.env[i] = makeStub(i, global_info.env[i]) } - // Find out which of there are globals } + console.log(global_info.env) + + global_info.env["readBlock"] = function (x) { console.log("Reading block not implemented here", x) } @@ -226,13 +233,14 @@ function outputCall(call) { } function outputRecord() { - console.log("Writing record") + console.log("Writing record", foo) // u32(calls.length) // calls.forEach(outputCall) // rs.end(function () { console.log("???? what") }) fs.closeSync(record_file) recording_calls = false + // console.log(global_info.env["__syscall5"](5, 0)) // fs.writeFileSync(source_dir + "/record.bin", Buffer.from(arr)) fs.writeFileSync(source_dir + "/globals.json", JSON.stringify(saved_globals)) From 1f70b7981d5c80fc5deebbae8df7bde0c8bba237 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20M=C3=A4kel=C3=A4?= Date: Tue, 5 Mar 2019 11:04:29 +0200 Subject: [PATCH 2/5] ???? --- prepare.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prepare.js b/prepare.js index 8b097c3..dba86ea 100644 --- a/prepare.js +++ b/prepare.js @@ -94,7 +94,7 @@ function exec(cmd, args) { } if (stderr) { if (debug) console.error('error ', stderr, args); - reject(stderr); + // reject(stderr); } if (stdout) { if (debug) console.log('output ', stdout, args); From 4876a3679bd295ed81c4d29d5e150d88ab093310 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20M=C3=A4kel=C3=A4?= Date: Tue, 12 Mar 2019 10:34:54 -0700 Subject: [PATCH 3/5] store stack top --- package-lock.json | 433 +++++++++++++++++++++++----------------------- pre-run.js | 3 +- 2 files changed, 218 insertions(+), 218 deletions(-) diff --git a/package-lock.json b/package-lock.json index 64c3906..31cb342 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,9 +9,9 @@ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.0.0.tgz", "integrity": "sha512-Y+FKviD0uyIWWo/xE0XkUl0x1allKFhzEVJ+//2Dgqpy+n+B77MlPNqvyk7Vx50M9XyVzjnRhDqJAEAsyivlbA==", "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "bn.js": "4.11.8", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" } }, "async": { @@ -19,7 +19,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { - "lodash": "^4.14.0" + "lodash": "4.17.4" } }, "balanced-match": { @@ -32,7 +32,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.1" } }, "bindings": { @@ -45,7 +45,7 @@ "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.1" } }, "bl": { @@ -53,7 +53,7 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", "requires": { - "readable-stream": "^2.0.5" + "readable-stream": "2.3.3" } }, "blakejs": { @@ -71,7 +71,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -85,12 +85,12 @@ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.3", + "safe-buffer": "5.1.1" } }, "bs58": { @@ -98,7 +98,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "^3.0.2" + "base-x": "3.0.4" } }, "buffer-loader": { @@ -111,7 +111,7 @@ "resolved": "https://registry.npmjs.org/buffer-pipe/-/buffer-pipe-0.0.0.tgz", "integrity": "sha512-PvKbsvQOH4dcUyUEvQQSs3CIkkuPcOHt3gKnXwf4HsPKFDxSN7bkmICVIWgOmW/jx/fAEGGn4mIayIJPLs7G8g==", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.1" } }, "buffer-xor": { @@ -129,9 +129,9 @@ "resolved": "https://registry.npmjs.org/cids/-/cids-0.5.2.tgz", "integrity": "sha512-ymyC9kV8iKgvn+MU44glekHKMDbfx7hUh1YRNDJ4ZzBQspFamRvmDlbH5jjHp9LwwH1vvJuV/rcy1gWJeSVcIw==", "requires": { - "multibase": "~0.3.4", - "multicodec": "~0.2.3", - "multihashes": "~0.4.9" + "multibase": "0.3.4", + "multicodec": "0.2.5", + "multihashes": "0.4.13" } }, "cipher-base": { @@ -139,8 +139,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.3", + "safe-buffer": "5.1.1" } }, "concat-map": { @@ -153,9 +153,9 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" } }, "core-util-is": { @@ -168,10 +168,10 @@ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "sha.js": "^2.4.0" + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "sha.js": "2.4.9" } }, "create-hmac": { @@ -179,12 +179,12 @@ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.9" } }, "detect-node": { @@ -197,9 +197,9 @@ "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" + "browserify-aes": "1.1.1", + "create-hash": "1.1.3", + "create-hmac": "1.1.6" } }, "elliptic": { @@ -207,13 +207,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" } }, "end-of-stream": { @@ -221,7 +221,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { - "once": "^1.4.0" + "once": "1.4.0" } }, "evp_bytestokey": { @@ -229,8 +229,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" } }, "flatmap": { @@ -243,9 +243,9 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.2" } }, "fs.realpath": { @@ -258,12 +258,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "graceful-fs": { @@ -276,7 +276,7 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", "requires": { - "inherits": "^2.0.1" + "inherits": "2.0.3" } }, "hash.js": { @@ -284,8 +284,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" } }, "hmac-drbg": { @@ -293,9 +293,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" } }, "inflight": { @@ -303,8 +303,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -322,35 +322,35 @@ "resolved": "https://registry.npmjs.org/ipfs-api/-/ipfs-api-17.3.0.tgz", "integrity": "sha512-o4Qqchv+tY4dtZM6crD/3KNCItbxTRQBd5tgWMmPlHLZNJnhgSR66QVh9V4GZ7yzCNxY9Q2TjdcXiKmi/i7xYQ==", "requires": { - "async": "^2.6.0", - "bs58": "^4.0.1", - "cids": "~0.5.2", - "concat-stream": "^1.6.0", - "detect-node": "^2.0.3", + "async": "2.6.0", + "bs58": "4.0.1", + "cids": "0.5.2", + "concat-stream": "1.6.0", + "detect-node": "2.0.3", "flatmap": "0.0.3", - "glob": "^7.1.2", - "ipfs-block": "~0.6.1", - "ipfs-unixfs": "~0.1.14", - "ipld-dag-pb": "~0.11.4", - "is-ipfs": "^0.3.2", - "is-stream": "^1.1.0", - "lru-cache": "^4.1.1", - "multiaddr": "^3.0.2", - "multihashes": "~0.4.13", - "ndjson": "^1.5.0", - "once": "^1.4.0", - "peer-id": "~0.10.4", - "peer-info": "~0.11.4", - "promisify-es6": "^1.0.3", - "pull-defer": "^0.2.2", - "pull-pushable": "^2.1.2", - "pump": "^1.0.3", - "qs": "^6.5.1", - "readable-stream": "^2.3.3", - "stream-http": "^2.7.2", - "stream-to-pull-stream": "^1.7.2", - "streamifier": "^0.1.1", - "tar-stream": "^1.5.5" + "glob": "7.1.2", + "ipfs-block": "0.6.1", + "ipfs-unixfs": "0.1.14", + "ipld-dag-pb": "0.11.4", + "is-ipfs": "0.3.2", + "is-stream": "1.1.0", + "lru-cache": "4.1.1", + "multiaddr": "3.0.2", + "multihashes": "0.4.13", + "ndjson": "1.5.0", + "once": "1.4.0", + "peer-id": "0.10.4", + "peer-info": "0.11.4", + "promisify-es6": "1.0.3", + "pull-defer": "0.2.2", + "pull-pushable": "2.1.2", + "pump": "1.0.3", + "qs": "6.5.1", + "readable-stream": "2.3.3", + "stream-http": "2.8.0", + "stream-to-pull-stream": "1.7.2", + "streamifier": "0.1.1", + "tar-stream": "1.5.5" } }, "ipfs-block": { @@ -358,7 +358,7 @@ "resolved": "https://registry.npmjs.org/ipfs-block/-/ipfs-block-0.6.1.tgz", "integrity": "sha512-28dgGsb2YsYnFs+To4cVBX8e/lTCb8eWDzGhN5csj3a/sHMOYrHeK8+Ez0IV67CI3lqKGuG/ZD01Cmd6JUvKrQ==", "requires": { - "cids": "^0.5.2" + "cids": "0.5.2" } }, "ipfs-unixfs": { @@ -366,7 +366,7 @@ "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-0.1.14.tgz", "integrity": "sha512-s1tEnwKhdd17MmyC/EUMNVMDYzKhCiHDI11TF8tSBeWkEQp+0WUxkYuqvz0R5TSi2lNDJ/oVnEmwWhki2spUiQ==", "requires": { - "protons": "^1.0.0" + "protons": "1.0.1" } }, "ipld-dag-pb": { @@ -374,18 +374,18 @@ "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.11.4.tgz", "integrity": "sha512-A514Bt4z44bxhPQVzmBFMJsV3res92eBaDX0snzVsLLasBPNh4Z7He8N2mwSeAX9bJNywRBlJbHMQPwC45rqXw==", "requires": { - "async": "^2.6.0", - "bs58": "^4.0.1", + "async": "2.6.0", + "bs58": "4.0.1", "buffer-loader": "0.0.1", - "cids": "~0.5.2", - "ipfs-block": "~0.6.1", - "is-ipfs": "~0.3.2", - "multihashes": "~0.4.12", - "multihashing-async": "~0.4.7", - "protons": "^1.0.0", - "pull-stream": "^3.6.1", - "pull-traverse": "^1.0.3", - "stable": "^0.1.6" + "cids": "0.5.2", + "ipfs-block": "0.6.1", + "is-ipfs": "0.3.2", + "multihashes": "0.4.13", + "multihashing-async": "0.4.7", + "protons": "1.0.1", + "pull-stream": "3.6.1", + "pull-traverse": "1.0.3", + "stable": "0.1.6" } }, "is-ipfs": { @@ -393,9 +393,9 @@ "resolved": "https://registry.npmjs.org/is-ipfs/-/is-ipfs-0.3.2.tgz", "integrity": "sha512-82V1j4LMkYy7H4seQQzOWqo7FiW3I64/1/ryo3dhtWKfOvm7ZolLMRQQfGKs4OXWauh5rAkPnamVcRISHwhmpQ==", "requires": { - "bs58": "^4.0.1", - "cids": "~0.5.1", - "multihashes": "~0.4.9" + "bs58": "4.0.1", + "cids": "0.5.2", + "multihashes": "0.4.13" } }, "is-promise": { @@ -428,7 +428,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "4.1.11" } }, "jsrsasign": { @@ -446,7 +446,7 @@ "resolved": "https://registry.npmjs.org/leb128/-/leb128-0.0.4.tgz", "integrity": "sha512-2zejk0fCIgY8RVcc/KzvyfpDio5Oo8HgPZmkrOmdwmbk0KpKpgD+JKwikxKk8cZYkANIhwHK50SNukkCm3XkCQ==", "requires": { - "bn.js": "^4.11.6", + "bn.js": "4.11.8", "buffer-pipe": "0.0.0" } }, @@ -455,24 +455,23 @@ "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.11.0.tgz", "integrity": "sha512-luq/FVGtSukPqUMF+1ZjEY5vkZrW+GE7uosbNU3QS2bixShPYZpQ0yuj2bOBgee9JUoX9HwIx9skm9CYRStJFA==", "requires": { - "asn1.js": "^5.0.0", - "async": "^2.6.0", - "browserify-aes": "^1.1.1", - "bs58": "^4.0.1", - "jsrsasign": "^8.0.4", - "keypair": "^1.0.1", - "libp2p-crypto-secp256k1": "~0.2.2", - "multihashing-async": "~0.4.7", - "pem-jwk": "^1.5.1", - "protons": "^1.0.1", - "rsa-pem-to-jwk": "^1.1.3", - "tweetnacl": "^1.0.0", + "asn1.js": "5.0.0", + "async": "2.6.0", + "browserify-aes": "1.1.1", + "bs58": "4.0.1", + "jsrsasign": "8.0.4", + "keypair": "1.0.1", + "libp2p-crypto-secp256k1": "0.2.2", + "multihashing-async": "0.4.7", + "pem-jwk": "1.5.1", + "protons": "1.0.1", + "rsa-pem-to-jwk": "1.1.3", + "tweetnacl": "1.0.0", "webcrypto-shim": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" }, "dependencies": { "webcrypto-shim": { - "version": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8", - "from": "webcrypto-shim@github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" + "version": "github:dignifiedquire/webcrypto-shim#190bc9ec341375df6025b17ae12ddb2428ea49c8" } } }, @@ -481,11 +480,11 @@ "resolved": "https://registry.npmjs.org/libp2p-crypto-secp256k1/-/libp2p-crypto-secp256k1-0.2.2.tgz", "integrity": "sha1-DdUh8Yq8TjahUuJOmzYwewrpzwU=", "requires": { - "async": "^2.5.0", - "multihashing-async": "~0.4.6", - "nodeify": "^1.0.1", - "safe-buffer": "^5.1.1", - "secp256k1": "^3.3.0" + "async": "2.6.0", + "multihashing-async": "0.4.7", + "nodeify": "1.0.1", + "safe-buffer": "5.1.1", + "secp256k1": "3.4.0" } }, "lodash": { @@ -518,8 +517,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "md5.js": { @@ -527,8 +526,8 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.3" }, "dependencies": { "hash-base": { @@ -536,8 +535,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.3", + "safe-buffer": "5.1.1" } } } @@ -557,7 +556,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.8" } }, "minimist": { @@ -570,12 +569,12 @@ "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-3.0.2.tgz", "integrity": "sha512-TLEujk9VD1SR8HgV00rr1I3MWOk4t0GSDvxzzOO1m1hfxdv4DkFHmKKUHngUCiWHDeClHKSSV23Ig5/Mav3MQw==", "requires": { - "bs58": "^4.0.1", - "ip": "^1.1.5", - "lodash.filter": "^4.6.0", - "lodash.map": "^4.6.0", - "varint": "^5.0.0", - "xtend": "^4.0.1" + "bs58": "4.0.1", + "ip": "1.1.5", + "lodash.filter": "4.6.0", + "lodash.map": "4.6.0", + "varint": "5.0.0", + "xtend": "4.0.1" } }, "multibase": { @@ -598,7 +597,7 @@ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.2.5.tgz", "integrity": "sha512-83MVRQi0j6cgYP0lqC+7HHbYKYpd074qy94OuzX/elmN8CTMF0/aH0Khb0pcRtALjD2ZFG3lgEy3bhwpCreO1g==", "requires": { - "varint": "^5.0.0" + "varint": "5.0.0" } }, "multihashes": { @@ -606,8 +605,8 @@ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.13.tgz", "integrity": "sha512-HwJGEKPCpLlNlgGQA56CYh/Wsqa+c4JAq8+mheIgw7OK5T4QvNJqgp6TH8gZ4q4l1aiWeNat/H/MrFXmTuoFfQ==", "requires": { - "bs58": "^4.0.1", - "varint": "^5.0.0" + "bs58": "4.0.1", + "varint": "5.0.0" } }, "multihashing-async": { @@ -615,12 +614,12 @@ "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-0.4.7.tgz", "integrity": "sha512-jjW5r2M3zS7YZmylUH1FmrckD6pQXMeMQTAvTJyo83hfTZ3B6fyph7AvHaDdr3M6c4zlmvSCM8jpEItjJ9dxuw==", "requires": { - "async": "^2.5.0", - "blakejs": "^1.1.0", - "js-sha3": "^0.6.1", - "multihashes": "~0.4.12", - "murmurhash3js": "^3.0.1", - "nodeify": "^1.0.1" + "async": "2.6.0", + "blakejs": "1.1.0", + "js-sha3": "0.6.1", + "multihashes": "0.4.13", + "murmurhash3js": "3.0.1", + "nodeify": "1.0.1" } }, "murmurhash3js": { @@ -638,10 +637,10 @@ "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-1.5.0.tgz", "integrity": "sha1-rmA7NrE0vOw0e0UkIrC/mNWDLsg=", "requires": { - "json-stringify-safe": "^5.0.1", - "minimist": "^1.2.0", - "split2": "^2.1.0", - "through2": "^2.0.3" + "json-stringify-safe": "5.0.1", + "minimist": "1.2.0", + "split2": "2.2.0", + "through2": "2.0.3" } }, "nodeify": { @@ -649,8 +648,8 @@ "resolved": "https://registry.npmjs.org/nodeify/-/nodeify-1.0.1.tgz", "integrity": "sha1-ZKtpp7268DzhB7TwM1yHwLnpGx0=", "requires": { - "is-promise": "~1.0.0", - "promise": "~1.3.0" + "is-promise": "1.0.1", + "promise": "1.3.0" } }, "object-assign": { @@ -663,7 +662,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "optimist": { @@ -671,7 +670,7 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", "requires": { - "wordwrap": "~0.0.2" + "wordwrap": "0.0.3" } }, "path-is-absolute": { @@ -684,10 +683,10 @@ "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.10.4.tgz", "integrity": "sha512-thim0ZOsFbMHeZVl+0+UHPy1OZCOVDr277MQYR2swsnWex0j/7beyXTafhqislkn1dWC9fo9uKWqxwe+GSvBqg==", "requires": { - "async": "^2.6.0", - "libp2p-crypto": "~0.11.0", - "lodash": "^4.17.4", - "multihashes": "~0.4.12" + "async": "2.6.0", + "libp2p-crypto": "0.11.0", + "lodash": "4.17.4", + "multihashes": "0.4.13" } }, "peer-info": { @@ -695,9 +694,9 @@ "resolved": "https://registry.npmjs.org/peer-info/-/peer-info-0.11.4.tgz", "integrity": "sha512-p+NpRgZpnlz0BGz6ZLFF8vVlqOBDxGwN7AA+QCc4nCICxVpbf4PlmtzwePVtkDqlNwUXYCDKK8pG0FGC5E8B2g==", "requires": { - "lodash.uniqby": "^4.7.0", - "multiaddr": "^3.0.1", - "peer-id": "~0.10.3" + "lodash.uniqby": "4.7.0", + "multiaddr": "3.0.2", + "peer-id": "0.10.4" } }, "pem-jwk": { @@ -713,9 +712,9 @@ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-1.0.3.tgz", "integrity": "sha1-KBuj7B8kSP52X5Kk7s+IP+E2S1Q=", "requires": { - "bn.js": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "bn.js": "1.3.0", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" } }, "bn.js": { @@ -736,7 +735,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-1.3.0.tgz", "integrity": "sha1-5cyaTIJ45GZP/twBx9qEhCsEAXU=", "requires": { - "is-promise": "~1" + "is-promise": "1.0.1" } }, "promisify-es6": { @@ -754,10 +753,10 @@ "resolved": "https://registry.npmjs.org/protons/-/protons-1.0.1.tgz", "integrity": "sha512-+0ZKnfVs+4c43tbAQ5j0Mck8wPcLnlxUYzKQoB4iDW4ocdXGnN4P+0dDbgX1FTpoY9+7P2Tn2scJyHHqj+S/lQ==", "requires": { - "protocol-buffers-schema": "^3.3.1", - "safe-buffer": "^5.1.1", - "signed-varint": "^2.0.1", - "varint": "^5.0.0" + "protocol-buffers-schema": "3.3.2", + "safe-buffer": "5.1.1", + "signed-varint": "2.0.1", + "varint": "5.0.0" } }, "pseudomap": { @@ -790,8 +789,8 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "end-of-stream": "1.4.1", + "once": "1.4.0" } }, "qs": { @@ -804,13 +803,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" } }, "ripemd160": { @@ -818,8 +817,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", "requires": { - "hash-base": "^2.0.0", - "inherits": "^2.0.1" + "hash-base": "2.0.2", + "inherits": "2.0.3" } }, "rsa-pem-to-jwk": { @@ -827,7 +826,7 @@ "resolved": "https://registry.npmjs.org/rsa-pem-to-jwk/-/rsa-pem-to-jwk-1.1.3.tgz", "integrity": "sha1-JF52vbfnI0z+58oDLTG1TDj6uY4=", "requires": { - "object-assign": "^2.0.0", + "object-assign": "2.1.1", "rsa-unpack": "0.0.6" } }, @@ -836,7 +835,7 @@ "resolved": "https://registry.npmjs.org/rsa-unpack/-/rsa-unpack-0.0.6.tgz", "integrity": "sha1-9Q69VqYoN45jHylxYQJs6atO3bo=", "requires": { - "optimist": "~0.3.5" + "optimist": "0.3.7" } }, "safe-buffer": { @@ -849,14 +848,14 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.4.0.tgz", "integrity": "sha512-eC120ESQ6MB3gMkxj0PVcSjv/9VtSUmm9uPGNc58yTs93iMCUQZ1xeGPidQMY1z1O4psbCtOxRu3vNqpbuck6Q==", "requires": { - "bindings": "^1.2.1", - "bip66": "^1.1.3", - "bn.js": "^4.11.3", - "create-hash": "^1.1.2", - "drbg.js": "^1.0.1", - "elliptic": "^6.2.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "bindings": "1.3.0", + "bip66": "1.1.5", + "bn.js": "4.11.8", + "create-hash": "1.1.3", + "drbg.js": "1.0.1", + "elliptic": "6.4.0", + "nan": "2.8.0", + "safe-buffer": "5.1.1" } }, "sha.js": { @@ -864,8 +863,8 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.3", + "safe-buffer": "5.1.1" } }, "signed-varint": { @@ -873,7 +872,7 @@ "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz", "integrity": "sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk=", "requires": { - "varint": "~5.0.0" + "varint": "5.0.0" } }, "split2": { @@ -881,7 +880,7 @@ "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", "requires": { - "through2": "^2.0.2" + "through2": "2.0.3" } }, "stable": { @@ -894,11 +893,11 @@ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==", "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.3", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" } }, "stream-to-pull-stream": { @@ -906,8 +905,8 @@ "resolved": "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.2.tgz", "integrity": "sha1-dXYJrhzr0zx0MtSvvjH/eGULnd4=", "requires": { - "looper": "^3.0.0", - "pull-stream": "^3.2.3" + "looper": "3.0.0", + "pull-stream": "3.6.1" } }, "streamifier": { @@ -920,7 +919,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } }, "tar-stream": { @@ -928,10 +927,10 @@ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", "requires": { - "bl": "^1.0.0", - "end-of-stream": "^1.0.0", - "readable-stream": "^2.0.0", - "xtend": "^4.0.0" + "bl": "1.2.1", + "end-of-stream": "1.4.1", + "readable-stream": "2.3.3", + "xtend": "4.0.1" } }, "through2": { @@ -939,8 +938,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" + "readable-stream": "2.3.3", + "xtend": "4.0.1" } }, "to-arraybuffer": { @@ -978,10 +977,10 @@ "resolved": "https://registry.npmjs.org/wasm-json-toolkit/-/wasm-json-toolkit-0.2.3.tgz", "integrity": "sha512-W0pESOST9hHFEmHq9kzMxAEhcPYuASdYCDw4FavKSyQKh3uOmH2slRXR/MhTKJY+gp1AauUDNd9DeE0cS4bV4A==", "requires": { - "bn.js": "^4.11.8", + "bn.js": "4.11.8", "buffer-pipe": "0.0.2", "leb128": "0.0.4", - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.1" }, "dependencies": { "buffer-pipe": { @@ -989,7 +988,7 @@ "resolved": "https://registry.npmjs.org/buffer-pipe/-/buffer-pipe-0.0.2.tgz", "integrity": "sha512-YlqzbWVqMv+xEeRyg0OXAJym3zAFTAIuku9l7okwxOXNDxbmSlL5o3QaF5k6IQ2iHO9o1OCo6tT4UkrQkI5VbQ==", "requires": { - "safe-buffer": "^5.1.1" + "safe-buffer": "5.1.1" } } } @@ -999,7 +998,7 @@ "resolved": "https://registry.npmjs.org/wasm-metering/-/wasm-metering-0.2.1.tgz", "integrity": "sha512-YDlTPY4jspknNyDaVBQhLTuTYBh+39qI0P9F0grmR88NR4oh7qfgpTwZ2ly4oX2hHCj9KlIwhy2Yyez+3/wY2Q==", "requires": { - "leb128": "^0.0.4", + "leb128": "0.0.4", "wasm-json-toolkit": "0.2.3" } }, diff --git a/pre-run.js b/pre-run.js index d126da1..8a85ed6 100644 --- a/pre-run.js +++ b/pre-run.js @@ -34,7 +34,7 @@ function makeStub(name, func) { console.log("HERE!!!") foo++ if (trace_calls) console.log("Calling ", name, arguments) - // console.log("Checking", HEAP32[1024/4]) + console.log("Checking", HEAP32[1024/4]) // if (recording) startMemoryRecord() if (name == "___syscall146") { console.log("FD is at", arguments[1]) @@ -146,6 +146,7 @@ function saveGlobals() { // Why is this needed? for some reason, it is not recorded // if (save_stack_top) HEAP32[1024 >> 2] = STACKTOP // HEAP32[DYNAMICTOP_PTR>>2] = DYNAMIC_BASE; + memory_record.heap32.push([256, HEAP32[1024 >> 2]]) saved_globals = { mem: [].concat.apply([], memory_record.heap32.filter(x => typeof x == "object")), env: env_globals, From 2bbb20ede7fa6a9f909dc5c7f5858f24a1727baf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20M=C3=A4kel=C3=A4?= Date: Mon, 18 Mar 2019 00:53:24 -0700 Subject: [PATCH 4/5] memory offset param no longer needed after fpu has been added --- prepare.js | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/prepare.js b/prepare.js index dba86ea..9364ba3 100644 --- a/prepare.js +++ b/prepare.js @@ -28,31 +28,6 @@ const fixPaths = (targetDir, relativePathsArray) => { }); }; -/* -const cleanUpAfterInstrumenting = () => { - let absPathToDeps = argv.file - .map(fileName => { - return path.resolve(__dirname, fileName); - }) - .concat( - argv._.map(fileName => { - let newPath = path.resolve(__dirname, fileName); - return newPath; - }) - ) - .concat( - argv._.map(fileName => { - let newPath = path.resolve(__dirname, fileName); - return newPath.replace(/.js$/, '.wasm'); - }) - ); - - absPathToDeps.forEach(filePath => { - fs.unlinkSync(filePath); - }); -}; -*/ - const localizeArgv = argv => { argv._.push(argv._[0].replace(/.js$/, '.wasm')); fixPaths(tmp_dir, argv._); @@ -229,8 +204,6 @@ async function processTask(fname) { 'shiftmem.wasm' ]); result_wasm = 'intfloat.wasm'; - args.push('-memory-offset'); - args.push(float_memory); } let run_wasm = result_wasm From 741f8106bb40b61bb542db3f3fa2356e17bed7a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20M=C3=A4kel=C3=A4?= Date: Mon, 25 Mar 2019 00:23:57 -0700 Subject: [PATCH 5/5] metering fix --- package.json | 2 +- prepare.js | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 658f0da..3122667 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,6 @@ "fs-extra": "^6.0.1", "ipfs-api": "^17.3.0", "minimist": "^1.2.0", - "wasm-metering": "^0.2.1" + "wasm-metering-tb": "0.2.1" } } diff --git a/prepare.js b/prepare.js index 9364ba3..eddee56 100644 --- a/prepare.js +++ b/prepare.js @@ -209,15 +209,18 @@ async function processTask(fname) { let run_wasm = result_wasm if (argv.metering) { - var dta = fs.readFileSync(tmp_dir + '/' + result_wasm); - const metering = require('wasm-metering'); - const meteredWasm = metering.meterWASM(dta, { - moduleStr: 'env', - fieldStr: 'usegas', - meterType: 'i32' - }); + if (!argv["rust-utils"]) { + var dta = fs.readFileSync(tmp_dir + '/' + result_wasm); + const metering = require('wasm-metering-tb'); + const meteredWasm = metering.meterWASM(dta, { + moduleStr: 'env', + fieldStr: 'usegas', + meterType: 'i32' + }); + fs.writeFileSync(tmp_dir + '/metered.wasm', meteredWasm); + } + else await exec('wasm-gas', [run_wasm, "metered.wasm"]) run_wasm = 'metered.wasm'; - var dta = fs.writeFileSync(tmp_dir + '/metered.wasm', meteredWasm); } if (argv['limit-stack']) {