ExpandCollapse

+ 1 Felix Run Time Library

Exceptions
Error Exits

Garbage Collector
Memory Management Core

Embedding: System Construction
Core routines for embedding

Dynamic Linkage and Driver
The top level driver program and dynamic linkage library

Event Notification
Bootstrap Build Code

Felix Asynchronous I/O Support
Code C++ implementation of Asynchronous I/O RTL

Pre-emptive Threading Core
Core C++ Pre-emptive threading support

Serialisation Support
Core C++ supporting automatic data serialisation

Run Time Library Core
Core C++ Core RTL facilities

Special Linux Support
Low Level code providing access to unique Linux features

+ 2 Felix Standard Library

Library Structure Map
Directory Layout of the extracted Standard library. With some uncategorise files thrown in.

Base Grammar
Basic Grammar core. Specialised Subgrammars added in appropriate modules.

Basic Algebraic Structure
Now we have to define some basic algebraic structures...

Logic
Boolean Logic

C Headers
First we require basic C interfaces...

Core Scalar Types
So we lift some basic types from C.

Core Type Constructors
Some core data types and library support for compiler instrinsics.

Pointers
Basic pointers.

Control Flow primitives
Interface to some RTL control features

Characters
Basic character type char.

Numbers
So we can conveniently define functions on numbers...

Strings
and functions of strings

Arrays
Array algebra, arrays, variable length arrays, dynamic length arrays, sparse arrays

Lists
Functional lists, association lists, random access lists, doubly linked lists, an S-expressions

Streams and Iterators
Streamable data structures and iterators.

Cooperative threading
Support for fibres, synchronous channels, pipelines.

Preemptive Threading
Support for shared memory concurrency by pre-emptive threads and various synchronisation devices. See also Core C++ Threading for implementation details

Programs and Processes
Programs, ennvironment variables, command line options, shells, processes and dynamic linkage.

File System/Output
File Name, Directories, File status, Base operations.

Input/Output
File I/O, Mice, Sockets, Timers, Events

Time of Day
Access to system real time clock.

Database
Basic Sqlite3 binding.


Debugging.
Some debugging aids.


C++ Standard Template Library
C++98 STL: iterators, vector, set, map, list, multiset, multimap, deque

Simple Direct Media Layer
Binding for SDL2 including SDL_image and SDL_ttf