asmjit
mlibc
Our great sponsors
asmjit | mlibc | |
---|---|---|
9 | 4 | |
3,801 | 763 | |
1.7% | 3.4% | |
8.2 | 9.6 | |
about 1 month ago | 7 days ago | |
C++ | C | |
zlib License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
asmjit
-
The 6502 instruction set as a database
Some other instruction sets in some JSON: https://github.com/asmjit/asmjit/tree/master/db
-
30 years of DOOM: new code, new bugs
The attentive reader may notice that this code is from a third-party library. So, we didn't want to include it in the article at first. However, we found something interesting. In 2017, somebody opened an issue in the asmjit project: the GCC 7.2 compiler issued a warning to the code above. The project authors fixed it:
-
How do I get the registers of a process in C++?
You can use something like https://asmjit.com/ to generate and call x64 code at runtime.
- Ask HN: Recommendation for general purpose JIT compiler
-
Compiler Design in C++
But an easy to create a JIT would be to use https://github.com/asmjit/asmjit, which is used in RPCS3.
-
Are there any low level, cross platform assembly languages that allow jumping to non labels?
You could go the way of https://asmjit.com (or forth) and make it your assembler DSL on top of the low-level call.
-
C++ libraries for filtering collections and expression trees
But if you're willing to get closer to the hardware is https://github.com/bitfunnel/nativejit/ and https://asmjit.com/
- AsmJit
-
Wrapping dynamically generated void(*)() pointers in try-catch?
https://github.com/asmjit/asmjit is nice. But using a JIT seems like a sledgehammer working around a lacking design.
mlibc
- Mlibc: A portable C standard library
-
RTOS vs Standard Kernel for a first Hobby OS
A compiler and libc are entire projects in their own rights. For libc I can recommend mlibc (https://github.com/managarm/mlibc), its designed to be portable for hobby operating systems.
- Mlibc: Portable C Standard Library
-
It Can Happen to You (another case of O(n^2) sscanf parsing)
You don't, here is a (not entirely complete) scanf implementation that doesn't use strlen. Other libc implementations seem to use strlen to feed the input data to a FILE struct so they can reuse their fscanf.
What are some alternatives?
fasmg - flat assembler g - adaptable assembly engine
managarm - Pragmatic microkernel-based OS with fully asynchronous I/O
mir - A lightweight JIT compiler based on MIR (Medium Internal Representation) and C11 JIT compiler and interpreter based on MIR
uClibc - uClibc
oneDNN - oneAPI Deep Neural Network Library (oneDNN)
libtcod - A collection of tools and algorithms for developing traditional roguelikes. Such as field-of-view, pathfinding, and a tile-based terminal emulator.
dynarmic - An ARM dynamic recompiler.
ChakraCore - ChakraCore is an open source Javascript engine with a C API.
Cwerg - The best C-like language that can be implemented in 10kLOC.
kush-os - the kool useful system helper – a from-scratch hobby OS written in C++20
ChrysaLisp - Parallel OS, with GUI, Terminal, OO Assembler, Class libraries, C-Script compiler, Lisp interpreter and more...
toaruos - A completely-from-scratch hobby operating system: bootloader, kernel, drivers, C library, and userspace including a composited graphical UI, dynamic linker, syntax-highlighting text editor, network stack, etc.