From 1928f10bfef5b4aa5f22ee5d345a36cb708a7bfe Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Wed, 27 Jun 2018 14:25:26 +0200 Subject: [PATCH 1/5] Add log for interactiveness --- update | 1 + 1 file changed, 1 insertion(+) diff --git a/update b/update index cf43f006c..ed557a3b9 100755 --- a/update +++ b/update @@ -39,6 +39,7 @@ dirs.forEach(function (dir) { .filter(function (version) { return version }) .map(function (pars) { return { path: pars[0], version: pars[1], prerelease: pars[3], build: pars[5] } }) .map(function (pars) { + console.log('Processing ' + pars.path) const fileContent = readFile(pars.path) pars.longVersion = buildVersion(pars) pars.keccak256 = '0x' + ethUtil.sha3(fileContent).toString('hex') From 0a021cff701224e97bdec0a5bb1e58ab30674756 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Wed, 27 Jun 2018 13:25:41 +0200 Subject: [PATCH 2/5] Insert reportedVersion in list.json --- package.json | 1 + update | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/package.json b/package.json index c9d543a55..51de80009 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ }, "devDependencies": { "ethereumjs-util": "^5.0.1", + "solc": "^0.4.24", "standard": "^8.4.0", "swarmhash": "^0.1.0" }, diff --git a/update b/update index ed557a3b9..17c524f20 100755 --- a/update +++ b/update @@ -7,6 +7,7 @@ const path = require('path') const semver = require('semver') const ethUtil = require('ethereumjs-util') const swarmhash = require('swarmhash') +const solc = require('solc/wrapper') // This script updates the index files list.js and list.txt in the bin directory, // as well as the soljson-latest.js files. @@ -33,6 +34,10 @@ dirs.forEach(function (dir) { return fs.readFileSync(path.join(__dirname, dir, file)) } + function readBuiltinVersion (file) { + return solc(require(path.join(__dirname, '/bin', file))).version() + } + // ascending list (oldest version first) const parsedList = files .map(function (file) { return file.match(/^soljson-v([0-9.]*)(-([^+]*))?(\+(.*))?.js$/) }) @@ -41,6 +46,7 @@ dirs.forEach(function (dir) { .map(function (pars) { console.log('Processing ' + pars.path) const fileContent = readFile(pars.path) + pars.reportedVersion = readBuiltinVersion(pars.path) pars.longVersion = buildVersion(pars) pars.keccak256 = '0x' + ethUtil.sha3(fileContent).toString('hex') pars.urls = [ 'bzzr://' + swarmhash(fileContent).toString('hex') ] From e16b705dfd828020f6e2579e8ab57506f94a6435 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Wed, 27 Jun 2018 14:23:08 +0200 Subject: [PATCH 3/5] Read version using subprocesses solc-js or emscripten causes some kind of memory leak and node.js runs out of memory --- package.json | 1 - update | 7 +++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 51de80009..c9d543a55 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,6 @@ }, "devDependencies": { "ethereumjs-util": "^5.0.1", - "solc": "^0.4.24", "standard": "^8.4.0", "swarmhash": "^0.1.0" }, diff --git a/update b/update index 17c524f20..d4426e265 100755 --- a/update +++ b/update @@ -7,7 +7,7 @@ const path = require('path') const semver = require('semver') const ethUtil = require('ethereumjs-util') const swarmhash = require('swarmhash') -const solc = require('solc/wrapper') +const cp = require('child_process') // This script updates the index files list.js and list.txt in the bin directory, // as well as the soljson-latest.js files. @@ -35,7 +35,10 @@ dirs.forEach(function (dir) { } function readBuiltinVersion (file) { - return solc(require(path.join(__dirname, '/bin', file))).version() + // NOTE: should be using this, but it leaks memory + // return solc(require(path.join(__dirname, '/bin', file))).version() + const filename = path.join(__dirname, '/bin', file) + return cp.execSync(`/usr/bin/env node -e "console.log(require('${filename}').cwrap('version', 'string', [])())"`).toString().trim() } // ascending list (oldest version first) From f4accf987a92223513fa4a66efc75216b5c07b4f Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Sun, 17 May 2020 16:21:14 +0100 Subject: [PATCH 4/5] f --- update | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/update b/update index d4426e265..bb8880e07 100755 --- a/update +++ b/update @@ -36,8 +36,8 @@ dirs.forEach(function (dir) { function readBuiltinVersion (file) { // NOTE: should be using this, but it leaks memory - // return solc(require(path.join(__dirname, '/bin', file))).version() - const filename = path.join(__dirname, '/bin', file) + // return solc(require(path.join(__dirname, dir, file))).version() + const filename = path.join(__dirname, dir, file) return cp.execSync(`/usr/bin/env node -e "console.log(require('${filename}').cwrap('version', 'string', [])())"`).toString().trim() } From 84161a8cc2485e3095b578c2a079cf883c879001 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Sun, 17 May 2020 22:46:22 +0100 Subject: [PATCH 5/5] f --- update | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update b/update index bb8880e07..5cbdd412c 100755 --- a/update +++ b/update @@ -38,7 +38,7 @@ dirs.forEach(function (dir) { // NOTE: should be using this, but it leaks memory // return solc(require(path.join(__dirname, dir, file))).version() const filename = path.join(__dirname, dir, file) - return cp.execSync(`/usr/bin/env node -e "console.log(require('${filename}').cwrap('version', 'string', [])())"`).toString().trim() + return cp.execSync(`/usr/bin/env node -e "var solc = require('${filename}'); console.log(solc.cwrap(('_solidity_version' in solc) ? 'solidity_version' : 'version', 'string', [])())"`).toString().trim() } // ascending list (oldest version first)