asmjit
circle
Our great sponsors
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.
circle
-
How difficult would it be to make a c++ compiler
Sean Baxter created a front end c++ compiler by himself, using llvm for the back end and the gcc or clang stl. I think it took him a couple of years. https://www.circle-lang.org/. Before this happened I heard a couple of different people claiming that there would never be a totally new compiler as it was too much work.
-
Toward a TypeScript for C++"
The real Typescript for C++ is Circle.
Just like Typescript to JavaScript, the syntax is an evolution of what already exists, not a completely different syntax.
-
A Metaobject Protocol for C++ [pdf]
Sean Baxter's Circle [1] is arguably the spiritual successor to MOP.
-
Circle Evolves C++ [video]
Context: https://github.com/seanbaxter/circle/blob/master/new-circle/...
Note that Circle is not an F/OSS compiler as someone pointed out before. This however doesn't make Circle less relevant, because it is actually a testament to show that C++ could have been much better without the claimed breakage. If Circle does provide a number of desirable features and its compiler can be built by a single person, then why shouldn't the committee do the same?
-
My (Herb Sutter's) C++ Now 2023 talk is online: “A TypeScript for C++”
From all wannabe C++ replacements candidates, the only language that is really a TypeScript for C++, is Circle.
For whatever reason, Herb Sutter decided to ignore this language on the presentation.
This is the only one with the syntax based on C++, incrementally changing the features via #pragma settings.
"Circle Fixes Defects, Makes C++ Language Safer & More Productive"
https://www.youtube.com/watch?v=x7fxeNqSK2k
"Circle Evolves C++"
- File for Divorce from LLVM
-
Making C++ Safe Without Borrow Checking, Reference Counting, or Tracing GC
The second someone makes a successor language that seamlessly/directly interops with C++ _AND_ has the level of build/IDE tooling that C++/Rust have, I'm on board.
The closest thing right now is Sean Baxter's "Circle" compiler in "Carbon" mode IMO:
https://github.com/seanbaxter/circle/blob/master/new-circle/...
Unfortunately, Circle is closed-source and there's no LSP or other tooling to make the authoring experience nice.
- Circle-lang: A feasible, simple, and immediate way for C++ to break out of the rut it's been in. Surprised more people aren't talking about it.
-
Recurrence-expression is a programmable superset of fold-expression
I read through the whole of https://github.com/seanbaxter/circle/blob/master/new-circle/README.md and man, I'm drooling. Awesome work, kudos.
-
Dropping support for old C++ standards
Have a look at Circle from Sean Baxter [0]. It's pretty impressive.
[0]: https://github.com/seanbaxter/circle/blob/master/new-circle/...
What are some alternatives?
fasmg - flat assembler g - adaptable assembly engine
raspberry-pi-os - Learning operating system development using Linux kernel and Raspberry Pi
mir - A lightweight JIT compiler based on MIR (Medium Internal Representation) and C11 JIT compiler and interpreter based on MIR
dts2hx - Converts TypeScript definition files (d.ts) to haxe externs (.hx) via the TypeScript compiler API
oneDNN - oneAPI Deep Neural Network Library (oneDNN)
mdspan - Reference implementation of mdspan targeting C++23
mlibc - Portable C standard library
papers - ISO/IEC JTC1 SC22 WG21 paper scheduling and management
dynarmic - An ARM dynamic recompiler.
CppCoreGuidelines - The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++
Cwerg - The best C-like language that can be implemented in 10kLOC.
meta