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.
I propose adding this library to MAME.
The intent is to use it to replace the x86 and amd64 code emitter logic in the current and potential future MAME drc backend(s). The author of the library has plans (although no timeframe) to support ARM targets in the future, which would likely also be useful for a backend targeting those architectures.
In my opinion, it ticks the boxes in terms of zlib license, mostly tidy C++11 code, no external dependencies, active development, good feature set, Windows/OSX/Linux and MSVC/Clang/GCC support, and a seemingly sensible API.
I have made one change to the source code, uncommenting the definition of the ASMJIT_STATIC preprocessor variable in the api-config.h header; defining it in the build script appeared to be a better option, but caused linker warnings that I couldn't see how to resolve without polluting the rest of the build with the definition.
I have tested compiling and running a driver which uses the library under MSVC and GCC without observing any problems.