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.
Befunge
-
The Rust Performance Book
1. C compilers don't do a good job, & thus even CPython, which has historically stuck to rather vanilla C, uses computed goto, as described in https://eli.thegreenplace.net/2012/07/12/computed-goto-for-e...
I resorted to similar techniques in optimizing Befunge: https://github.com/serprex/Befunge (See bejit.c & marsh.c/marsh.h)
2. Rust enums are not variable sized, think of them as tagged C unions, where the Rust compiler can sometimes apply tricks to make Option> the same size as Vec
3. match can specialize for straight forward cases, when in doubt use https://godbolt.org
- Ask HN: Recommendation for general purpose JIT compiler
-
Why asynchronous Rust doesn't work
I've found async to be straight forward anytime I've used it. Promise#then is equivalent to callbacks
async/await often requires very little changes compared to synchronous code, whereas reworking a program into callbacks is much more impactful. & the async/await compilation process tends to produce better performance in addition to this. My first async/await work was a few years ago to increase a data importer's performance by an order of magnitude compared to the blocking code
Here's an example where looping made for a callback that recursively called, using async/await I get to use a plain loop:
before: https://github.com/serprex/Befunge/blob/946ea0024c4d87a1b75d...
after: https://github.com/serprex/Befunge/blob/9677ddddb7a26b7a17dd...
I don't see why people find it so complicated to separate begin-compute & wait-on-compute
I've since rewritten a nodejs game server into rust, https://github.com/serprex/openEtG/tree/master/src/rs/server... handleget/handlews are quite straight forward
- Python interpreter written in rust reaches 10000 commits
-
Compilers Are Hard
You'll also find them used in CPython's ceval.c
I use them in both my C befunge implementations:
https://github.com/serprex/Befunge/blob/c97c8e63a4eb262f3a60...
https://github.com/serprex/Befunge/blob/c97c8e63a4eb262f3a60...
openEtG
-
Did any processor implement an integer square root instruction?
For an example of binsearch algo, I recently dipped into this while switching some code from floats to fixed point arithmetic (reducing overall wasm blob size)
https://github.com/serprex/openEtG/blob/2011007dec2616d1a24d...
-
WebAssembly JSPI is going to origin trial
This seems pretty low level. When I wanted async wasm execution (to run multithreaded game ai simulation or to run game ai outside of UI thread) I was able to go with WebWorkers: https://github.com/serprex/openEtG/blob/master/src/AiWorker....
Having the async at the WASM level would help avoid having overhead from serialize/deserialize between web workers. I wrote this years ago, so not sure what progress has been made for having the wasm module running multiple threads. On that front you may still be better off spawning multiple wasm modules
-
A Blue-Eyes White Dragon! A Blue-Eyes White Dragon upon you!
(( dunno which version you're trying, cuz there've been a lot of fan versions after the original went down, but this should be the one most people use ))
-
It's happened. It's finally gone.
Check out the spiritual successor, openEtG: https://etg.dek.im
-
Is it a real job?
This one? https://etg.dek.im/
- Card battler where you build an actual deck.
-
How to instantiate a warp::reply::Response?
If you want a reference to a real code base, there's openEtG's handleget.rs
-
Authoring a SIMD enhanced WASM library with Rust
https://github.com/rustwasm/wasm-pack/pull/1089
Very straight forward changes. Emailed Ashley about helping, no response
Updates to wasm-bindgen shouldn't require a change to wasm-pack. It should expose ways to pass flags down & not have an explicit dependency on wasm-bindgen version
While having a webpack plugin is nice, I since gave up on wasm-pack & added a build-wasm to my package.json's scripts: https://github.com/serprex/openEtG/commit/9997fb098d168920bb...
This way if someone wants to contribute to openetg they don't need to install my wasm-pack fork
-
How do I play
Join us on the official Discord https://discord.gg/qAmfB8T and we can walk you through it. There is a spiritual successor to the game (https://etg.dek.im) and a revival of the game. There are also several methods to still play the original.
-
PC Deckbuilder, without micro transactions / DLCs, not roguelike
Elements. Strictly speaking, this is a collectable card game (MtG style) rather than a true "deckbuilder" but otherwise it sounds exactly like what you are looking for. Heavy emphasis on creative out-of-match deckbuilding and one-off PvE matches. From what I can tell, I think the original game died with Flash, but it appears that fans created a substitute, which I haven't tried: https://etg.dek.im/
What are some alternatives?
qbe-rs - QBE IR in natural Rust data structures
miniTCG - PHP Trading Card Game Application
ubpf - Userspace eBPF VM
oxidizy - Life, in its smallest form.
bug - Scala 2 bug reports only. Please, no questions — proper bug reports only.
shoot_game - 🎮 It is a game using HTML5 Canvas and Vanilla JavaScript.
Rustler - Safe Rust bridge for creating Erlang NIF functions
swift - The Swift Programming Language
rune - An embeddable dynamic programming language for Rust.
freqfs - An in-memory filesystem cache layer based on tokio::fs, with least-frequently-used eviction
minivm - A VM That is Dynamic and Fast
language - Design of the Dart language