New week, new Rust! What are you folks up to?
I have to finish my masters thesis, now that I passed the last exam. Two weeks left to write down my stuff and then print it.
The imag 0.6.0 release is feature complete. I want to play a bit with it and if there are no severe bugs left, I guess there will be a release this week.
Besides that I'm still thinking about implementing a distributed social network on IPFS with Rust (and a GTK frontend) ... the ideas are there, I know what I want to do, I have a blog article almost finished (I guess I will publish it this week and see what the IPFS community thinks about it) ... but thesis first!
I'm working on my music notation language, melo. Specifically, I'm implementing bar repeats, and modular parts to cut down on the amount of music you have to duplicate.
The language itself compiles to MIDI and draws some inspiration from Rust itself, particularly with regards to error reporting.
I knocked off a couple easy issues in uom
(type-safe zero-cost dimensional analysis) last week and I'm deciding if I want to release v0.17.0 as-is or implement ops
traits (Add
, Sub
, ...) for references first.
Recently I've been parallelizing some parts of Rustracer using rayon / ndarray / ndarray_parallel, which was cool (in particular things like resampling / MIPMap building). I've also been fixing a bunch of bugs in my quest to reduce visual differences with the original PBRT code. I need to keep working on it as @wahn is quickly catching up with me
Here's a recent render that shows kind of where I'm at:
I've also been trying to contribute a bit to openexr-rs. which is a good way to get a bit more familiar with C/C++ FFI, and hope to continue this week.
Still working on LPC82x HAL. I spent some time working on the SYSCON API. I tried to make the API a bit safer, by tracking the initialization status of one of its components at compile-time, but ran into some limitations of the current design. That will require more thought, so I decided to shelve this for later and continue working on making the pin API compile-time safe. I hope to get started on the final phase of that tomorrow.
Finalizing some toplevel declarative stuff in rusty-wam. The basics expected of a Prolog system are mostly there, but I'm preparing to move on to implementing more interesting/modern stuff.
Really nice to read this.
The compiler errors rustc gives you are one of the best things about it. After writing something vaguely similar, I have a huge amount of respect for the people that implemented those.
If you want another source of inspiration on this front, I've heard that Elm was one of the role models for rustc's error messages:
Working on adding multi-completion routines to the excellent rsmpi crate.
Abusing the macro system of course :3
macro_rules! pub_struct {
(
$( # [ $struct_attributes:meta ] )* $name:ident {
$( $( # [ $field_attributes:meta ] )* $field:ident : $fieldtype:ty , )+
}
) => {
$(#[$struct_attributes])* pub struct $name {
$($( # [ $field_attributes ] )* pub $field : $fieldtype , )+
}
}
}
I finally had some time to sit down and toy around. So I've just started a stupid little Rubik's cube simulator. Hopefully I get to the point where I have a cool little GUI and "sophisticated" REPL.
I have rewrote the xch-ceb (A Chemical Equation Balancer) 's parser. Now, it's no recursion needed and regex based.
I am planing to design a electric circuit script language and impl the interpreter in Rust. But, it seens not easy for me really.
I started playing around with nom as an exercise. The goal is to write a parser for a simple 3D file format (I chose STL for that purpose).
Currently I've almost completed ASCII STL parsing and I'll probably do binary as well after that.
Bonus goals include a C API for use in other languages and a small viewer application, either in Rust with glium or vulkano (if I'm brave enough) or in Unity when the C API is done.
Made yet another graphql-parser in rust. This time it's decouple of all the logic and already supports full semantics of graphql query language. Hopefully adopted by other graphql libraries there as an underlying parser library.
Playing around with Rust-to-WebAssembly, to understand how the rust code is mapped onto target Wasm Compile Rust to target WASM, how to strip to 300Bytes?
O'Reilly/RustProgramming, starting chapter 4 on ownership. Also in the progress of figuring out how to install Rust on my NVIDIA Jetson TX2 development board.
O’Reilly/RustProgramming
I got my copy of the book as well and really enjoy reading it (just finished chapter 9 on Stucts
) ...
This week I was still working on zbox v0.4.0, a privacy-focues embeddable file system. Inspired by sqlite, a zero-cost virtual IO layer has been added to file storage with the purpose to simulate random IO errors.