User Tools

Site Tools


rust:narrative

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
rust:narrative [2020/03/24 13:49]
scarl [Week of 3/16/2020]
rust:narrative [2020/03/31 15:10] (current)
scarl [Week of 3/23/2020]
Line 149: Line 149:
 ====Week of 3/​23/​2020==== ====Week of 3/​23/​2020====
 ---- ----
-Today, it was determined the university library must close to the public. They came up with a method to continue to allow folks to check out various media, but just the idea that library ​is closing ​sets me adrift - even though I am Very Online and have other ways to obtain materials that I MUST HAVE to weather this thing. And yet and yet and yet...it is all very psychologically curious how this depresses my work instinct.+Today, it was determined the university library must close to the public. They came up with a method to continue to allow folks to check out various media, but just the idea of closing the library sets me adrift ​(no Raulston Listening Room, no Center for Teaching) ​- even though I am Very Online and have other ways to obtain materials that I MUST HAVE to weather this thing. And yet and yet and yet...it is all very psychologically curious how this depresses my work instinct. 
 + 
 +The ACM Digital Library has a video from Applicative '16 by Steve Klobnik discussing the "​History of Rust." At first that seemed funny (Rust hit version 1.0 in 2014) but development really started around 2006. This was a good find given I've been interested in learning about the motivations for Rust for some time. 
 + 
 +Assumed the project was started at Mozilla Research which is...not quite true. It was an open-source pet project of Grayson Hoare (who worked at Mozilla) for 4.5 years before Mozilla officially picked it up. Or so I gather from Steve'​s talk. The overarching goals were pretty much same then as now: memory safety, performance,​ concurrency protections. Originally it did have GC, but once the type system people at Mozilla got on it the GC went away and the memory safety came from the compiler. 
 + 
 +The biggest takeaway came from the Concurrency section; here, Klobnik showed two methods of updating vector elements using threads, first using Thread primitives (thread::​spawn,​ Arc, Mutex) and then using the crossbeam crate. My examples all use the primitives, but the [[https://​crates.io/​crates/​crossbeam|crossbeam crate]] does some magic that enables the type system to figure out when atomic reference counts (Arcs) and mutexes are needed, and when they aren'​t,​ greatly simplifying our code. So new TODO: [[https://​docs.rs/​crossbeam|learn crossbeam.]]  
 + 
 +  ​
  
 ====Week of 3/​30/​2020==== ====Week of 3/​30/​2020====
 ---- ----
 And so it goes... ​ And so it goes... ​
rust/narrative.1585075760.txt.gz · Last modified: 2020/03/24 13:49 by scarl