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:
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 |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> | |
<script src="http://d3js.org/d3.v2.js"></script> | |
</head> | |
<body> | |
<script type="text/javascript"> | |
/** | |
* A convenient function for taking a transformation (with rotation) on |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> | |
<script src="http://d3js.org/d3.v3.js"></script> | |
<style> | |
path {stroke-width: 4px; fill:none; stroke:#000} | |
circle {fill:#000} | |
</style> | |
</head> |
pub unsafe fn alloc_mega_group(mblocks: nat) -> ~Block { | |
let n = MBLOCK_GROUP_BLOCKS(mblocks); | |
let mut prev_link = &mut free_mblock_list.p; | |
let mut best: Option<(&mut BlockData, &mut BlockMeta)> = None; | |
loop { | |
match prev_link { | |
&None => break, | |
// NB: need to match it out, so we don't take out a | |
// reference on prev_link that will interfere with the | |
// take() |
pub fn new(n: nat) -> MBlock { | |
let ptr = unsafe { aligned_alloc_raw(MBLOCK_SIZE as size_t, (MBLOCK_SIZE * n) as size_t) }; | |
assert!(!ptr::is_null(ptr)); | |
let mb = MBlock{ptr: ptr}; | |
// XXX should this really be here? | |
unsafe { | |
let mut block = mb.first_block_ptr(); | |
let mut bd = mb.first_bdescr_ptr(); | |
while (block <= mb.last_block_ptr()) { | |
(*bd).data.start = cast_ptr(block); |