Inspirel banner

Programming Distributed Systems with YAMI4

11.1 Minimized Dependencies

The YAMI4 libraries do not depend on any other libraries and are implemented entirely in terms of language standard libraries and system calls. This lack of external dependencies means that the library is easy to deploy and that all organizational considerations like software licensing are simplified as much as possible.

Still, the dependency on the language standard library can be itself minimized by careful selection of the subset of the standard library that is used and such effort is aligned with strict coding guidelines and with audit or certification attempts as well as with the ease of porting to other platforms.

In order to help users with these efforts, the YAMI4 core library provides complete information related to library dependencies.

The C++ Core library depends on the following functions from the C++ standard library:

In addition, the core library depends on the following POSIX system calls:

It should be noted that with the elimination of malloc and free (via private memory partitions) and with fairly easy replacement of the other standard library calls, the YAMI4 Core library can be built with no dependency on the language runtime. This property is of particular importance for embedded and special-purpose systems.

It should be also noted that the core library does not depend on thread-creation system calls. In fact, the core library does not create any threads and relies on the user code to provide appropriate processing threads - in particular it is possible to process messages purely in the main application thread.

The Ada Core library depends on the following standard packages:

These dependencies can be easily satisfied even in a very constrained environment, since they do not rely on the more involving parts of the language run-time library. In particular, there is no dependency on tasking. The library does, however, depend on the exception system.