[*] Update readme 1/2
This commit is contained in:
parent
4be0b58970
commit
13caca23e7
54
README.md
54
README.md
@ -42,13 +42,12 @@ pipeline to get started.
|
||||
|
||||
API:
|
||||
* [Runtime](https://gitea.reece.sx/AuroraSupport/AuroraRuntime/src/branch/master/Include/Aurora)
|
||||
* [auROXTL](https://gitea.reece.sx/AuroraSupport/AuroraRuntime/src/branch/master/Include/auROXTL)
|
||||
* [auROXTL](https://gitea.reece.sx/AuroraSupport/auROXTL/src/branch/master/Include)
|
||||
|
||||
Examples: [Hello Aurora](https://gitea.reece.sx/AuroraSupport/HelloAurora) \
|
||||
Doxygen: \
|
||||
Tests: [Hello Aurora](https://gitea.reece.sx/AuroraSupport/HelloAurora) \
|
||||
Cmake-stable: \
|
||||
Build Pipeline: https://git.reece.sx/AuroraPipeline/Build \
|
||||
API Docs: \
|
||||
Tests and Examples: [Hello Aurora](https://gitea.reece.sx/AuroraSupport/HelloAurora) \
|
||||
Build Pipeline: [Aurora Build](https://git.reece.sx/AuroraPipeline/Build) (Lua/Premake) \
|
||||
Donate / Other Links: [Reece.SX](https://reece.sx/#contact) \
|
||||
Discord: [Invite](https://discord.gg/XYjCGWWa4J)
|
||||
|
||||
## Performance
|
||||
@ -78,9 +77,9 @@ Defer to benchmarks
|
||||
|
||||
## Utilities
|
||||
|
||||
Aurora Sugar: https://git.reece.sx/AuroraSupport/auROXTL/src/branch/master/Include/auROXTLUtils.hpp <br>
|
||||
Aurora Macro Sugar: https://git.reece.sx/AuroraSupport/auROXTL/src/branch/master/Include/auROXTL/AU_MACROS.hpp <br>
|
||||
Aurora Overloadable Type Declerations: https://git.reece.sx/AuroraSupport/auROXTL/src/branch/master/Include/auROXTLTypedefs.hpp
|
||||
Aurora Sugar: [Main Header](https://git.reece.sx/AuroraSupport/auROXTL/src/branch/master/Include/auROXTLUtils.hpp), [(*.)Utils.hpp](https://gitea.reece.sx/AuroraSupport/auROXTL/src/branch/master/Include/auROXTL) \
|
||||
Aurora Macro Sugar: [Main Header](https://git.reece.sx/AuroraSupport/auROXTL/src/branch/master/Include/auROXTL/AU_MACROS.hpp) \
|
||||
Aurora Overloadable Type Declerations: [Main Header](https://gitea.reece.sx/AuroraSupport/auROXTL/src/branch/master/Include/auROXTLTypes.hpp)
|
||||
|
||||
|
||||
## Logging
|
||||
@ -200,13 +199,16 @@ POSIX:
|
||||
|
||||
## Loop
|
||||
|
||||
The Aurora Runtime implements a kernel-scheduler optimized IO subsystem for managing Window, Network, File, IPC, and thread
|
||||
The Aurora Runtime implements a kernel-scheduler optimized IO subsystem for managing GUIs, Network AIO, File AIO, IPC AIO, and thread
|
||||
synchronization objects through loop the loop subsystem.
|
||||
|
||||
Loop sources are an interface defined by the loop subsystem for objects with a signalable state. Attached to a LoopQueue, the
|
||||
LoopQueue will provide a Wait-on related functions and subscription notifications of signal state change - allowing for optimized
|
||||
loop source removal or reinsert hints from the return values of the subscription interface. In addition, the ILoopSource interface
|
||||
permits arbitrary is-signaled-and-latch (TryLock) queries.
|
||||
loop source removal or no-action replies from the subscription interface. In addition, the ILoopSource interface permits arbitrary
|
||||
is-signaled-and-latch (TryLock) queries and timed-wait (WaitOn) calls removing the need for loop queues during simple operations.
|
||||
|
||||
Advanced use cases of loop include the addition and removal of watched signalable objects on a remote worker thread, high performance
|
||||
async synchronization to lower performance IO, and the multiplexing of primitive IO streams.
|
||||
|
||||
|
||||
|
||||
@ -275,10 +277,10 @@ binary blob of UTF-8. Looking to switch to `tiny-utf8` for UTF-8 safety.
|
||||
|
||||
### Allocator
|
||||
|
||||
Objects are allocated across API/Module boundaries; and so long as the high level API design isn't horribly inefficient, the
|
||||
cache invalidation and indirect lookups should be minimalized. On modern hardware, indirect branching versus short jumps aren't
|
||||
so expensive, and in combination with a fast enough allocator, it's a model that could provide reasonable OOP performance
|
||||
through a C-with-classes-like API.
|
||||
Objects are allocated across API/Module boundaries. So long as the high level API design isn't horribly inefficient to an extent
|
||||
that cache invalidation and indirect lookups are minimalized, object-heavy code can optimized. On modern hardware, legitmate indirect
|
||||
branching versus short jumps aren't so expensive between modules in real world usage; and in combination with a fast enough allocator,
|
||||
there is little reason why couldn't achieve reasonable OOP performance through a C-with-classes-like API.
|
||||
|
||||
As for allocation, we generally expect a dependence on Microsoft's mimalloc. Linking against the Aurora Runtime in the Aurora
|
||||
Ecosystem will automatically replace global allocators with `Aurora::Memory`, which in turn, proxies any other suitable allocator
|
||||
@ -290,11 +292,18 @@ Aurora provides a heap allocator for dividing up a large preallocated region of
|
||||
|
||||
### Shared Pointers
|
||||
|
||||
By default, AuSPtr is backed by `std::shared_ptr`, extended by `#include <Aurora/Memory/ExtendStlLikeSharedPtr>`. Using this
|
||||
class, undefined behaviour on dereference and operator pointer is altered to guarantee an AU_THROW_STRING. Such hacks without
|
||||
support for native behaviour from the language drivers themselves can be rather expensive; however, it's an experiment worth
|
||||
trying now that modern hardware can make up for software and microcode flaws; and architecture translation. Null exception
|
||||
experiments can be easily disabled or configured from within your AuroraConfiguration.h file globally.
|
||||
Memory objects, including shared pointers, the object allocation model, and more is defined by AuROXTL. The `AuSPtr` class
|
||||
is backed by `std::shared_ptr`, extended by `#include <auROXTL/auMemoryModel.hpp>,` in the default configuration.
|
||||
|
||||
AuROXTL memory primitives, and most STL containers, are source compatible with the base STL classes, such that any Aurora
|
||||
specific behaviour is lost during type reduction.
|
||||
|
||||
Benefits of using the Aurora extended classes include redefining null dereference and operator pointer access to throw
|
||||
an AU_THROW_STRING __in an unconfigurated Aurora ecosystem__. Without support for native behaviour from the C++ drivers,
|
||||
such features can be rather expensive using performace hacks we have available (outside of ripping the compiler apart to emit special
|
||||
debug info for hacky trap handlers). However, it's an experiment worth trying now that modern hardware can make up for software and
|
||||
microcode flaws; and architecture translation. Again, this is default behaviour, and can be easily disabled or configured from within
|
||||
your AuroraConfiguration.h file globally.
|
||||
|
||||
|
||||
```
|
||||
@ -410,7 +419,8 @@ Example:
|
||||
## Proccesses
|
||||
|
||||
The Aurora Runtime provides worker process monitoring, worker stdin/out stream redirection process spawning, file
|
||||
opening, and url opening functionality.
|
||||
opening, and url opening functionality. Further support was added for asynchronous stdin/out/err redirection, and
|
||||
a process termination event, through the use of the Loop subsystem.
|
||||
|
||||
## Locale
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user