ocean
ocean copied to clipboard
General purpose, platform-dependent, high-performance library for D
```D import ocean.text.convert.Formatter; enum Protocol { HTTP = 0, http = HTTP, } void main () { auto x = format("{}", Protocol.init); } ``` ``` submodules/ocean/src/ocean/text/convert/Formatter.d(395): Error: duplicate case http...
`ocean.sys.socket.AddrInfo` contains a `struct addrinfo` which is described as "Address information struct as returned by getaddrinfo().", and it contains an `extern(C)` declaration of `getaddrinfo`. However, `core.sys.posix.netdb` also contains a `struct...
LRUcache does not update the recency of items retrieved with get, only with special get...refresh... methods. This is a surprising, and not well documented API. get() should be overloaded to...
I've given a go to building ocean v5.0.x tests with `ldmd2` instead of `dmd` (v5.0.x because it includes the `getIeeeFlags` fix that was a blocker to using compilers other than...
dmd 2.085 [introduced](https://dlang.org/changelog/2.085.0.html#core-memory-gc-profile-stats) a new API to get GC timing and collection info: [`core.memory.GC.ProfileStats`](https://dlang.org/phobos/core_memory.html#.GC.ProfileStats). We should make use of it (when available) in [`ocean.application.components.GCStats`](https://github.com/sociomantic-tsunami/ocean/blob/v4.x.x/src/ocean/application/components/GCStats.d).
As it can be seen [here](https://github.com/sociomantic-tsunami/ocean/blob/a29f61736650f698fc4fbe5f7b88bf1ead138efb/src/ocean/meta/types/Qualifiers.d#L167), the `Unqual` template does not support `shared` and `inout`. It can be extended to support the two. In general, the entire `Qualifiers` module can...
syslog daemons expose UNIX UDP socket where the application can log the messages in `syslog` format (https://tools.ietf.org/html/rfc5424, and now obsolete https://tools.ietf.org/html/rfc3164). We should have a module that will implement this...
[As mentioned in its documentation](https://github.com/sociomantic-tsunami/ocean/blob/cfd360d8219621915f8a635f299d950e7d4258c0/src/ocean/util/log/Stats.d#L21-L23), `StatsLog` is designed to be able to write stats directly to collectd, via a socket. As far as I know, no application has actually used...
The [current framework](https://github.com/sociomantic-tsunami/ocean/tree/v3.x.x/src/ocean/util/app), while flexible and extensible, has turned out to be massively overwrought for our needs. Adding new features invariably involves delving into the extensions logic, which is far...
Ocean provides wrapper around `fork`: https://github.com/sociomantic-tsunami/ocean/blob/v3.x.x/src/ocean/sys/SafeFork.d#L120 which calls fork, but it doesn't do anything with the `SIGCHLD` events, resulting in leaving zombie processes on the system. SafeFork should at least...