diff --git a/ircd/README.md b/ircd/README.md index 86c4bd4ee..89fb7c120 100644 --- a/ircd/README.md +++ b/ircd/README.md @@ -1,6 +1,6 @@ -# IRCd Library Definitions +# Library Definitions -This directory contains definitions and linkage for `libircd` +This directory contains definitions for `libircd` The purpose of `libircd` is to facilitate the execution of a server which handles requests from end-users. The library hosts a set of pluggable modules @@ -26,8 +26,8 @@ header or third-party dependency which is not involved in the [ircd.h include group](../include/ircd#what-to-include). Second to that, units tend to be divided by namespace and the subsystem they're implementing. Units can further be divided if they become unwieldy, but we bias toward large aggregate -units. Within these large units, there are divisions which group the definitions -by the `include/ircd/` header which declares them. +units in this library. Within these large units, there are divisions which group +the definitions by the `include/ircd/` header which declares them. We do not included third-party headers in our own [headers](../include/ircd) which are included by others. A developer of an `ircd::` interface can choose diff --git a/modules/README.md b/modules/README.md index 8012fdfac..b19168641 100644 --- a/modules/README.md +++ b/modules/README.md @@ -1,30 +1,17 @@ -# IRCd Module Tree +# Module Tree -This directory contains dynamically loadable functionality to libircd. Many of -these modules provide essential application functionality, but are not always -required to be directly linked and loaded into libircd proper. Most application- -specific functionality (i.e "business logic") is contained in modules within this -tree. +This directory contains dynamically loadable functionality to libircd. #### Layout -The `modules/` directory tree is primarily shaped the same as the HTTP resource -tree in which most of its modules register themselves in. - -Note that the installation layout is not the same as the development source -layout (i.e in git). Upon installation, the module tree is collapsed into a -single directory and installed into -`$prefix/lib/modules/construct/$directory_$module.so`; where directories are -replaced by underscores in the final `SONAME`. this may be subject to -improvement. - #### Approach -Unlike most of the module systems found in traditional free software projects, -our approach is oriented around *global symbol* availability to the address -space rather than explicit imports from self-contained modules. This direction -is made viable by C++ and advances in the compiler and linker toolchains. The -result is significantly simpler and more convenient for developers to work with. +Unlike most of the module systems found in traditional C free software +projects, our approach is oriented around *global symbol* availability to the +address space rather than explicit imports from self-contained modules. This +direction is made viable by C++ and advances in the compiler and linker +toolchains. The result is significantly simpler and more convenient for +developers to work with. - Modules are loaded with `RTLD_GLOBAL` on both posix and windows platforms. Use of C++ namespaces, visibility attributes, `STB_GNU_UNIQUE`, etc are @@ -68,8 +55,3 @@ Makefile.am. 3. Add the module `.la` name to the appropriate LTLIBRARIES list in Makefile.am. - -4. At this time, most modules are listed explicitly in `ircd/m.cc` to -provide a strict load and unload ordering based on dependency. Note that -if the module is not `m::` related there may be similar lists for other -subsystems.