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.