Skip to content

Instantly share code, notes, and snippets.

@kquick
kquick / main.rs
Created November 9, 2017 17:54
Rust iterator mystery
use std::fs;
use std::path::PathBuf;
fn show_sizes_vec(file_list: &Vec<PathBuf>) -> u64 {
let sizes = file_list
.iter()
.map(|e| fs::metadata(e).map(|m| m.len()).unwrap())
.collect::<Vec<u64>>();
let totsize : u64 = sizes.iter().sum();
@kquick
kquick / RefrStuff.hs
Last active December 20, 2017 01:46
Type nat specialization
-- Form1: Wrapper type class
withELF1 :: FilePath -> (E.SomeElf E.Elf -> IO ()) -> IO ()
withELF1 fp k = do
bytes <- B.readFile fp
case E.parseElf bytes of
E.Elf32Res [] e32 -> k $ E.Elf32 e32
E.Elf64Res [] e64 -> k $ E.Elf64 e64
@kquick
kquick / package_spec
Created January 9, 2018 22:06
crucible package_spec
[
Project("crucible"),
RepoPackage('crucible', team='GaloisInc', reponame='crucible', subpath='crucible',
#version='6e5330e'
),
RepoPackage('crucible-abc', team='GaloisInc', reponame='crucible', subpath='crucible-abc',
#version='6e5330e'
extraLibraries = [ 'abc' ], dontHaddock=True,
),
RepoPackage('crucible-blt', team='GaloisInc', reponame='crucible', subpath='crucible-blt',
@kquick
kquick / package_spec
Last active March 23, 2018 20:09
Matterhorn package_spec for vernix (python syntax)
[ Project("matterhorn"),
RepoPackage("matterhorn", version="develop", team="matterhorn-chat"),
RepoPackage("mattermost-api", version="develop", team="matterhorn-chat", dontCheck=True),
#RepoPackage("mattermost-api", version="feature/apiv4", team="matterhorn-chat", dontCheck=True),
#LocalPackage("mattermost-api", "/home/kquick/work/Matterhorn/mattermost-api", dontCheck=True),
RepoPackage("mattermost-api-qc", version="develop", team="matterhorn-chat"),
#RepoPackage("mattermost-api-qc", version="feature/apiv4", team="matterhorn-chat"),
#LocalPackage("mattermost-api-qc", "/home/kquick/work/Matterhorn/mattermost-api-qc"),
Package("aeson", "1.2.3.0", dontCheck=True),
Package("asn1-encoding", "0.9.5"),

Matterhorn Project Practices

This document captures some important project practices that we employ. If you want to contribute to Matterhorn, for best results, please follow these practices.

Many of the practices described below are really about serving some overall concerns:

{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE TypeFamilies #-}
module Main where
class Foo f where
type Bar f :: *
-- Attept 1: cannot be used in testfun because Bar is non-injective and Bar f0 is not known to equal Bar f
This file has been truncated, but you can view the full file.
-----BEGIN PGP MESSAGE-----
jA0EBwMC9YZFe1sI2ajx0u0B14jVHc6IxCNmYsKycuSjd0H53tUF1kJMARCWGnZz
cO64VmSepxT30aaqLcI9AtgZ1Ck0/ZpDINC62qCkCzMZQCbnFRNeP4KWtYNCgL1W
jOBeRBOh2DN2kaz6u7MRn5Ml50LhTr/P38h6mKR11Gel8OI8YPAHMn8QusF8yoJK
iGV+IVmRjmTnmXlbOB7Lx0TsiR57at5xlwq+Hb4ugte6/7HA3zfsqgSxdwYv5l78
IB4mn0TWq+XdWJlDj9SqbUKSKwWSzjWp2PJhmbdffRCr0+norU793KCoX5oOlEY+
4KZlRrfVOvumdty4suXyA3H2C+LQq3X7+RDzWDVGISqo6y2ouDxFbHf/F8szB2cs
6E/W5rXxtc6BdaOdvXbybsHtOyHGYN5E+e0htNSvhRDd7DTxnTnUZ1Bf6thw382v
y9xLIVrKYQXnRnZ3qAweFeHZohBd9MbpkOBxkdTk+X54CF+g3sEkZDsLvgJYiSnV
This file has been truncated, but you can view the full file.
QlpoOTFBWSZTWVu0Z3sEQEj/////////////////////////////////////////////5dJfbucd
B3z4B0dBpy7jU3ZuHtsg1mtkASCtsrrSUXL4Mho0NAar6Dj7AXrl8QCgANwB5u3AA59433ovi4+H
16HUqqYj6fe9cN2GFb2O6zbru5bmpmmyBybpspTTRoQ9uFR7UXpgXN1d3T7l8M2fVUFbk6dufLS8
5uAwbzruCpaGnRW7zer12KxabWY97ud7jm3ru7bdyOrF3ZY5DdicgKd9c49OmbKmQZu1Fds73nuq
2egOctgnJTWGqG93XDN4xYjuu+73dRPd28Eeew3cp2nYAAAAAATwPA7FdyDttmgF0sAAAAAcgBGR
lZ1pSWxDDWhTZTz1494okrKnezvaV1CAAautToEQrQuhGt5NHrr3t48nrz3jgyrd7nsGhJbABgIA
AAAAAABRQkNl7k0A9bZ5N203LL09pZF7dKUu1uzuLa1opiDQ94DQ8VNDQBo0CkgooYXRr2vtx8+1
3AvsEgqy+8AAAPvgBYAspUBWA+zhHz59vvB8pUVAAAiAAFAAHdXsOkCgUBH1d499C75fAAAN2+Pq
5uAAAAAAFHAAAs8xeHvcqhKI+1jVNtRITbF2GXp6PjIN9husAAAD72ld8zcbPXUecAcil7GgSBfb
X2gtu1joBoAB69PQEi7qaSLWSzZaacxAUDIAAB6iEgAAGp4PkA88iXq6Z9eUPeygAAAdAAAAAAkL
This file has been truncated, but you can view the full file.
QlpoOTFBWSZTWVu0Z3sEQEj/////////////////////////////////////////////5dJfbucd
B3z4B0dBpy7jU3ZuHtsg1mtkASCtsrrSUXL4Mho0NAar6Dj7AXrl8QCgANwB5u3AA59433ovi4+H
16HUqqYj6fe9cN2GFb2O6zbru5bmpmmyBybpspTTRoQ9uFR7UXpgXN1d3T7l8M2fVUFbk6dufLS8
5uAwbzruCpaGnRW7zer12KxabWY97ud7jm3ru7bdyOrF3ZY5DdicgKd9c49OmbKmQZu1Fds73nuq
2egOctgnJTWGqG93XDN4xYjuu+73dRPd28Eeew3cp2nYAAAAAATwPA7FdyDttmgF0sAAAAAcgBGR
lZ1pSWxDDWhTZTz1494okrKnezvaV1CAAautToEQrQuhGt5NHrr3t48nrz3jgyrd7nsGhJbABgIA
AAAAAABRQkNl7k0A9bZ5N203LL09pZF7dKUu1uzuLa1opiDQ94DQ8VNDQBo0CkgooYXRr2vtx8+1
3AvsEgqy+8AAAPvgBYAspUBWA+zhHz59vvB8pUVAAAiAAFAAHdXsOkCgUBH1d499C75fAAAN2+Pq
5uAAAAAAFHAAAs8xeHvcqhKI+1jVNtRITbF2GXp6PjIN9husAAAD72ld8zcbPXUecAcil7GgSBfb
X2gtu1joBoAB69PQEi7qaSLWSzZaacxAUDIAAB6iEgAAGp4PkA88iXq6Z9eUPeygAAAdAAAAAAkL
../sample-binaries/small/gcd.x86_64-exe: file format elf64-x86-64
Disassembly of section .text:
0000000000400190 <main>:
400190: 53 push %rbx
400191: be 23 01 00 00 mov $0x123,%esi
400196: bf aa 03 00 00 mov $0x3aa,%edi