New week, new Rust! What are you folks up to?
With the 0.5 release of multipart out of the way, I think I’m going to start working on a prototype of a game concept I’ve been working on for a while.
I described the high-level concept in a reddit post from a while back. Unfortunately, my graphic designer friend never had the time to help me design the game so I’m stuck with programmer art until I can find someone who will help me out.
I haven’t committed much time to actually coding a prototype but I’ve been working on the architecture in my head; I want the core logic to be scalable in parallel so that it can potentially support massive constructions and run them at absurdly high tickrates. I’ll have to do some experimentation with this to decide what is the best approach to process all the gates in parallel: iterate and update with lock-step synchronization, iterate and update with relaxed synchronization via atomics, or a push-update which only recalculates the output of gates which had a change on their input, using an atomic queue and a “tick”, that is just a rate at which regularly updated gates (such as clock signal generators or gates which draw information from outside the circuit) change their output.
Finished the 0.2 release of my gettext crate, my first real library for Rust.
The major hurdle for the 1.0 release will now be parsing the C-like plural expressions, which I’m terrified of since I haven’t ever completed a proper parser. Python, being dynamic, utilizes a beautiful, horrible hack for this: it replaces the C syntax elements with its own (
and, etc.) and
evals the resulting string. Sadly (thankfully), we can’t do that in Rust.
Other than that, the usual polish will be required: finishing the API and creating a whole lot more test cases.
The migration to Rust for ProDBG https://github.com/emoon/ProDBG just landed in master. There is still lots to do and no actual debugging is possible yet. Next up is to get some basic window handling running and basic debugging. After that I will likely start to working on a Windowing docking system which will be made as a separate crate for anyone to use.
I gave my second talk on Rust!
Slides (in Russian)
Quotation of Andrei Alexandrescu on slide 50 is a bit out of context, check the provided link.
I’d just like to add that the benchmarksgame (which is cited in slide 8) has three additional entries in the queue (some of which since September) that would make Rust look faster than C++ overall.
Nice! We need more performance-oriented pictures for presentations In the talk itself I’ve focused on the results from the Servo paper, but the screenshot of benchmarksgame provided a better picture for the slide.
I was planning to hand-roll something, but I’ll definitely look into LALRPOP more. Thanks!
Graph transformations and analyses for the graph utilities in Cripes, a parser generator/optimizer toolkit in its early WIP stages.
Prototyping a Cargo inspired build tool for Atmel AVR MCUs.