Skip to content

Instantly share code, notes, and snippets.

/home/ezyang/Dev/rust-sandbox/test.rs:13:20: 13:27 error: cannot borrow `*z` as mutable more than once at a time
/home/ezyang/Dev/rust-sandbox/test.rs:13 let x = &mut *z;
^~~~~~~
/home/ezyang/Dev/rust-sandbox/test.rs:12:24: 12:25 note: second borrow of `*z` as mutable occurs here
/home/ezyang/Dev/rust-sandbox/test.rs:12 let r = foo(z);
^
/home/ezyang/Dev/rust-sandbox/test.rs:12:24: 12:25 note: old loan gen'd here
/home/ezyang/Dev/rust-sandbox/test.rs:12 let r = foo(z);
^
/home/ezyang/Dev/rust-sandbox/test.rs:7:4: 16:5 note: old loan kill'd here

Keybase proof

I hereby claim:

  • I am ezyang on github.
  • I am ezyang (https://keybase.io/ezyang) on keybase.
  • I have a public key whose fingerprint is 4BC5 AC12 3110 82F3 B06F 01B0 96C0 0CE8 C9B8 55B2

To claim this, I am signing this object:

Please add the following two keys to my GHC committer account:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDADGfn5WgodBZjJoA1KEKSCsFzxeKwiCFNLm4UuL32XCOtJtaEeJrSXwCqnkNtTm7RCknwL5A1xc7Qx2Tkde+XtlD6wEKSMqE6I6xYPtDRJ4yo9n25ujJBwi7GmAqp9SPEGfs98IFaySAmUN5bt/OXXuNHtc9SFqhwXajKA9d0ks6akugAEgeOpCd9KBe/SzDVp9cPVFg5wgncbFcxwlhJYh7AwnxlblR3IIxULPWR//n6Jy+4aPseyL11ViD+aoELBgypwPYa1exPPr6GaHWm8zwC0735zrPmn3WzU3slC5TVTuuvhyLlEw3J6qwrN6Gehn7PMTHsJbPOfLQfB8ZP ezyang@market.scs.stanford.edu
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCz/VWtZwUOWtyfOBRfCm22Xswemri3n9ekpLHiHwR14CFmjuxGTjVQLCavSmmRw9395Nyr8Nel2bcduTx4Y0wuEwLWcn2K0kD322JaRUXOzmmJZBgwneh8H/HltLTETOivcLzPOwZ/Oylftt9O7j/EyIrho4rPBSh8/56Vn36CU9z9W3SgC+IOLl+ql9LdC7iyN6gthmx/MOpXePYvqbZQstdham6XkX9oPKi4y38aswrPpcyLK0w78j7WS+P+7D/96yxDV0KFIupjmbssqIX66CLRme7ZwtUvDY8XTIn1m6MYLgyPC5jFsleGlHOQhaH9U8TkW+mJYkz/alAHwnr7 ezyang@sabre
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxXP4cbz8vH+Xb1OTygO/CxDa/yZyojfHVMyjwsoK4pZ54GPLe+/NGwPG/jx/46lyxOfIeXz+jkxqgI3dNY50tAyvdRg3G90l8fE6Ze+AzWGTuXJJh/6WvV28KQdixYFGqIWnVSGf1GpsGwLMYsh+Q1dif/q/wdSlZc9tfzHnpeJ1Kh/a5O6FW2SLsq0E/TP9KaxiTLrstMaY7VxCmTfRZFloajnZPMavoAmSQjc6+jkVVmypPku32Cld9Is3vO3NNBlk0Kk4PMigXEQ+v05uudRD94kpzUFXHkeSq7l5447EeTqQqY4LfVdPbKxJnKszZut4WOwKyxorslJbyPAxZ t-edyang@cam-05-unx
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxXP4cbz8vH+Xb1OTygO/CxDa/yZyojfHVMyjwsoK4pZ54GPLe+/NGwPG/jx/46lyxOfIeXz+jkxqgI3dNY50tAyvdRg3G90l8fE6Ze+AzWGTuXJJh/6WvV28KQdixYFGqIWnVSGf1GpsGwLMYsh+Q1dif/q/wdSlZc9tfzHnpeJ1Kh/a5O6FW2SLsq0E/TP9KaxiTLrstMaY7VxCmTfRZFloajnZPMavoAmSQjc6+jkVVmypPku32Cld9Is3vO3NNBlk0Kk4PMigXEQ+v05uudRD94kpzUFXHkeSq7l5447EeTqQqY4LfVdPbKxJnKszZut4WOwKyxorslJbyPAxZ t-edyang@cam-05-unx
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAxDoJ6C1oKYT/wkxLuQPxylQsYEWiulWumGI7ShQ7KhKZo2T/9t4OD0lsMYAZP2FnwjIkD1SIVetUqb8/4JtY9Oqyvx72QoXk+TFQ4gDLXLuIovF9DpHgZOnYzEk8IAQE4DmFkT94YSwPJzST3FfuGUpfwpE3ouOdRmUs+yxbOQrx+7IfhhLdRCYDgCyzAKP9bkfRlVJ6QJLxFFpj8H4zPlwQd+QggFWKkhL9t/KTvPZ9I7zpF95lfOtgSlNlUNCBuWzdNkH7f4KoF2IkCfGQQ5U/8jjdngDHjDToL7cjLddOO2zvbAl0kqJpkvBBaA36Goe3trm9TLKc4fPnq0leqQ==
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAvPFdNkCBdTqqKVsvI1URwYtsIZz4YwqHE/99nDfB22F5/tFMHVayTwLe6LLPu4U8YaOW01xHnQTOh+Y/dkaXDscV5XzwniPhueRdkU31TH2cgfq7LebIpoPa3vzwzdioq5GY0M2KH6qv/Ro11RDho8VKPRHZhnMlBDBU7kOKy+9aL/LcJTEaEMO1WzgG17rKQVScKMzqcjgZ7150hE9eeIDA8NwH9e4fq5X2qTwLYpz2ndq3X+B/ugq5U1s/b5JxSoQQth0RKwonAq6mbixBj6FYEpUqpkAksmJXqW4d0kG0D9EAUEFDM9drY9r3azaURT9yJLDTvFJStIZ1Am54xQ== ezyang-sabre
@ezyang
ezyang / Productive.hs
Created June 10, 2016 09:51
Productive coprogramming in the Par monad
{-# LANGUAGE Rank2Types #-}
{-# LANGUAGE ExistentialQuantification #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE InstanceSigs #-}
module Productive where
-- | Productive coprogramming in the Par monad. Based off of
@ezyang
ezyang / ghc-make.rst
Created August 22, 2016 08:49
Notes on GHC make

How ghc --make works

In abstract, the job of ghc --make is very simple: compute a dependency graph between modules, and rebuild the ones that have changed. Unfortunately, the code in GhcMake is quite a bit more complicated than that, and some of this complexity is essential to the design of GHC:

  • Interaction with GHCi involves mutating process-global state.
@ezyang
ezyang / GhcSort.hs
Created September 27, 2016 21:21
A simple frontend plugin that prints all modules of a project in topological order
module GhcSort where
import GHC
import GhcPlugins
import DriverPhases
import Control.Monad
import Data.List
import Data.Maybe
import System.FilePath