nyan
nyan copied to clipboard
Typesafe hierarchical key-value database with inheritance and dynamic patching :smiley_cat:
Currently, all member access is checked at load time. When patches add new members to objects by addint inheritance parents, those cannot be used (because at load time the member...
Currently, it's only allowed for a inheritance hierarchy of patches to define a patch target once. This restriction can be softened a bit by allowing the patch target again, but...
In [openage](https://github.com/SFTtech/openage), we need a notification event for watched nyan values. This means `nyan` needs support for registering callback functions that will fire when the value of the member changes.
It should be possible to undo patches in a transaction (e.g. when a research is cancelled). Two strategies are possible to update the state at that point in time: *...
The `file` member type should store its value as a filename relative to the nyan file it was defined in. This would allow that a content definition (`sounds.nyan`) file can...
nyan currently doesn't build for UWP environments and we don't have the necessary knowledge to maintain it. The main difference to normal Windows seems to be that debug symbols are...
Current object, member or namespace IDs are simple `std::string` types, e.g. `fqon_t` or `fqnn_t`. These are sufficient for addressing nyan objects, but are not suitable for advanced operations like: -...
Should be self-explanatory. Let the nyanlib be statically linked at compile-time.
nyan needs a built-in fixed-point type to handle safe arithmetics for fractional numbers. The implementation can be taken from the [openage fixed-point implementation](https://github.com/SFTtech/openage/blob/master/libopenage/util/fixed_point.h). The type identifier could be `fixed`, `fpdouble`...
We currently use gcc's `__builtin_expect()` macro aliased as `unlikely` and `likely` for static branch prediction. Primarily, this optimizes checks for parser errors. This optimizes performance for code paths which are...