Skip to content

Instantly share code, notes, and snippets.

View deanberris's full-sized avatar

Dean Michael Berris deanberris

View GitHub Profile

Keybase proof

I hereby claim:

  • I am deanberris on github.
  • I am deanberris (https://keybase.io/deanberris) on keybase.
  • I have a public key ASApb4DM6eaITms9gQZGD-RZ0o-LGkvW-u0dpPgYXYBvngo

To claim this, I am signing this object:

Keybase proof

I hereby claim:

  • I am deanberris on github.
  • I am deanberris (https://keybase.io/deanberris) on keybase.
  • I have a public key ASAW8eOglcfmUwWL0JJPWyoGe1FOKcizaN-ymZGltEcO8Ao

To claim this, I am signing this object:

@deanberris
deanberris / sample.sh
Created December 14, 2017 03:36
Building an XRay instrumented clang binary
set -x
# Step 1: Build a clang using the system compiler that can build with XRay instrumentation.
mkdir llvm-build
cd llvm-build
cmake -GNinja \
-DLLVM_ENABLE_PROJECTS="clang:compiler-rt" \
-DCMAKE_BUILD_TYPE=Release ../llvm-project/llvm
ninja clang # Probably get a beverage and/or watch some videos
.section __TEXT,__text,regular,pure_instructions
.globl _callee
.p2align 4, 0x90
_callee: ## @callee
.cfi_startproc
## BB#0:
.p2align 1, 0x90
Lxray_sled_0:
.ascii "\353\t"
nopw 512(%rax,%rax)
.p2align 4, 0x90
.quad Lxray_synthetic_0
.quad Lxray_fn_idx_synth_0
@deanberris
deanberris / polymorphism-2.cpp
Created November 9, 2012 13:49
polymorphism-2
#include <iostream>
#include <memory>
#include <vector>
#include <utility>
/* Same definition of Object, Book, and Door as before */
class object_concept_t {
public:
virtual ~object_concept_t() = default;
@deanberris
deanberris / polymorphism-1.cpp
Created November 9, 2012 13:47
polymorphism-1
#include <iostream>
class Book {
std::string author, title;
public:
Book(std::string const &author, std::string const &title)
: author{author}, title{title}
{}
Book(Book const &other) : author{other.author}, title{other.title} {}
Book() : author{}, title{} {}
@deanberris
deanberris / polymorphism-0.cpp
Created November 9, 2012 13:42
polymorphism-0
#include <iostream>
class Object {
std::string type_name;
protected:
explicit Object(std::string const& type_name) : type_name{type_name} {}
public:
Object() : type_name{"Object"} {}
Object(Object const &other) : type_name{other.type_name} {}
virtual void print() { std::cout << type_name; }
@deanberris
deanberris / client-request-streaming.cc
Created September 25, 2012 13:25
HTTP Client Requests with streaming data.
namespace http = network::http;
namespace util = network::util;
http::client client;
auto fr = client.get(
{"https://www.myservice.com/",
util::gzip_encode(new file_byte_source{"/tmp/data"})}
); // we're gzip encoding the request body
auto r = fr.get();
std::string data = r.read(getpagesize()).get();
while (!data.empty()) {
@deanberris
deanberris / client-futures.cc
Created September 25, 2012 12:58
Using std::future<response> for responses to client requests.
namespace http = network::http;
std::future<http::response> response_future =
client.get("http://www.google.com/"); // returns immediately
http::response actual_response =
response_future.get(); // will move instead of copy