Hinterlib

From XionKB
Jump to navigationJump to search
This article is a stub. You can help by expanding it.
Hinterlib
Created by Alexander Nicholi
Written in C
OSes Sirius DOS, Linux, Windows, macOS, Game Boy Advance, and others
ISAs i286, IA-32, x86-64, ARMv4T
Licence ASL 1.1
Repository aquefir/hinterlib

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.