DLL
This commit is contained in:
parent
0b13972f36
commit
bd0893c21f
4 changed files with 100 additions and 35 deletions
41
index.js
41
index.js
|
|
@ -1,39 +1,14 @@
|
|||
import { cc } from "bun:ffi";
|
||||
import source from "./test.c" with { type: "file" };
|
||||
import { dlopen, FFIType, suffix } from "bun:ffi";
|
||||
|
||||
const path = `./libfibonacci.so`;
|
||||
|
||||
const {
|
||||
symbols: { fibonacci },
|
||||
} = cc({
|
||||
source,
|
||||
symbols: {
|
||||
fibonacci: {
|
||||
args: [],
|
||||
returns: "uint64_t",
|
||||
},
|
||||
const { symbols } = dlopen(path, {
|
||||
fibonacci_gmp: {
|
||||
args: [],
|
||||
returns: FFIType.cstring,
|
||||
},
|
||||
});
|
||||
|
||||
const risultato = fibonacci();
|
||||
const result = symbols.fibonacci_gmp();
|
||||
console.log("Fibonacci(25000) =", result);
|
||||
|
||||
console.log("fibonacci serie 250 000: ", risultato );
|
||||
|
||||
//
|
||||
|
||||
function fibonacci_js() {
|
||||
const n = 250000;
|
||||
let a = 0n;
|
||||
let b = 1n;
|
||||
let c;
|
||||
|
||||
for (let i = 2; i <= n; i++) {
|
||||
c = a + b;
|
||||
a = b;
|
||||
b = c;
|
||||
}
|
||||
|
||||
return b;
|
||||
}
|
||||
|
||||
const result_js = fibonacci_js();
|
||||
console.log("Fibonacci(250 000) =", result_js.toString());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue