ts-native
vox
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.
ts-native
-
Embeddable script compiler for video games
I have gone through 3 iterations and the third was faster than Lua and came close (enough for me) to native C performance with the benchmarks I tried. I'm now on the fourth and hopefully last iteration of this masochistic quest and I'm tired. I want to do this right. I've even made it through much of the dragon book. Apart from the naive solutions I end up wanting to replace in each previous iteration, the problem I keep coming up against is that I can't find many resources that describe interfaces between the host (C++) and the compiled code. I come up with my own ideas for how things should work and look, and then once I finish I can't shake the feeling that there's a better/cleaner/faster way. I start over and come up with better solutions only to feel the same eventually. I want to write solid code that I can feel confident about so I can put this all behind me.
-
[C++] My third attempt at a scripting engine
Here's an example: test.gjs
vox
- The Styx Programming Language
- Vox – multiparadigm PL inspired by D, Jai, and Zig
-
Embeddable script compiler for video games
I chase the same goal with Vox, although it is written in D.
-
SSA && Middle End resources
Just somewhere to point me, because while I do understand SSA a bit though I can't seem to make progress learning about it (dont know where from). I found https://github.com/MrSmith33/vox/blob/master/internals.md which kinda feeds me information but probably not enough.
- Open source compilers that use three address code as IR?
-
Ask HN: Who Wants to Collaborate?
Looking for contributors to Vox programming language/compiler: Statically typed, compiled and embeddable language, primarily focused on gamedev. It uses custom backend to keep low compile-times and small size. Written in D language.
https://github.com/MrSmith33/vox
-
Ast Arenas
Because it is easier to have a free-list in a dedicated array arena, so you could reuse memory when you free it (and you need to grow arrays when you fill them). I was lazy and did 13 array arenas each dedicated to allocating fixed size chunks, from 16 bytes to 64k bytes. Bigger sizes currently go to malloc/free. And I restrict arrays to PoT sizes, so they only request PoT sized chunks from array arenas.
-
Data oriented compiler architecture?
I use this approach in Vox compiler. Everything is stored in arenas including AST nodes and IR. I'm in the process of documenting the design, but I added a bit of description on memory management and IR storage
-
3 address form to 2 address ISA
Tip: Should probably use the Github permalink https://github.com/MrSmith33/vox/blob/35ec440d0c9a475cd4add6093d122cd249b03be9/source/be/reg_alloc/linear_scan.d#L891-L918 so later readers do not go to some random line after you change that file :)
-
Compiler Speed Tests
Here is a CI build
What are some alternatives?
langs
ldc - The LLVM-based D Compiler.
yjit - Optimizing JIT compiler built inside CRuby
oil - Oils is our upgrade path from bash to a better language and runtime. It's also for Python and JavaScript users who avoid shell!
godbledger - Accounting Software with GRPC endpoints and SQL Backends
Raylib-CsLo - autogen bindings to Raylib 4.x and convenience wrappers on top. Requires use of `unsafe`
dmd - dmd D Programming Language compiler
Typesense - Open Source alternative to Algolia + Pinecone and an Easier-to-Use alternative to ElasticSearch ⚡ 🔍 ✨ Fast, typo tolerant, in-memory fuzzy Search Engine for building delightful search experiences
wasmtime - A fast and secure runtime for WebAssembly
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
concise-encoding - The secure data format for a modern world
todomvc - Helping you select an MV* framework - Todo apps for React.js, Ember.js, Angular, and many more