Skip to content

Instantly share code, notes, and snippets.

View RSchulz's full-sized avatar

Randall Schulz RSchulz

  • Box, Inc,
  • Silicon Valley
View GitHub Profile
import scala.reflect.runtime.universe._
def classType[T](c: Class[T]): Type =
def prodType(p: Product): Type = {
val mirror = runtimeMirror(p.getClass.getClassLoader)
val cSym = mirror.staticClass(p.getClass.getName)
RSchulz / 00_Description
Last active December 31, 2015 17:18
Unexpected By-Name Parameter Evaluation
This code is a simplification (mostly the removal of type parameters) of an attempt, as an exercise,
to create a syntax that approximates the C- and Java-like conditional expression (“question-colon”).
The first attempt was eager, which is of course less than ideal. Next I tried to alter the code to
produce a form that evaluated only one of the value expressions. In doing so I found that the left-
hand (true) expression is always evaluated, even when the controlling Boolean is false. It appears
that the by-name parameter used to convey the left-hand value expression is being evaluated at the
point in the source where it appears (lexically). The right-hand (false case) expression is only
evaluated when the controlling Boolean is false and the stack trace indicates that the evalutation
is triggered where expected, in the body of TrueLeftFalseRight.right.
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by libffi configure 3.0.13, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ .././configure --srcdir=.. --enable-builddir=x86_64-apple-darwin12.3.0 --disable-debug --disable-dependency-tracking --prefix=/usr/local/Cellar/libffi/3.0.13
## --------- ##
## Platform. ##
RSchulz / .bash_profile
Created January 10, 2013 16:12
RSchulz's .bash_profile
export >|"$HOME/.env-initial"
RSchulz / brew-doctor-out
Created January 9, 2013 20:30
Attempt to install libtool fails on OS X 10.8.2
Your system is raring to brew.
RSchulz / "brew install libtool --env=std" output
Last active December 10, 2015 21:29
Homebrew libtool install problem
brew install libtool --env=std
==> Downloading
Already downloaded: /Library/Caches/Homebrew/libtool-2.4.2.tar.gz
==> ./configure --prefix=/usr/local/Cellar/libtool/2.4.2 --program-prefix=g --enable-ltdl-install
==> make install
make[2]: *** [libltdl/] Error 1
make[2]: *** Waiting for unfinished jobs....
libtool: compile: /usr/bin/clang -DHAVE_CONFIG_H -I. -DLTDLOPEN=libltdl "-DLT_CONFIG_H=<config.h>" -DLTDL -I. -I. -Ilibltdl -I./libltdl -I./libltdl/libltdl -Os -w -pipe -march=native -Qunused-arguments -mmacosx-version-min=10.8 -c libltdl/ltdl.c -o libltdl/libltdl_libltdl_la-ltdl.o >/dev/null 2>&1
make[1]: *** [install-recursive] Error 1
make: *** [install] Error 2
declare prob="${0##*/}"
declare progDir="${0%/*}"
declare sbtJAR="$progDir/sbt.jar"
declare -a jxArgs=( $SBT_JOPTS )
This file has been truncated, but you can view the full file.
[residual] arg = 'gen-idea'
[addSbt] arg = 'set logLevel in Global := Level.Debug'
Detected sbt version 0.12.0
Downloading sbt launcher 0.12.0:
To /box/www/rrs-common/bin/.lib/0.12.0/sbt-launch.jar
[addJava] arg = ''
Using /Users/rschulz/.sbt/0.12.0 as sbt dir, -sbt-dir to override.
# Executing command line:
Setting version to 2.9.1
[info] Set current project to box-common (in build file:/box/www/box-common/)
[info] Updating {file:/box/www/box-common/}default-20c7ac...
[info] Resolving org.scala-lang#scala-library;2.9.1 ...
[info] Resolving ch.qos.logback#logback-classic;0.9.29 ...
[info] Resolving ch.qos.logback#logback-core;0.9.29 ...
[info] Resolving org.slf4j#slf4j-api;1.6.1 ...
[info] Resolving com.weiglewilczek.slf4s#slf4s_2.9.1;1.0.7 ...
[info] Resolving org.slf4j#log4j-over-slf4j;1.6.1 ...
[info] Resolving com.linkedin.norbert#norbert-cluster_2.8.0;0.6.1 ...
import sbt._
import Keys._
* Generic settings for Box projects
object BoxSettings extends Plugin {
val buildOrganization = ""