Hinterlib

From XionKB
Revision as of 07:40, 25 February 2023 by Alexander (talk | contribs) (Created page with "{{stub}} thumb|right|Hinterlib's logo is a silhouette of {{wp|Otto von Bismarck}}. '''Hinterlib''', often referred to jointly with its Cosmopolitan-based sister project as '''Hinterlib/Neopolitan''', is a <tt>libc</tt> surrogate library created by Alexander Nicholi as a more embedded-friendly surrogate to use than alternatives like {{wp|GLib}} or {{gh|wolkykim/qlibc|qLibc}}. ==History== Hinterlib was originally c...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
This article is a stub. You can help by expanding it.
File:Hinterlib.png
Hinterlib's logo is a silhouette of Otto von Bismarck.

Hinterlib, often referred to jointly with its Cosmopolitan-based sister project as Hinterlib/Neopolitan, is a libc surrogate library created by Alexander Nicholi as a more embedded-friendly surrogate to use than alternatives like GLib or qLibc.

History

Hinterlib was originally created under the name unilib on Christmas Day, 2019. Starting with semantic version 1.2, it was split from a monolithic library into several more modular libraries.

Features

Hinterlib provides many useful utilities that are staples of application and library programming, including error reporting, crash-first programming tools, debug I/O wrappers, string manipulation, containers, high-level memory management, and succinct notations for data types of integers, floating-point numbers, and geometric primitives. It also tries to support compiler intrinsics for things like SIMD operations and exact-width integers which are non-standard in ANSI C.

Neopolitan

While Hinterlib supports many target platforms, Neopolitan was created to target the special Actually Portable Executable format created by Justine Tunney. Its name is a derivative of the reference implementation of APE, called Cosmopolitan libc. It was created because it is not a platform to be targeted in the usual sense, and also because APE's fixed, x86-64 only ABI allows the creation of additional types that escape the practical limits on complexity imposed upon Hinterlib for the sake of portability.