What's everyone working on this week (50 / 2015)

Only a few weeks left this year. What are you folks doing in Rust-land?

Since I’ve given up on writing/finishing that toy compiler for university homework, I’ll be back at doing more MIR translation work. Once this lands, implementing function calls will be easy, but nevertheless a huge milestone.

2 Likes

I've released the first version of my machine learning library, rustlearn.

So far, I've implemented logistic regression, decision trees, and random forests, for both sparse and dense data. I'm probably going to try adding a few more examples using public datasets before moving on to hyperparameter search and regression/clustering models,

2 Likes

This week is a work week, so in a few minutes I'll be boarding a plane to Orlando. Excited to see people and get some work done!

I'm continuing my work on various red black tree implementations here. So far I've only got one that's not completed tested nor cleaned up, but it's 100% safe and not too convoluted :smile:. I'm especially proud of the macro I wrote to verify the tree structure, basically I can write:

verify!{ tree =>
  <B.2>
B.1   <R.4
    B.3
};

It saves me SO much typing in the tests.

Edit: to clarify, the above macro call would expand to this:

expect!(&tree.root.as_ref()).to(be_some().value(&Box::new(node(Color::Black, 2))));
expect!(&tree.root.left().as_ref()).to(be_some().value(&Box::new(node(Color::Black, 1))));
expect!(&tree.root.left().left().as_ref()).to(be_none());
expect!(&tree.root.left().right().as_ref()).to(be_none());
expect!(&tree.root.right().as_ref()).to(be_some().value(&Box::new(node(Color::Red, 4))));
expect!(&tree.root.right().left().as_ref()).to(be_some().value(&Box::new(node(Color::Black, 3))));
expect!(&tree.root.right().left().left().as_ref()).to(be_none());
expect!(&tree.root.right().left().right().as_ref()).to(be_none());
expect!(&tree.root.right().right().as_ref()).to(be_none());
2 Likes

For the work on Collenchyma and Leaf, we packed the first standalone crates.

  • rust-cuDNN - a safe wrapper around CUDA's cuDNN library (high-performance Neural Network algorithms)
  • collenchyma-BLAS - the Collenchyma library for backend-agnostic BLAS operations on CUDA, OpenCL and common host CPU
  • collenchyma-NN - the Collenchyma library for backend-agnostic Neural Network operation on CUDA, OpenCL and common host CPU
  • rust-cuda and rust-opencl - safe, zero-cost Rust wrappers for standalone CUDA and OpenCL support are next.

Today we work on Collenchyma memory benchmarks and then - now that the basic libraries and computation is in place - head over to Leaf to get the first Machine Intelligence benchmarks for Rust and see how they compare to the Python, C, C++ based Machine Intelligence Frameworks. We are super excited, to share the results with you, guys. :heartpulse:

5 Likes

I got encryption working in my port of a Linux backdoor written in C that I use at work. I also got remote file downloads finished. So far, the backdoor is less than half the size of the C implant due to not needing to statically link it with openssl, and the file download is ~60 times faster since I can use the buffered reader. This week I'll be working on remote file uploads and code cleanup.

I'll try to release the first version of my new color library, which is meant make linear color calculations and conversion easy and accessible for anyone. There are still some things to do, besides a proper readme and complete documentation, but it's at least public now, so any pre-release feedback is welcome.

I'm working on Rustupefy - A script to automagically transform vim into a stunningly beautiful and fast IDE for rust

I'm currently working on a level loader for Quake 3, that I'm going to turn into a level viewer for same.

1 Like

I'm currently done with university and between jobs so I'm putting all my time into my game engine gunship. I'm currently fixing up mesh loading with the hopes of being able to introduce animation into my game sometime soon.

2 Likes

I finally finished the benchmarks for version 0.3.0 of Iomrascálaí and released it! Version 0.3.1 should be out in a few weeks and 0.4 some time in 2016. Integrating Caffe or Tensorflow will be an interesting challenge. Especially if I want to have the ability to build with or without it.

More details here.

Hi everyone, first post here :smile:
I'm working through the Advent of Code puzzles (I've been studying Rust for a few months now but I'm still quite a newbie, so I figured this would be a good way to start really learning the language).
My repo is here (I've started late so I'm only at day 3)

Please feel free to point out what I'm doing "wrong" if you have a chance to look at the code!

I published the fast substring search (also byte strings) crate that I said I would do some weeks back :smile:. Its pcmpestri (optional) powered substring search is quite fast (much faster than glibc's memmem). You can also use this for fast bytestring search, which libstd or libcore don't have themselves yet.

1 Like

Interesting. Your approach is quite compact, while I tried to write more verbosely. I'm also quite new to rust but definitely enjoying myself. My adventofcode repo is here: github

My background is in Ruby so my style tends to be very compact... sometimes too much so :smile:

I'm working on advent of code puzzles too.

Here are my solutions.