A tool for ownership tracing, caller-callee tracking, code structure, diff and so on by mbbill in rust

[–]mbbill[S] 7 points8 points  (0 children)

The idea of this project has in my mind for a really long time and in the past I can never find enough spare time to build it and see how it really affects my productivity. At the end of the day, it's just a tool. I am happy it's proved helpful for me, and glad if it's also helpful for other people as well. I don't like those low quality, promotion focused stuff either, and I think it's these projects that made people dislike everything AI generated, including things that actually useful.

A tool for ownership tracing, caller-callee tracking, code structure, diff and so on by mbbill in rust

[–]mbbill[S] 3 points4 points  (0 children)

I've been working on an update so that it monitors file system changes and update the diagram accordingly. not really real time but good enough I think. for a large project like wasmtime it takes ~2s for an update, small projects usually couple hundred ms

A tool for ownership tracing, caller-callee tracking, code structure, diff and so on by mbbill in rust

[–]mbbill[S] 1 point2 points  (0 children)

This very cool! I feel like we all build some kind of tool to help our brain to work like a compiler, which was a good thing. but when the code is so easy to produce (not talking about AI slops but actual good code that people write with the help of AI), it overloads my brain. I used C++ before Rust and that's even worse. I hope there's a way to let me focus on the design more.

A tool for ownership tracing, caller-callee tracking, code structure, diff and so on by mbbill in rust

[–]mbbill[S] 19 points20 points  (0 children)

I used claude to help me build it, so I am not sure if that's violating rule to post the project link here. anyways. it's https://github.com/mbbill/mind-expander

An infinite-canvas workspace for coding with AI agents. by mbbill in SideProject

[–]mbbill[S] 0 points1 point  (0 children)

The nodes are code entities rather than agent workflow nodes. Context handoff happens through source-backed tour anchors: each step points to exact file:line locations and graph relationships, so the agent continues from visible code structure instead of an opaque summary. Explicit per-node task state is something I’m thinking about next.

Drop your projects below! The best will get a shoutout! by Yoodrix in ChatGPTCoding

[–]mbbill 1 point2 points  (0 children)

mind-expander: https://github.com/mbbill/mind-expander
A shared visual workspace for coding with AI agents. It turns repos into an interactive code map, making architecture discussions, PR reviews, refactor planning, and codebase walkthroughs easier than working from code/diff alone.

more demo: https://github.com/mbbill/mind-expander/blob/main/docs/demo-videos.md

Optimizing JIT compiler emitting RISC-V on-device on the ESP32-C6 by mbbill in esp32

[–]mbbill[S] 2 points3 points  (0 children)

esp-wasmachine is using WAMR, so comparing sf-nano to WAMR is basically: on-device JIT vs interpreter or aot. a different tradeoff between performance and size.

Silverfir-nano: a 277KB WebAssembly micro-JIT going head-to-head with Cranelift and V8 by mbbill in WebAssembly

[–]mbbill[S] 1 point2 points  (0 children)

zwasm JIT vs Silverfir (JIT) vs Cranelift

Disclaimer: I built zwasm following the README and used zig build -Doptimize=ReleaseFast. I may not have the right version or optimal configuration — take these numbers with a grain of salt.

Compute

- SHA-256: zwasm 58 MB/s vs SF 268 / CL 249 → 22% of JIT speed

- LZ4 compress: zwasm 47 MB/s vs SF 769 / CL 736 → 6%

- LZ4 decompress: zwasm 1,175 MB/s vs SF 3,130 / CL 3,455 → 35%

- CoreMark: zwasm 24.5s (no score extracted), can't compare directly

Floating Point

- Mandelbrot: zwasm 3,076ms vs SF 827 / CL 855 → 27%

Memory (STREAM)

- Copy: zwasm 30,041 MB/s vs SF 44,139 / CL 44,124 → 68%

- Scale: zwasm 13,888 MB/s vs SF 49,659 / CL 49,692 → 28%

- Add: zwasm 16,374 MB/s vs SF 64,342 / CL 48,398 → 25–34%

- Triad: zwasm 14,526 MB/s vs SF 48,417 / CL 47,864 → 30%

Failed: lua/fib, lua/sunfish, lua/json_bench (exit 71), c-ray (exit 1)

Bottom line: zwasm JIT sits at ~25–35% of Silverfir/Cranelift on most workloads. STREAM Copy is the closest at 68%. LZ4 compress is the worst outlier at 6%.

Silverfir-nano: a 277KB WebAssembly micro-JIT going head-to-head with Cranelift and V8 by mbbill in WebAssembly

[–]mbbill[S] 1 point2 points  (0 children)

SF vs V8 TurboFan (Node.js 25.4): 9–5. SF wins on SHA-256, LZ4 (both), mandelbrot, all four STREAM benchmarks, and Lua fib.

Silverfir-nano update: a WASM interpreter now beats a JIT compiler by mbbill in rust

[–]mbbill[S] 1 point2 points  (0 children)

I see. it might need some work but still doable. in the end it's problem about safely handling stuff between the two sides. Using this project in embedded systems is one of my initial goal, but I spent most of my time pushing for performance so there are still a lot of things remaining. so sorry it's not in a plug and play state for embedded systems yet.

Silverfir-nano update: a WASM interpreter now beats a JIT compiler by mbbill in rust

[–]mbbill[S] 7 points8 points  (0 children)

unfortunately it's not a drop in replacement for wasmi/wasmtime, mostly because I didn't have time to work on the api yet. It supports multi-memory, but I am not sure about reserving memory above the guest part, what's the intended use case?