Skip to content

Instantly share code, notes, and snippets.

View chriswailes's full-sized avatar

Chris Wailes chriswailes

View GitHub Profile
module A
def A.included(klass)
klass.instance_exec do
@@foo = 0
def inc()
puts self.object_id
puts @@foo
@chriswailes
chriswailes / abstract_class.rb
Created April 20, 2012 23:47
Abstract Class implementation for Ruby
module AbstractClass
def self.included(klass)
klass.instance_exec do
@abstract_class = klass
def self.new(*args)
if self == @abstract_class
raise "Instantiating abstract class #{self} is not allowed."
else
super
@chriswailes
chriswailes / gist:2962792
Created June 20, 2012 23:04
RLTK/LLVM-ECB Example File
# Ruby Language Toolkit
require 'rltk/cg/llvm'
require 'rltk/cg/module'
require 'rltk/cg/execution_engine'
require 'rltk/cg/target'
require 'rltk/cg/type'
require 'rltk/cg/value'
RLTK::CG::LLVM.init(:all)
RLTK::CG::LLVM.init_asm_parser(:all)
@chriswailes
chriswailes / gist:3173150
Created July 24, 2012 22:43
Casting Problems with Templates
class MyClass {
template <typename IntType>
inline operator typename std::enable_if<std::is_integral<IntType>::value, IntType>::type () {
// Integer specific code.
}
template <typename FloatType>
inline operator typename std::enable_if<std::is_floating_point<FloatType>::value, FloatType>::type () {
// Float specific code.
}
@chriswailes
chriswailes / gist:3364325
Created August 15, 2012 22:35
C++11 Type Trait Issue
#ifndef RATIONAL_H
#define RATIONAL_H
/*
* Standard Includes
*/
#include <type_traits>
/*
@chriswailes
chriswailes / gist:3762434
Created September 21, 2012 16:20
Visitor Implementation Options
class MyVisitor < RLTK::Visitor
def wrapper_fun
...
yield
...
end
# Option 1
on KlassName do
wrapper_fun do |params|
@chriswailes
chriswailes / Atomics.chpl Snippet
Last active December 10, 2015 20:28
A set of chpl_defaultHash implementations for atomic types.
inline proc chpl__defaultHash(ref aflag:atomic_flag):int(64) {
if (atomic_load_explicit_flag(aflag, memory_order_consume)) then
return 0;
else
return 1;
}
inline proc chpl__defaultHash(ref auint:atomic_uint_least8_t):int(64) {
return _gen_key(atomic_load_explicit_uint_least8_t(auint, memory_order_consume):int(64));
}
@chriswailes
chriswailes / gist:7200825
Created October 28, 2013 17:17
Gem::LoadError output from Ruby
[me@dhalgren ~]$ rake
/usr/share/rubygems/rubygems/dependency.rb:296:in `to_specs': Could not find 'rake' (>= 0) among 5 total gem(s) (Gem::LoadError)
from /usr/share/rubygems/rubygems/dependency.rb:307:in `to_spec'
from /usr/share/rubygems/rubygems/core_ext/kernel_gem.rb:47:in `gem'
from /home/me/.gem/bin/rake:22:in `<main>'
#!/usr/bin/ruby
#
# This file was generated by RubyGems.
#
# The application 'rake' is installed as part of a gem, and
# this file is here to facilitate running it.
#
require 'rubygems'
@chriswailes
chriswailes / gist:7220312
Created October 29, 2013 18:43
LValue written as RValue
#include <utility>
class Foo {
public:
void operator=(Foo&& other);
};
int main(void) {
Foo a, b;