Skip to content

Native interfaces and Unicode

These packages expose native APIs or language-runtime services. Requiring a package supplies its declared Pascal paths and producers; it does not install an operating-system SDK or make a foreign library ABI compatible.

Native library boundaries

Package Use and requirements
libffi ffi exposes libffi calls; ffi.manager opts into its RTTI invocation manager. Supply a library built for the exact OS/CPU ABI. The Windows import name is ffi.dll; Win64 uses FFI_WIN64, not the GNU Win64 long-double convention.
lua Lua 5.1 bindings support the engine host; Lua 5.5 bindings describe its normal 64-bit integer/double configuration and require a separate matching runtime. A custom luaconf.h, including luaL_Buffer/CRT buffer size, requires matching Pascal declarations.
pthreads POSIX thread bindings to the target system library. Importing these declarations does not create a thread.
users Unix accounts/groups and Linux shadow records. The crypth unit additionally requires the target crypt library. These are bindings, not a user-account manager.
iconvenc Character conversion through the platform iconv implementation; supply the corresponding native library where it is not part of libc.
graphics/x11 X11 APIs used by the Linux desktop. tpX11Libraries.pas declares the ABI library filenames; development .so aliases are not runtime substitutes. Display-dependent calls need a running X server.

The Lua bridge's RTTI calls use the FFI manager except on Win64. Ordinary C callbacks do not require FFI. See Pascal mobile plugins.

Unicode text and collation

The rtl-unicode package supplies Unicode tables, conversion and collation. Nexus Pascal's default text model is ANSI. -MUNICODESTRINGS requires a matching Unicode-default RTL and dependency closure; do not mix those compiled units with an ANSI-default build. See Pascal language behavior.

UTF8Utils preserves the caller's conversion/filesystem code-page settings. NeedRTLAnsi follows those settings unless explicitly selected through SetNeedRTLAnsi. Import unicodeducet to register DUCET/ROOT collation and the appropriate collation_* units for tailored collations. fpwidestring.SetActiveCollation returns false for an unknown name and leaves the previous collation selected.

Apple framework bindings

The separate nexus-packages-apple repository owns univint, cocoaint and iosxlocale. Configure its Apple.Environment.nxscript for an available Nexus Pascal, matching destination RTL and Apple SDK; the checked-in local cross-tool paths are not a portable installed toolchain. Binding declarations do not establish complete SDK coverage or native verification on iOS/macOS.

Original licenses and notices stay with each package. See attribution.