arnaucube
arnaucube/circomPublic Self-hosted repository
log buildC
Jordi Baylina jordi@baylina.cat
Mon, 27 Jul 2020 05:00:47 +0200
commit

3c8e61b9a44299c55b716a4950dedb051e40d61a

parent

c39423e411e960709d13e93989b0fb80211eedff

2 files changed, 24 insertions(+), 6 deletions(-)

jump to
M src/build.js → src/build.js

@@ -37,15 +37,22 @@ ctx.addConstant = addConstant;

ctx.addConstant(ctx.F.zero); ctx.addConstant(ctx.F.one); + if (ctx.verbose) console.log("buildHeader..."); buildHeader(ctx); + if (ctx.verbose) console.log("buildEntryTables..."); buildEntryTables(ctx); ctx.globalNames = ctx.uniqueNames; + if (ctx.verbose) console.log("buildCode..."); buildCode(ctx); + if (ctx.verbose) console.log("buildComponentsArray..."); buildComponentsArray(ctx); + if (ctx.verbose) console.log("buildMapIsInput..."); buildMapIsInput(ctx); + + if (ctx.verbose) console.log("buildWit2Sig..."); buildWit2Sig(ctx); }

@@ -56,6 +63,7 @@ const codes_hashMaps = [];

const codes_componentEntries = []; const definedHashMaps = {}; for (let i=0; i<ctx.components.length; i++) { + if (ctx.verbose && (i%1000 ==0)) console.log(`buildEntryTables component: ${i}/${ctx.components.length}`); const {htName, htMap} = addHashTable(i); let code = "";

@@ -131,6 +139,7 @@ const fDefined = {};

const fnComponents = []; for (let i=0; i<ctx.components.length; i++) { + if (ctx.verbose && (i%1000 ==0)) console.log(`buildCode component: ${i}/${ctx.components.length}`); const {h, instanceDef} = hashComponentCall(ctx, i); const fName = ctx.components[i].template+"_"+h; if (!fDefined[fName]) {

@@ -180,6 +189,7 @@ }

function buildComponentsArray(ctx) { for (let i=0; i< ctx.components.length; i++) { + if (ctx.verbose && (i%10000 ==0)) console.log(`buildComponentsArray component: ${i}/${ctx.components.length}`); let newThread; if (ctx.newThreadTemplates) { if (ctx.newThreadTemplates.test(ctx.components[i].template)) {

@@ -217,6 +227,7 @@ let i;

let map = []; let acc = 0; for (i=0; i<ctx.signals.length; i++) { + if (ctx.verbose && (i%100000 ==0)) console.log(`buildMapIsInput signal: ${i}/${ctx.signals.length}`); if (ctx.signals[i].o & ctx.IN) { acc = acc | (1 << (i%32) ); }

@@ -243,6 +254,7 @@ ctx.totals[ctx.stPRVINPUT] +

ctx.totals[ctx.stINTERNAL]; const arr = Array(NVars); for (let i=0; i<ctx.signals.length; i++) { + if (ctx.verbose && (i%100000 ==0)) console.log(`buildWit2Sig signal: ${i}/${ctx.signals.length}`); const outIdx = ctx.signals[i].id; if (ctx.signals[i].e>=0) continue; // If has an alias, continue.. assert(typeof outIdx != "undefined", `Signal ${i} does not have index`);
M src/compiler.js → src/compiler.js

@@ -119,6 +119,16 @@ if (ctx.error) {

throw(ctx.error); } + if (options.r1csFileName) { + measures.generateR1cs = -performance.now(); + await buildR1cs(ctx, options.r1csFileName); + measures.generateR1cs += performance.now(); + } + + if (ctx.error) throw(ctx.error); + + delete ctx.constraints; // Liberate memory. + if (options.cSourceWriteStream) { if (ctx.verbose) console.log("Generating c..."); measures.generateC = -performance.now();

@@ -130,6 +140,8 @@ measures.generateC += performance.now();

// await new Promise(fulfill => options.cSourceWriteStream.on("finish", fulfill)); } + + if (ctx.error) throw(ctx.error); if ((options.wasmWriteStream)||(options.watWriteStream)) { if (ctx.verbose) console.log("Generating wasm...");

@@ -151,12 +163,6 @@ }

// const mainCode = gen(ctx,ast); if (ctx.error) throw(ctx.error); - - if (options.r1csFileName) { - measures.generateR1cs = -performance.now(); - await buildR1cs(ctx, options.r1csFileName); - measures.generateR1cs += performance.now(); - } if (options.symWriteStream) { measures.generateSyms = -performance.now();