New week, new Rust! What are you folks up to?
Working on rustnish, a reverse proxy pet project to learn Rust. Struggled a bit with modifying requests/responses that are passed through. Also setting up Future types with Tokio/Hyper is hard. But I got lovely help in How do you calculate the Future types of a Hyper Tokio service? from @Ophirr33, so overall my experience with Rust is good
After releasing v0.2.0 of rs_pbrt (with path tracing) I will work on another test scene from here:
Predicted things to do:
- Add code for a sphere to emit light (
AreaLightSource "area"followed by a
- Change the parser to deal with a new shape primitive (
- I baked already an OpenExr texture, which can be used with an infinite light for HDR lighting (in lack of a proper sun&sky simulation in PBRT).
- That means I need support for OpenExr (as a texture input). As a render output it would be nice too.
- I have to implement a new light source (
Not exactly sure what can be done within a week, but the scene and the needed code changes (in the parser and the lib) are the target for this week.
Building a P2P networking stack in Rust. Still in design and prototyping phase. Having loads of fun
Finally converging towards a reasonably efficient and usable interface between parsers and SoA containers for sampling use cases. This was harder than I thought.
Doing the “nand to tetris” course in Rust. You start with a nand function and build up the others, then elementary storage to build bits and registers, then keep piling on until you have a whole virtual machine that has its own flavor of assembly and such.
Right now I’m at the register stage, and trying to come up with a good way to write it. The official version simulates it all in HDL, but for doing it in Rust I have to adjust how time is simulated a bit and such.
I resurrected my old and heavily neglected () OSdeving blog for the purpose of collecting some accumulated thoughts concerning threads as an OS abstraction, and how IMHO that abstraction tries to do too many different things at the same time and ends up doing everything quite badly as a result.
The post features some discussion on which problems I know to be solved using threads today (concurrency, parallelism, and preemption), and how each of these problems could potentially be solved better by a more specialized and focused OS abstraction.
It might be of interest to other people who enjoy OSdeving, or are just too much used to working around the design flaws of operating systems in application code in order to realize that we could just do things better under the hood instead.
Have you seen Joe Duffy’s blog entries on Midori? http://joeduffyblog.com/2015/11/03/blogging-about-midori/. It was an experimental OS, written in a modified C#, that tried a different take to traditional OS designs. The blog entries are a great read.
Oh, yes, Joe Duffy’s blog is one of my favorites on OSdeving, language design and concurrency! It’s too bad that from what I gather of the later articles, the Midori project was eventually canned. I hope someone will eventually take over from there.
Personally, I’d love to get back to OSdeving stuff at some point, if I ever manage to save up enough time budget to feel confident about it again. There would be so many great opportunities for compatibility-breaking architectural rework now that we have decades of experience with the POSIX and WinNT designs and know what worked and what didn’t in the end. But the sheer amount of effort that would be needed in order to truly escape that legacy instead of merely building yet another slightly better UNIX clone is depressing…
Yeah, it was. And Joe is no longer at Microsoft either
How does RedoxOS stack up in your mind? Admittedly I’ve not looked at it closely and so don’t know if it’s “just” an OS in Rust or also has architectural advancement.
Also, I might be hijacking this thread so perhaps this isn’t the channel for discussing that.
You are right, let’s switch to PM for now. If someone else feels nostalgic about this discussion topic, we can always ask some privileged person to extract it into a dedicated public topic later on.