
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
@brecert/llvmir
Advanced tools
[W.I.P] Construct LLVM-IR using pure javascript
import { Module, Instructions, Values, Types, utils } from '@brecert/llvmir'
const module = new Module
// utils provides shorthands to a lot of instructions or functionality
const { i, sig } = utils
// create the type signature for the functions
// for more info please look at https://llvm.org/docs/LangRef.html#function-type
const fnMainSig = sig(i(32), [])
const fnMain = new Values.Function({
name: 'main',
signature: fnMainSig,
argNames: []
})
// there's a lot of writing involved when writing instructions
// it's pretty easy to make a shorthand for a lot of them if utils doesn't already have one
const add = (left: Values.Integer, right: Values.Integer) => new Instructions.BinaryOperation('add', left.type, left, right)
// add the values 3 and 6 together
const sum = add(i(32).val(3), i(32).val(6))
// the block must have a terminator, so we will return the sum
// for more info please look at https://llvm.org/docs/LangRef.html#terminators
const ret = new Instructions.Ret(sum.type, sum)
// we will push the instructions the the functions main block
fnMain.body.push(sum, ret)
// we add the function to module
module.addFunction(fnMain)
// we build the module
// by default the module returns an array of the functions, so we join it here
module.build().join('\n')
should build something like
define i32 @main () { bb1:
%0 = add i32 3, 6
ret i32 %0
}
FAQs
Construct LLVM-IR using pure javascript
We found that @brecert/llvmir demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.