@obinexusltd/ada-polycall
v0.1.0
Published
Ada binding for the libpolycall 1.5.0 C FFI.
Maintainers
Readme
ada-polycall
Ada binding for libpolycall 1.5.0, published as
@obinexusltd/ada-polycall. It is a thin adapter: configuration and runtime
logic remain in libpolycall, while this package maps Ada calls onto
polycall_ffi_run_config(config_path, 1).
Ada API
Add src/ to the Ada source path and call either API:
with Ada_Polycall;
procedure Main is
Status : Integer;
begin
Status := Ada_Polycall.Run_Config ("ada-polycallrc");
Ada_Polycall.Run_Config_Or_Raise ("ada-polycallrc");
end Main;Run_Config returns the libpolycall status unchanged.
Run_Config_Or_Raise raises the Ada-native Polycall_Error exception when
the status is nonzero.
npm source package
Install the package:
npm install @obinexusltd/ada-polycallThe CommonJS entry point exposes absolute paths for build tooling:
const polycall = require('@obinexusltd/ada-polycall');
console.log(polycall.adaSpec);
console.log(polycall.adaBody);
console.log(polycall.nativeAdapter);
console.log(polycall.publicHeader);
console.log(polycall.ffiHeader);
console.log(polycall.project);
console.log(polycall.config);The npm tarball explicitly includes src/, include/, generated/,
examples/, scripts/, and tests/, plus the GNAT project, Makefile,
manifest, and read-only runtime configuration. Platform-specific build output
is excluded.
Build and test
Build the portable native forwarding archive with GCC:
make
# or
npm run buildWith GNAT and GPRbuild installed, build the complete Ada library:
make ada
# or
npm run build:adaThe native boundary and npm package tests do not require GNAT:
npm test
npm run verifyRun the Ada smoke test when GNAT is available:
npm run test:adaCore integration
A real integration run requires a libpolycall v1.5 library exporting
polycall_ffi_run_config. Link it into the Ada executable with:
make example POLYCALL_LDFLAGS="-L/path/to/libpolycall/lib -lpolycall"The runnable program is examples/basic.adb. The
read-only shared-schema override is ada-polycallrc; the
binding never parses or modifies it.
