Merged
Conversation
kernelwernel
requested changes
Nov 29, 2025
Owner
kernelwernel
left a comment
There was a problem hiding this comment.
Ik a lot of comments here are criticisms in this review, but that doesn't mean the PR in itself is bad. Most of the changes are good, and I didn't feel like it was necessary to point each of the things I liked, since pointing out the problematic parts are more important for the sake of a PR review.
But anyways, I think you did a good job in general. There's just a bit of polishing that's left and some minor modifications. Other than that, it should be good to go.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This change does not affect any existing old usage of the core.
std::vector,std::map,std::stringstream, or any C++ std function that used the heap was replaced withconstexpr std::arrayor raw C-style arrays.std::maphandles gaps and sorts keys automatically, but uses tree traversal (O(logN)). Everything was replaced with manual implementations with instant index accessThe return types of major functions (
brand(),type(),conclusion(),get_brand()) do not longer construct any object in memory, and were replaced with direct pointer returns, so just 4 or 8 bytes. Parallelizable functions were added to manipulate char dataArgument handling is now resolved at compile-time or via direct bit manipulation
Replaced instances of
std::functionwith rawbool(*)()function pointersSince
std::vectorwas removed, custom memory containers likeenum_vectoranddisabled_tech_containerwere added.push_back(enum_flags f)was markedVMAWARE_CONSTEXPR_14. This allows the list to be populated during static initialization.begin(),end(),size(),operator[]: Marked constexpr.The compiler can now potentially optimize loops iterating over these containers into unrolled assembly instructions, because it knows the size and contents of the array at compile time
This allows technique objects to be created as "literals". Instead of the CPU having to run instructions to build these objects when the program starts, the compiler bakes the binary representation of these objects directly into the data segment of the executable