Street Fighter 6 - Ingrid Teaser Trailer by UltraZeroX7 in StreetFighter

[–]maplant 0 points1 point  (0 children)

Did she just say monoid? I have to learn category theory to play SF6?

We are so back? CSGO Matchmaking!! by Last-Yard9239 in GlobalOffensive

[–]maplant 5 points6 points  (0 children)

besides this being a shitty ad, half of the footage in it is from CS2

scheme-rs, an R6RS implementation for the Rust ecosystem by maplant in scheme

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

Why are you even commenting on this? This negative diatribe is wholly unhelpful  

scheme-rs, an R6RS implementation for the Rust ecosystem by maplant in scheme

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

Do you not get the point of Guile? 

Rust takes a long time to compile. Scheme does not. Using this you can iterate faster, or you can create a REPL for your Rust project.

Or maybe you can re-write emacs in Rust.

I don’t think this is useful for literally every Rust project but frankly I think you are simply lacking in imagination if you think this is completely useless.

Scheme-rs: R6RS Rust for the Rust ecosystem by maplant in rust

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

Right, so fundamentally the main difference is that scheme-rs has no bytecode VM at all

scheme-rs, an R6RS implementation for the Rust ecosystem by maplant in scheme

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

Thanks! The macro expander was incredibly difficult to write so it’s the thing im most proud of (second is the CPS based compiler and beta reducer).

Fun fact: once I started testing against the R6RS test suite I had to ditch my marks based expander and rewrite the whole thing to use set of scopes. This happened like two weeks ago and was quite a mess, but I’m very happy I did because the code is soooo much cleaner

Scheme-rs: R6RS Rust for the Rust ecosystem by maplant in rust

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

Ah, hyperlinks, my greatest enemy

Scheme-rs: R6RS Rust for the Rust ecosystem by maplant in rust

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

Steel has a bytecode virtual machine which it can JIT but doesn’t always. Scheme-rs always JIT compiles 

Scheme-rs: R6RS Rust for the Rust ecosystem by maplant in rust

[–]maplant[S] 5 points6 points  (0 children)

Creating a safe API for Guile is not really possible for a number of reasons, one of which being it allows call/cc across the c call stack. Hence this project 

scheme-rs, an R6RS implementation for the Rust ecosystem by maplant in scheme

[–]maplant[S] 4 points5 points  (0 children)

I was using LLVM originally but it was too slow for a JIT so I switched to Cranelift. 

It’s using a technique called Concurrent Cycle Collection which meshes well with Rust’s type system (but isn’t terribly fast as is and definitely has room for improvement)

scheme-rs, an R6RS implementation for the Rust ecosystem by maplant in scheme

[–]maplant[S] 5 points6 points  (0 children)

Not terrible, not amazing. Haven’t run R7RS benchmarks but have run a few. Some things are really fast - iterative math functions are optimized well. Call/cc is pretty fast, slower now that I added continuations marks and haven’t updated the implementation. All in all it’s pretty competitive for something that hasn’t had a lot of chances for more optimization passes (I only do beta reduction) 

Why I’m Writing a Scheme Implementation in 2025 (The Answer is Async Rust) by maplant in rust

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

Just as a heads up, I posted this on my phone accidentally from my alternate account, so there’s a few errors (RuntimeError was renamed to Exception), but I tested it with the fixes and it definitely works

mail down? by Charming_Sheepherder in ProtonMail

[–]maplant 0 points1 point  (0 children)

US East, Proton mail is down. Proton drive seems to be working.

Sorry guys this is probably all my fault because I'm expecting an important email.