Log in

No account? Create an account
Two projects that came to fruition this week - Lindsey Kuper [entries|archive|friends|userinfo]
Lindsey Kuper

[ website | composition.al ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Two projects that came to fruition this week [Jul. 13th, 2012|06:32 pm]
Lindsey Kuper
[Tags|, ]

This has been a busy week. First, two days ago my advisor and I submitted a paper to POPL about what we've been up to for the last six months. Here's the abstract of our paper, which is called "A Lattice-Theoretical Approach to Deterministic Parallelism with Shared State":

We present a new model for deterministic-by-construction parallel programming that generalizes existing single-assignment models to allow multiple assignments that are monotonically increasing with respect to a user-specified partial order. Our model achieves determinism by using a novel shared data structure with an API that allows only monotonic writes and restricted reads. We give a proof of determinism for our model and show that it is expressive enough to subsume diverse existing deterministic parallel models, while providing a sound theoretical foundation for exploring controlled nondeterminism.

There's also a Redex model, and the tech report that accompanies the paper will be up within a week or so. Hooray!

Second, the Rust team released Rust 0.3 yesterday, including, among other things, the feature I worked on for the first part of the summer, suffix inference for integer literals. I'm proud of this, since having to write suffixes on int literals was one of the more annoying things about the language (we had it tagged with "papercut" in the issue tracker).

Next, I'll be working on traits for Rust, but first I head to Oregon for OPLSS!


[User Picture]From: lindseykuper
2012-07-14 07:49 am (UTC)
Just so no one else gets terribly confused (as I was for several seconds), by "that github page" Zach means this github page, the one with the Rust traits proposal, not the other github page I linked to, the one with the Redex model of lambdapar.

I think the Haskell solution to this (since it looks like interfaces in their current form are basically typeclasses) is to only allow one instance per class

Yes; that's exactly what we want. "One instance per class" is the Haskell counterpart of our "only one implementation of a trait per type" plan, except that Haskell enforces it at link time, and we want to enforce it earlier in the process.

Rust ifaces in their current form are indeed kind of like Haskell typeclasses. I would argue that they're getting more like Haskell typeclasses with this proposal, because they'll allow default implementations like Haskell typeclasses do, and they'll have instance coherence.
(Reply) (Parent) (Thread)
[User Picture]From: zacharyzsparks
2012-07-16 09:02 pm (UTC)
itt: zach forgets how hash tables work >.<;
(Reply) (Parent) (Thread)