The {pnk}f(eli)x Blog

The informal ramblings of an ex-pat PL enthusiast

Detective Work on Rust Closures

I have recently been trying to keep myself abreast of a flurry of discussion about reforming the design of Rust closures. Niko has a series of blog posts (1, 2, 3, 4, 5, 6, 7, 8); the content of some of those posts were further discussed at Rust team meetings (11, 12, 13, 14, 15, 16), and there have been some more formalized proposals with their own set of discussions: (9, 10).

There are also associated github issues (17, 18, 19), though without sufficient context the discussion in the github issues may not always be intelligible.

Some of the links above are more about “Dynamically Sized Types” (DST), a related topic, as we shall see.

This post is my attempt to condense all of this information down into something where I can see all the pieces at once, and discard the red herrings along the way.

Rusty Chain Puzzle 1.

I have been trying to get my feet wet programming in Rust.

A month and a half ago, I thought “Maybe I will hack up an Earley parser in a variety of languages, including Rust.” That sent me down a long path of learning about how Earley parsing works; I have not yet written up my results from that investigation, and I still have not written the Rust version of the code.

Last weekend, I sat down and said, “Let’s try a simpler goal: A couple simple exercies, maybe taken from Knuth’s TAOCP” This was indeed a much simpler goal, but it was more difficult than I had expected.

Implicit Versus Explicit Finalization

(This post is largely a response to Niko Matsakis’s blog post Destructors and Finalizers in Rust. I started composing it as a comment there, but eventually realized I needed more breathing room.)

I agree wholeheartedly with Niko’s statement that the Boehm paper “Destructors, Finalizers, and Synchronization” is a really nice discussion of this topic. However, a significant portion of the destructor/finalizer design space is only briefly discussed in that paper, and I worry that Niko’s post overlooks it.

Resurrected (Hello Again World)

It’s Clobbering Time

Remember that thing I said back at the end of 2012? That thing? That thing about the important detail that:

the _deploy/ subdirectory is itself a clone of the targeted github repository, with the gh-pages branch checked out.

It turns out this is really important detail.

Here’s why: For my first blogging act of the new year, I inadvertently destroyed my own blog.

Hello World

First post! I am attempting to move my blog to GitHub Pages.

After seeing the results of others, I figure I will start with Octopress and see how that goes.