|6 months ago||4 days ago|
|GNU General Public License v3.0 or later||Apache License 2.0|
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.
Blog Post: Next Rust Compiler
7 projects | reddit.com/r/rust | 25 Jan 2023
In 2022, we merged a project that has a huge impact on compile times in the right scenarios: incremental compilation. The basic idea is to cache the result of compiling individual functions, keyed on a hash of the IR. This way, when the compiler input only changes slightly – which is a common occurrence when developing or debugging a program – most of the compilation can reuse cached results. The actual design is much more subtle and interesting: we split the IR into two parts, a “stencil” and “parameters”, such that compilation only depends on the stencil (and this is enforced at the type level in the compiler). The cache records the stencil-to-machine-code compilation. The parameters can be applied to the machine code as “fixups”, and if they change, they do not spoil the cache. We put things like function-reference relocations and debug source locations in the parameters, because these frequently change in a global but superficial way (i.e., a mass renumbering) when modifying a compiler input. We devised a way to fuzz this framework for correctness by mutating a function and comparing incremental to from-scratch compilation, and so far have not found any miscompilation bugs.
Cranelift's Instruction Selector DSL, ISLE: Term-Rewriting Made Practical
2 projects | reddit.com/r/rust | 21 Jan 2023
If you've got more thoughts on this, filing an issue is always a good way to either start a discussion or at least put the information in a permanent place we can find later! It looks like we don't have any issues related to this in our tracker at the moment.
Kernel-WASM: Sandboxed kernel mode WebAssembly runtime for Linux
4 projects | news.ycombinator.com | 20 Jan 2023
This actually seems to be experimentally supported by some runtimes, like wasmtime.
Allocating Heap with Cranelift
3 projects | reddit.com/r/rust | 19 Jan 2023
So, does someone know how to allocate memory on the heap using Cranelift? I've seen instructions like heap_addr, heap_load and heap_store so there should be some way (altrough I don't understand why we can't use the normal load and store here..). create_heap would be my best guess, but it takes a HeapData which confuses me. Dafuq is an index_type, HeapStyle and offset_guard_size? How do I get a GlobalValue for it? How do I free it? Or maybe I should just use C's malloc/free instead... On the other hand direct support for heaps seems to be removed? Sigh. I'm confused.
Is coding in Rust as bad as in C++? A practical comparison
15 projects | reddit.com/r/rust | 5 Jan 2023
The only path forward here would be to bend rustc/MIR for streaming codegen (and then bolt it to something like lightbeam).
Hey Rustaceans! Got a question? Ask here (1/2023)!
11 projects | reddit.com/r/rust | 3 Jan 2023
But, am I mistaken in thinking that it isn't available for armv6 (based on the releases seen here)
Inko in 2023
3 projects | reddit.com/r/ProgrammingLanguages | 2 Jan 2023
For instance the docs used to call out that Cranelift would not do any inlining (e.g. because WebAssembly modules have typically already gone through an inlining pass), but earlier this year they decided they do actually want inlining support: https://github.com/bytecodealliance/wasmtime/issues/41273 projects | reddit.com/r/ProgrammingLanguages | 2 Jan 2023
They're also actively working in this area, for example the recently added equality saturation framework and the pattern matching DSL it builds on.
Out of the loop: WASM for non-web projects
8 projects | reddit.com/r/rust | 1 Jan 2023
Do you consider LLVM a complicated software? And are there any alternatives and how they compare to LLVM?
6 projects | reddit.com/r/ProgrammingLanguages | 29 Dec 2022
As far as I know, there is QBE, which is actually kinda underrated, and Cranelift, mainly designed for JIT compilation
What are some alternatives?
wasmer - 🚀 The leading WebAssembly Runtime supporting WASI and Emscripten
SSVM - WasmEdge is a lightweight, high-performance, and extensible WebAssembly runtime for cloud native, edge, and decentralized applications. It powers serverless apps, embedded functions, microservices, smart contracts, and IoT devices.
wasm-pack - 📦✨ your favorite rust -> wasm workflow tool!
wasm3 - 🚀 A fast WebAssembly interpreter, and the most universal WASM runtime
trunk - Build, bundle & ship your Rust WASM application to the web.
mold - mold: A Modern Linker 🦠
PyO3 - Rust bindings for the Python interpreter
pybind11 - Seamless operability between C++11 and Python
wasi-libc - WASI libc implementation for WebAssembly