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:
| /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 |
I hereby claim:
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 |
| {-# 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 |
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:
| module GhcSort where | |
| import GHC | |
| import GhcPlugins | |
| import DriverPhases | |
| import Control.Monad | |
| import Data.List | |
| import Data.Maybe | |
| import System.FilePath |