This was a nice little experience report. Most of the deficiencies in Hoot can be blamed on me.
> The error messages can be cryptic.
Apologies! Happy to receive issue reports about specific things that we can prioritize.
> It's even more incredible to know that it's running on a stack the team created themselves, not relying on Emscripten.
Building our own toolchain has proven again and again to have been the right choice. Emscripten would not have been useful for compiling Scheme to Wasm GC. Hoot is one of the few Scheme-to-Wasm implementations that takes advantage of the GC support (and the most mature of them all.)
> My initial understanding of Hoot was that it could compile any Guile program to the Web.
This is indeed the goal. However, that's a big compatibility surface area and we are not there yet. Help wanted! When we reach a critical mass of existing Guile code that "just works" then Hoot will be mature enough to become part of Guile itself as its official Wasm backend.
I was wandering around the expo floor at PAX East last year when I noticed Earthion at the Limited Run demo arcade. I had a lot of fun playing it on the floor so I bought the full game on Steam. It's a quality shmup! For me the difficulty really spikes on stage 3 and that's where I got stuck, though I did make it to stage 4 once or twice. The initial release had some bullet visibility issues that were improved in subsequent updates. The default CRT filter is fun but I turned it off almost immediately for more visual clarity.
It's my favorite comedy of all time. It's been going for over 10 years with a lot of little spin offs along the way. For those that want to take the plunge you can watch the first first ten seasons, Oscar specials, Decker, etc. for free on YouTube. Use this playlist to watch everything in chronological order.
On one hand atproto has content-addressed storage and portable identity that AP still lacks (but could have!), on the other hand atproto is far more centralized. The data layer is decentralized but everything on top is effectively centralized. Phrases like "practical decentralization" and "credible exit" are used to describe this design.
I am excited by the prospect of booting Wasm binaries without any JS glue, but when I've looked at the documentation for the component model and WIT it says that resources are references passed using a borrow checking model. That would be a serious downgrade compared to the GC-managed reference passing I can do today with Wasm GC. Do you know if there are any plans to resolve this mismatch?
Permissions can be handled with capability systems. Keyhive [0] is the furthest along on this. I've also made my own prototype [1] showing how certificate capabilities can be composed with CRDTs.
Guile, being a bytecode VM with JIT currently, loses to Chez/Racket overall but it's honestly quite fast. I can make games that run at a smooth 60fps with infrequent GC pauses. Plenty of room to grow but Guile isn't slow by any means. I've never been a Gauche user but Guile has lots of nice libraries these days.
That's how I see it, too. I used these benchmarks early in Hoot's development as a rough measure of r7rs compliance and only occasionally as a guide for improving performance. I never published my results but I had Hoot passing more of the benchmarks than Guile itself, which I found funny.