[*] 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:
|
API:
|
||||||
* [Runtime](https://gitea.reece.sx/AuroraSupport/AuroraRuntime/src/branch/master/Include/Aurora)
|
* [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) \
|
API Docs: \
|
||||||
Doxygen: \
|
Tests and Examples: [Hello Aurora](https://gitea.reece.sx/AuroraSupport/HelloAurora) \
|
||||||
Tests: [Hello Aurora](https://gitea.reece.sx/AuroraSupport/HelloAurora) \
|
Build Pipeline: [Aurora Build](https://git.reece.sx/AuroraPipeline/Build) (Lua/Premake) \
|
||||||
Cmake-stable: \
|
Donate / Other Links: [Reece.SX](https://reece.sx/#contact) \
|
||||||
Build Pipeline: https://git.reece.sx/AuroraPipeline/Build \
|
|
||||||
Discord: [Invite](https://discord.gg/XYjCGWWa4J)
|
Discord: [Invite](https://discord.gg/XYjCGWWa4J)
|
||||||
|
|
||||||
## Performance
|
## Performance
|
||||||
@ -78,9 +77,9 @@ Defer to benchmarks
|
|||||||
|
|
||||||
## Utilities
|
## Utilities
|
||||||
|
|
||||||
Aurora Sugar: https://git.reece.sx/AuroraSupport/auROXTL/src/branch/master/Include/auROXTLUtils.hpp <br>
|
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: https://git.reece.sx/AuroraSupport/auROXTL/src/branch/master/Include/auROXTL/AU_MACROS.hpp <br>
|
Aurora Macro Sugar: [Main Header](https://git.reece.sx/AuroraSupport/auROXTL/src/branch/master/Include/auROXTL/AU_MACROS.hpp) \
|
||||||
Aurora Overloadable Type Declerations: https://git.reece.sx/AuroraSupport/auROXTL/src/branch/master/Include/auROXTLTypedefs.hpp
|
Aurora Overloadable Type Declerations: [Main Header](https://gitea.reece.sx/AuroraSupport/auROXTL/src/branch/master/Include/auROXTLTypes.hpp)
|
||||||
|
|
||||||
|
|
||||||
## Logging
|
## Logging
|
||||||
@ -200,13 +199,16 @@ POSIX:
|
|||||||
|
|
||||||
## Loop
|
## 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.
|
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
|
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
|
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
|
loop source removal or no-action replies from the subscription interface. In addition, the ILoopSource interface permits arbitrary
|
||||||
permits arbitrary is-signaled-and-latch (TryLock) queries.
|
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
|
### Allocator
|
||||||
|
|
||||||
Objects are allocated across API/Module boundaries; and so long as the high level API design isn't horribly inefficient, the
|
Objects are allocated across API/Module boundaries. So long as the high level API design isn't horribly inefficient to an extent
|
||||||
cache invalidation and indirect lookups should be minimalized. On modern hardware, indirect branching versus short jumps aren't
|
that cache invalidation and indirect lookups are minimalized, object-heavy code can optimized. On modern hardware, legitmate indirect
|
||||||
so expensive, and in combination with a fast enough allocator, it's a model that could provide reasonable OOP performance
|
branching versus short jumps aren't so expensive between modules in real world usage; and in combination with a fast enough allocator,
|
||||||
through a C-with-classes-like API.
|
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
|
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
|
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
|
### Shared Pointers
|
||||||
|
|
||||||
By default, AuSPtr is backed by `std::shared_ptr`, extended by `#include <Aurora/Memory/ExtendStlLikeSharedPtr>`. Using this
|
Memory objects, including shared pointers, the object allocation model, and more is defined by AuROXTL. The `AuSPtr` class
|
||||||
class, undefined behaviour on dereference and operator pointer is altered to guarantee an AU_THROW_STRING. Such hacks without
|
is backed by `std::shared_ptr`, extended by `#include <auROXTL/auMemoryModel.hpp>,` in the default configuration.
|
||||||
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
|
AuROXTL memory primitives, and most STL containers, are source compatible with the base STL classes, such that any Aurora
|
||||||
experiments can be easily disabled or configured from within your AuroraConfiguration.h file globally.
|
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
|
## Proccesses
|
||||||
|
|
||||||
The Aurora Runtime provides worker process monitoring, worker stdin/out stream redirection process spawning, file
|
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
|
## Locale
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user