Portability

What does your platform need to run Oils?

These are some notes that supplement INSTALL.

Table of Contents
Issues in the core of Oils
GNU libc for extended globs
Atomic Assignments
Extra Features
USDT - Userland Statically-Defined Tracing
"Enums" that are often extended
Unicode

Issues in the core of Oils

GNU libc for extended globs

For matching extended globs like @(*.cc|*.h), Oils relies on GNU libc support.

TODO: when using other libc, using this syntax should be an error.

Atomic Assignments

The signal handler assumes that int and pointer assignments are atomic. This is a common and widespread assumption.

Extra Features

USDT - Userland Statically-Defined Tracing

Our C++ code has DTRACE_PROBE() macros, which means we can use tools like bpftrace on Linux to make low-overhead queries of runtime behavior.

The probe names and locations aren't stable across releases.

"Enums" that are often extended

Different Unix implementations often extend:

Unicode

Strings in Oils are byte strings, which are often UTF-8 encoded.

We use libc functions that may depend on the global locale setting, like glob(). We currently assume your libc is configured to use UTF-8.

See the Unicode doc for details on Unicode-aware operations.

Generated on Tue, 16 Jul 2024 02:53:59 +0000