|
infix
A JIT-Powered FFI Library for C
|
Macros defining the semantic version of the infix library. More...
Classes | |
| struct | infix_version_t |
| A structure representing the semantic version of the library. More... | |
Macros | |
| #define | INFIX_MAJOR 0 |
| #define | INFIX_MINOR 1 |
| #define | INFIX_PATCH 4 |
| #define | _INFIX_HAS_C_ATTRIBUTE(x) 0 |
| #define | INFIX_API |
| Symbol visibility macro. | |
| #define | INFIX_NODISCARD |
A compatibility macro for the C23 [[nodiscard]] attribute. | |
Macros defining the semantic version of the infix library.
The versioning scheme follows Semantic Versioning 2.0.0 (SemVer).
| #define _INFIX_HAS_C_ATTRIBUTE | ( | x | ) | 0 |
| #define INFIX_API |
Symbol visibility macro.
infix relies on a unity build so we've been lax about symbol visibility. Functions like _infix_set_error or _infix_type_recalculate_layout are shared between internal modules (files included by infix.c) and thus cannot be static. However, this means that if infix.c is compiled into a shared library (libinfix.so), all of these internal infix* functions are exported in the dynamic symbol table. This pollutes the ABI and allows users to link against internal functions that might change.
| #define INFIX_MAJOR 0 |
The major version number. Changes with incompatible API updates.
| #define INFIX_MINOR 1 |
The minor version number. Changes with new, backward-compatible features.
| #define INFIX_NODISCARD |
A compatibility macro for the C23 [[nodiscard]] attribute.
This attribute is used to issue a compiler warning if the return value of a function is ignored by the caller. This is extremely useful for catching bugs where an error code or an important result is not checked.
This macro expands to:
[[nodiscard]] on compilers that support the C23 standard syntax.__attribute__((warn_unused_result)) on GCC and Clang._Check_return_ on Microsoft Visual C++.This is aliased as c23_nodiscard in compat_c23.h.
| #define INFIX_PATCH 4 |
The patch version number. Changes with backward-compatible bug fixes.