New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@guildofweavers/air-assembly

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@guildofweavers/air-assembly - npm Package Compare versions

Comparing version 0.2.6 to 0.3.0

10

air-assembly.d.ts

@@ -173,3 +173,3 @@ declare module '@guildofweavers/air-assembly' {

addInputRegister(scope: string, binary: boolean, parentIdx?: number, steps?: number, offset?: number): void;
addInputRegister(scope: string, binary: boolean, master?: InputRegisterMaster, steps?: number, offset?: number): void;
addMaskRegister(sourceIdx: number, inverted: boolean): void;

@@ -273,6 +273,12 @@ addCyclicRegister(values: bigint[] | PrngSequence): void;

readonly offset : number;
readonly parent? : number;
readonly master? : InputRegisterMaster;
readonly steps? : number;
}
export type InputRegisterRelation = 'childof' | 'peerof';
export interface InputRegisterMaster {
readonly index : number;
readonly relation : InputRegisterRelation;
}
export interface MaskRegister extends StaticRegister {

@@ -279,0 +285,0 @@ readonly source : number;

30

lib/AirComponent.js

@@ -50,12 +50,15 @@ "use strict";

}
addInputRegister(scope, binary, parentIdx, steps, offset) {
addInputRegister(scope, binary, master, steps, offset) {
const registerIdx = this.staticRegisterCount;
utils_1.validate(registerIdx === this._inputRegisters.length, errors.inputRegOutOfOrder());
let rank = 0;
if (typeof parentIdx === 'number') {
const parent = this._inputRegisters[parentIdx];
utils_1.validate(parent, errors.invalidInputParentIndex(registerIdx, parentIdx));
utils_1.validate(parent instanceof registers_1.InputRegister, errors.inputParentNotInputReg(registerIdx, parentIdx));
utils_1.validate(!parent.isLeaf, errors.inputParentIsLeafReg(registerIdx, parentIdx));
rank = parent.rank + 1;
if (master) {
const relation = master.relation;
const masterReg = this._inputRegisters[master.index];
utils_1.validate(relation === 'peerof' || relation === 'childof', errors.invalidInputMasterRel(registerIdx, relation));
;
utils_1.validate(masterReg, errors.invalidInputMasterIndex(registerIdx, master.index));
utils_1.validate(masterReg instanceof registers_1.InputRegister, errors.inputMasterNotInputReg(registerIdx, master.index));
utils_1.validate(!masterReg.isLeaf, errors.inputMasterIsLeafReg(registerIdx, master.index));
rank = (relation === 'peerof' ? masterReg.rank : masterReg.rank + 1);
}

@@ -68,3 +71,3 @@ else {

}
const register = new registers_1.InputRegister(scope, rank, binary, parentIdx, steps, offset);
const register = new registers_1.InputRegister(scope, rank, binary, master, steps, offset);
this._inputRegisters.push(register);

@@ -173,4 +176,4 @@ this._staticRegisters.push(register);

registers.delete(register);
register = register.parent !== undefined
? this._inputRegisters[register.parent]
register = register.master !== undefined
? this._inputRegisters[register.master.index]
: undefined;

@@ -195,5 +198,6 @@ }

inputCycleTooBig: (c, t) => `input cycle length (${c}) cannot be greater than trace cycle length (${t})`,
invalidInputParentIndex: (r, s) => `invalid parent for input register ${r}: register ${s} is undefined`,
inputParentNotInputReg: (r, s) => `invalid parent for input register ${r}: register ${s} is not an input register`,
inputParentIsLeafReg: (r, s) => `invalid parent for input register ${r}: register ${s} is a leaf register`,
invalidInputMasterIndex: (r, s) => `invalid master for input register ${r}: register ${s} is undefined`,
invalidInputMasterRel: (r, p) => `invalid master for input register ${r}: '${p}' is not a valid relation`,
inputMasterNotInputReg: (r, s) => `invalid master for input register ${r}: register ${s} is not an input register`,
inputMasterIsLeafReg: (r, s) => `invalid master for input register ${r}: register ${s} is a leaf register`,
danglingInputRegisters: (d) => `cycle length for input registers ${d.join(', ')} is not defined`,

@@ -200,0 +204,0 @@ maskRegOutOfOrder: () => `mask registers cannot be preceded by cyclic registers`,

@@ -120,3 +120,3 @@ "use strict";

e.params.forEach((p, i) => {
fnContext.info.param[i] = this.visit(p, fnContext);
fnContext.info.param[i] = this.visit(p, ctx);
});

@@ -123,0 +123,0 @@ // analyze statements

@@ -111,3 +111,3 @@ "use strict";

rank: register.rank,
parent: register.parent,
parent: findInputParentIndex(register, component),
secret: register.secret,

@@ -128,2 +128,10 @@ binary: register.binary,

}
function findInputParentIndex(register, component) {
let index;
while (register.master) {
index = register.master.index;
register = component.staticRegisters[register.master.index];
}
return index;
}
//# sourceMappingURL=generator.js.map

@@ -24,3 +24,4 @@ "use strict";

exports.Binary = chevrotain_1.createToken({ name: "Binary", pattern: /binary/, longer_alt: exports.Identifier });
exports.Parent = chevrotain_1.createToken({ name: "Parent", pattern: /parent/, longer_alt: exports.Identifier });
exports.ChildOf = chevrotain_1.createToken({ name: "ChildOf", pattern: /childof/, longer_alt: exports.Identifier });
exports.PeerOf = chevrotain_1.createToken({ name: "PeerOf", pattern: /peerof/, longer_alt: exports.Identifier });
exports.Steps = chevrotain_1.createToken({ name: "Steps", pattern: /steps/, longer_alt: exports.Identifier });

@@ -84,4 +85,4 @@ exports.Shift = chevrotain_1.createToken({ name: "Shift", pattern: /shift/, longer_alt: exports.Identifier });

exports.Export, exports.Registers, exports.Constraints, exports.Init,
exports.Module, exports.Field, exports.Prime, exports.Const, exports.Static, exports.Input, exports.Secret, exports.Public, exports.Binary, exports.Parent, exports.Steps, exports.Shift, exports.Cycle,
exports.Prng, exports.Sha256, exports.Mask, exports.Inverted, exports.Function, exports.Transition, exports.Evaluation, exports.Result, exports.Param, exports.Local,
exports.Module, exports.Field, exports.Prime, exports.Const, exports.Static, exports.Input, exports.Secret, exports.Public, exports.Binary, exports.ChildOf, exports.PeerOf, exports.Steps, exports.Shift,
exports.Cycle, exports.Prng, exports.Sha256, exports.Mask, exports.Inverted, exports.Function, exports.Transition, exports.Evaluation, exports.Result, exports.Param, exports.Local,
exports.Scalar, exports.Vector, exports.Matrix,

@@ -88,0 +89,0 @@ exports.Get, exports.Slice, exports.BinaryOp, exports.Add, exports.Sub, exports.Mul, exports.Div, exports.Exp, exports.Prod, exports.UnaryOp, exports.Neg, exports.Inv,

@@ -172,8 +172,11 @@ "use strict";

const binary = this.OPTION1(() => this.CONSUME(lexer_1.Binary)) ? true : false;
const parent = this.OPTION2(() => {
const master = this.OPTION2(() => {
this.CONSUME2(lexer_1.LParen);
this.CONSUME(lexer_1.Parent);
const relation = this.OR2([
{ ALT: () => this.CONSUME(lexer_1.ChildOf).image },
{ ALT: () => this.CONSUME(lexer_1.PeerOf).image }
]);
const index = this.SUBRULE1(this.integerLiteral);
this.CONSUME2(lexer_1.RParen);
return index;
return { index, relation };
});

@@ -195,3 +198,3 @@ const steps = this.OPTION3(() => {

this.CONSUME1(lexer_1.RParen);
this.ACTION(() => component.addInputRegister(scope, binary, parent, steps, offset));
this.ACTION(() => component.addInputRegister(scope, binary, master, steps, offset));
});

@@ -198,0 +201,0 @@ this.maskRegister = this.RULE('maskRegister', (component) => {

@@ -10,7 +10,7 @@ "use strict";

// --------------------------------------------------------------------------------------------
constructor(scope, rank, binary, parent, steps, offset = 0) {
constructor(scope, rank, binary, master, steps, offset = 0) {
super();
utils_1.validate(scope === 'public' || scope === 'secret', errors.inputScopeInvalid(scope));
utils_1.validate(rank > 0, errors.inputRankTooSmall());
utils_1.validate(rank === 1 || parent !== undefined, errors.inputRankInvalid(rank));
utils_1.validate(rank === 1 || master !== undefined, errors.inputRankInvalid(rank));
if (steps !== undefined) {

@@ -23,3 +23,3 @@ utils_1.validate(utils_1.isPowerOf2(steps), errors.stepsNotPowerOf2());

this.offset = offset;
this.parent = parent;
this.master = master;
this.steps = steps;

@@ -30,3 +30,3 @@ }

get isRoot() {
return (this.parent === undefined);
return (this.master === undefined);
}

@@ -40,7 +40,7 @@ get isLeaf() {

const scope = this.secret ? 'secret' : 'public';
const parent = this.parent === undefined ? '' : ` (parent ${this.parent})`;
const master = this.master ? ` (${this.master.relation} ${this.master.index})` : '';
const binary = this.binary ? ' binary' : '';
const offset = this.offset === 0 ? '' : ` (shift ${this.offset})`;
const steps = (this.steps !== undefined) ? ` (steps ${this.steps})` : '';
return `(input ${scope}${binary}${parent}${steps}${offset})`;
return `(input ${scope}${binary}${master}${steps}${offset})`;
}

@@ -53,3 +53,3 @@ }

inputScopeInvalid: (s) => `input register scope '${s}' is not valid`,
inputRankInvalid: (r) => `invalid input register rank: register of rank ${r} has no parent`,
inputRankInvalid: (r) => `invalid input register rank: register of rank ${r} has no master`,
inputRankTooSmall: () => `input register rank must be greater than 0`,

@@ -56,0 +56,0 @@ stepsNotPowerOf2: () => `input register cycle length must be a power of 2`

{
"name": "@guildofweavers/air-assembly",
"version": "0.2.6",
"version": "0.3.0",
"description": "A low-level language for encoding Algebraic Intermediate Representation of computations",

@@ -5,0 +5,0 @@ "main": "index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc