Skip to content

Instantly share code, notes, and snippets.

@stuartsierra
stuartsierra / accounts.clj
Created July 13, 2011 16:01
Accounts concurrency example in Clojure
;; An example of the "accounts" program for Venkat Subramaniam's
;; Programming Concurrency Workshop, part 1
;;
;; Original Java code by Venkat Subramaniam (@venkat_s)
;; available at http://www.agiledeveloper.com/downloads.html
;; under "Workshop: Programming Concurrency"
;;
;; This code example by Stuart Sierra (@stuartsierra)
;;
;; Überconf 2011, Denver, Colorado
@stuartsierra
stuartsierra / resource.clj
Created March 4, 2011 20:32
Automatic Resource Cleanup with PhantomReferences
(ns resource
"Automatic resource cleanup."
(:import (java.lang.ref ReferenceQueue PhantomReference)))
(def ^:private queue (ReferenceQueue.))
(def ^:private cleanup-fns {})
(defn resource
"Returns a reference to x. At some point after the reference is
@stuartsierra
stuartsierra / gist:716954
Created November 26, 2010 16:57
Local clojure.jar build profiles
<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>org.clojure</groupId>
<artifactId>clojure</artifactId>
@stuartsierra
stuartsierra / clojure maven build 1
Created November 12, 2010 20:21
With clojure/test_clojure.clj included
[INFO] [clojure:testCompile {execution: test-compile-clojure}]
[DEBUG] Searching /Users/stuart/src/clojure/clojure/src/test/clojure/clojure for clojure namespaces
[DEBUG] Searching /Users/stuart/src/clojure/clojure/src/test/clojure/clojure/test_clojure for clojure namespaces
[DEBUG] Searching /Users/stuart/src/clojure/clojure/src/test/clojure/clojure/test_clojure/agents.clj for clojure namespaces
[DEBUG] Found namespace clojure.test-clojure.agents in file /Users/stuart/src/clojure/clojure/src/test/clojure/clojure/test_clojure/agents.clj
....
[DEBUG] Java exectuable used: java
[DEBUG] Clojure classpath: /Users/stuart/src/clojure/clojure/src/test/java:/Users/stuart/src/clojure/clojure/src/test/clojure:/Users/stuart/src/clojure/clojure/target/test-classes::/Users/stuart/src/clojure/clojure/target/test-classes:/Users/stuart/src/clojure/clojure/target/classes
#!/bin/sh
# reload-aot-error.sh
# This file demonstrates the problems that result from
# unloading-and-reloading Clojure namespaces whose source files are
# newer than their AOT-compiled .class files.
# To run the demonstration, copy this script and clojure.jar into an
# empty directory, then execute the script.
Clojure 1.2.0-master-SNAPSHOT
user=> (use 'com.stuartsierra.lazytest)
Warning: protocol #'com.stuartsierra.lazytest/TestInvokable is overwriting function invoke-test
Warning: protocol #'com.stuartsierra.lazytest/TestResult is overwriting function success?
nil