Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Changing naming of "Atomic" to "Simple."

The use of the name "Atomic" for simple, non-composite expressions was
similar to the "atom" datatype in Clojure. All instances of "Atomic"
have been replaced with "Simple."

This is a simple renaming change that should be backwrads compatible
for all programs using the "ctco" macro.
  • Loading branch information...
commit 7606a9a7fb5b3d4aaf270123c0a6a76c31928416 1 parent c9704c3
@cjfrisz authored
View
4 .gitignore
@@ -11,3 +11,7 @@ classes/
# Target directory (why did this suddenly appear?)
target/
+
+# pom files created by deploying jars
+pom.xml
+pom.xml.asc
View
6 project.clj
@@ -3,14 +3,16 @@
;; Written by Chris Frisz
;;
;; Created 4 Feb 2012
-;; Last modified 18 Aug 2012
+;; Last modified 21 Aug 2012
;;
;; Project declaration for clojure-tco.
;;----------------------------------------------------------------------
(defproject ctco "0.2.1"
:description "Improving Clojure's support for constant-space tail calls."
- :url "https://github.com/cjfrisz/clojure-tco.git"
+ :url "https://github.com/cjfrisz/clojure-tco"
+ :license {:name "The MIT License"
+ :url "http://opensource.org/licenses/MIT"}
:dependencies [[org.clojure/clojure
"1.5.0-alpha3"]
[org.clojure/core.match
View
31 src/ctco/core.clj
@@ -3,7 +3,7 @@
;; Written by Chris Frisz
;;
;; Created 11 Apr 2012
-;; Last modified 17 Aug 2012
+;; Last modified 21 Aug 2012
;;
;; Defines the ctco macro which acts as the driver for the Clojure TCO
;; compiler. The macro parses the initial expression, and applies the
@@ -16,8 +16,7 @@
;;----------------------------------------------------------------------
(ns ctco.core
- (:require [ctco.expr
- [cont defn fn]]
+ (:require #_[ctco.expr [cont defn]]
[ctco.mini-passes :as mp]
[ctco.parse :as parse]
[ctco.protocol :as proto]
@@ -25,9 +24,7 @@
(:import [ctco.expr.cont
Cont AppContAbs]
[ctco.expr.defn
- Defn]
- [ctco.expr.fn
- Fn]))
+ Defn]))
(defmacro ctco
"Entry-point for the TCO compiler. Takes a Clojure expression and
@@ -51,14 +48,14 @@
(wrap-expr [expr]
(if (instance? Defn expr)
expr
- (let [k (util/new-var 'k)
- app (AppContAbs. apply-k k expr)]
- (Cont. k app))))]
- (proto/emit (-> (parse/parse expr)
- apply-cps
- (proto/abstract-k apply-k)
- proto/thunkify
- wrap-expr
- (mp/overload tramp)
- (mp/make-apply-k apply-k)
- (mp/make-trampoline tramp))))))
+ (let [k (util/new-var 'k)]
+ (Cont. k (AppContAbs. apply-k k expr)))))]
+ (-> (parse/parse expr)
+ apply-cps
+ (proto/abstract-k apply-k)
+ proto/thunkify
+ wrap-expr
+ (mp/overload tramp)
+ (mp/make-apply-k apply-k)
+ (mp/make-trampoline tramp)
+ proto/emit))))
View
6 src/ctco/expr/defn.clj
@@ -3,11 +3,11 @@
;; Written by Chris Frisz
;;
;; Created 4 Apr 2012
-;; Last modified 26 Apr 2012
+;; Last modified 21 Aug 2012
;;
;; Defines the Defn record type for 'defn' expressions in the TCO
;; compiler. It supports multiple arity definitions and represents
-;; them as a vector of Fn records.
+;; them as a vector of FnBody records.
;;
;; Defn implements the following protocols:
;;
@@ -37,7 +37,7 @@
fn thunk]
[ctco.protocol :as proto])
(:import [ctco.expr.fn
- Fn]
+ FnBody]
[ctco.expr.thunk
Thunk]))
View
16 src/ctco/expr/fn.clj
@@ -3,16 +3,16 @@
;; Written by Chris Frisz
;;
;; Created 30 Mar 2012
-;; Last modified 26 Apr 2012
+;; Last modified 21 Aug 2012
;;
-;; Defines the Fn record type for representing 'fn' expressions in the
+;; Defines the FnBody record type for representing 'fn' expressions in the
;; Clojure TCO compiler.
;;
;; It implements the following protocols:
;;
;; PAbstractK:
;; Recursively applies abstract-k to the body expression,
-;; returning a new Fn record.
+;; returning a new FnBody record.
;;
;; PEmit:
;; Emits (recursively) the syntax for the expression as
@@ -24,7 +24,7 @@
;; additional 'k' argument for the continuation.
;;
;; PThunkify:
-;; Simply calls thunkify on the body and returns a new Fn
+;; Simply calls thunkify on the body and returns a new FnBody
;; record with that body value.
;;----------------------------------------------------------------------
@@ -38,11 +38,11 @@
[ctco.expr.thunk
Thunk]))
-(defrecord Fn [fml* body]
+(defrecord FnBody [fml* body]
proto/PAbstractK
(abstract-k [this app-k]
(let [BODY (proto/abstract-k (:body this) app-k)]
- (Fn. (:fml* this) BODY)))
+ (FnBody. (:fml* this) BODY)))
proto/PEmit
(emit [this]
@@ -57,9 +57,9 @@
BODY (condp extends? (type (:body this))
proto/PCpsTriv (AppCont. k (proto/cps-triv body))
proto/PCpsSrs (proto/cps-srs body k))]
- (Fn. FML* BODY))))
+ (FnBody. FML* BODY))))
proto/PThunkify
(thunkify [this]
(let [BODY (proto/thunkify (:body this))]
- (Fn. (:fml* this) BODY))))
+ (FnBody. (:fml* this) BODY))))
View
18 src/ctco/expr/atomic.clj → src/ctco/expr/simple.clj
@@ -1,32 +1,32 @@
;;----------------------------------------------------------------------
-;; File atomic.clj
+;; File simple.clj
;; Written by Chris Frisz
;;
;; Created 30 Mar 2012
-;; Last modified 26 Apr 2012
+;; Last modified 26 Aug 2012
;;
-;; Defines the Atomic record type for atomic expressions (e.g.
+;; Defines the Simple record type for simple expressions (e.g.
;; numbers, booleans, symbols, etc.) in the CTCO compiler.
;;
;; It implements the following records:
;;
;; PAbstractK:
-;; Simply returns the Atomic.
+;; Simply returns the Simple.
;;
;; PCpsTriv:
-;; Simply returns the Atomic.
+;; Simply returns the Simple.
;;
;; PEmit:
-;; Returns the syntax for the Atomic.
+;; Returns the syntax for the Simple.
;;
;; PThunkify:
-;; Simply returns the Atomic.
+;; Simply returns the Simple.
;;----------------------------------------------------------------------
-(ns ctco.expr.atomic
+(ns ctco.expr.simple
(:require [ctco.protocol :as proto]))
-(defrecord Atomic [val]
+(defrecord Simple [val]
proto/PAbstractK
(abstract-k [this _] this)
View
8 src/ctco/expr/thunk.clj
@@ -3,7 +3,7 @@
;; Written by Chris Frisz
;;
;; Created 4 Apr 2012
-;; Last modified 26 Apr 2012
+;; Last modified 21 Aug 2012
;;
;; Defines the Thunk record type for representing thunks (functions of
;; zero arguments) in the Clojure TCO compiler. These are used to
@@ -18,8 +18,8 @@
;;
;; PEmit:
;; Emits (recursively) the syntax for the expression as
-;; `(fn [] ~body), using anonymous 'fn' expressions to
-;; represent thunks.
+;; `(with-meta (fn [] ~body) {:thunk true}), using
+;; anonymous 'fn' expressions to represent thunks.
;;----------------------------------------------------------------------
(ns ctco.expr.thunk
@@ -34,4 +34,4 @@
proto/PEmit
(emit [this]
(let [BODY (proto/emit (:body this))]
- `(with-meta (fn [] ~BODY) {:thunk true}))))
+ `(with-meta (fn [] ~BODY) {:thunk true}))))
View
20 src/ctco/mini_passes.clj
@@ -3,7 +3,7 @@
;; Written by Chris Frisz
;;
;; Created 14 Apr 2012
-;; Last modified 15 Jul 2012
+;; Last modified 26 Aug 2012
;;
;; Defines the small, one-time code transformations for the TCO
;; compiler. These include the following:
@@ -14,14 +14,14 @@
(ns ctco.mini-passes
(:require [ctco.expr
- app atomic fn defn do if let recur simple-op]
+ app simple fn defn do if let recur simple-op]
[ctco.util :as util])
(:import [ctco.expr.app
App]
- [ctco.expr.atomic
- Atomic]
+ [ctco.expr.simple
+ Simple]
[ctco.expr.fn
- Fn]
+ FnBody]
[ctco.expr.defn
Defn]
[ctco.expr.do
@@ -57,10 +57,10 @@
(if (instance? Defn expr)
(let [fml* (:fml* (first (:func* expr)))
fml-bl* (vec (butlast fml*))
- rand* (conj fml-bl* (Atomic. 'nil))
+ rand* (conj fml-bl* (Simple. 'nil))
init-call (App. (:name expr) rand*)
tramp-call (App. tramp [init-call])
- func* (vec (cons (Fn. fml-bl* tramp-call) (:func* expr)))]
+ func* (vec (cons (FnBody. fml-bl* tramp-call) (:func* expr)))]
(Defn. (:name expr) func*))
expr))
@@ -76,7 +76,7 @@
(let [test (SimpleOpCps. 'fn? [kont])
conseq (App. kont [arg])
body (IfCps. test conseq arg)
- init (Fn. [kont arg] body)
+ init (FnBody. [kont arg] body)
bind* [apply-k init]]
(LetCps. bind* expr))))
@@ -88,8 +88,8 @@
expression is emitted."
[expr tramp]
(let [thunk (util/new-var 'thunk)
- test (SimpleOpCps. 'get [(SimpleOpCps. 'meta [thunk]) (Atomic. :thunk)])
+ test (SimpleOpCps. 'get [(SimpleOpCps. 'meta [thunk]) (Simple. :thunk)])
conseq (Recur. [(App. thunk [])])
body (IfCps. test conseq thunk)
- init (Fn. [thunk] body)]
+ init (FnBody. [thunk] body)]
(LetCps. [tramp init] expr)))
View
42 src/ctco/parse.clj
@@ -3,7 +3,7 @@
;; Written by Chris Frisz
;;
;; Created 10 Apr 2012
-;; Last modified 18 Aug 2012
+;; Last modified 26 Aug 2012
;;
;; Defines the parser for the Clojure TCO compiler.
;;----------------------------------------------------------------------
@@ -12,17 +12,17 @@
(:use [clojure.core.match
:only (match)])
(:require [ctco.expr
- app atomic defn fn if let simple-op]
+ app simple defn fn if let simple-op]
[ctco.protocol :as proto]
[ctco.util :as util])
(:import [ctco.expr.app
App]
- [ctco.expr.atomic
- Atomic]
+ [ctco.expr.simple
+ Simple]
[ctco.expr.defn
Defn]
[ctco.expr.fn
- Fn]
+ FnBody]
[ctco.expr.if
IfCps IfSrs IfTriv]
[ctco.expr.let
@@ -39,16 +39,16 @@
records."
[expr]
(match [expr]
- [nil] (Atomic. nil)
- [(:or true false)] (Atomic. expr)
- [(n :guard number?)] (Atomic. n)
- [(['quote s] :seq)] (Atomic. `(quote ~s))
- [(v :guard symbol?)] (Atomic. v)
- [(s :guard string?)] (Atomic. s)
- [(k :guard keyword?)] (Atomic. k)
+ [nil] (Simple. nil)
+ [(:or true false)] (Simple. expr)
+ [(n :guard number?)] (Simple. n)
+ [(['quote s] :seq)] (Simple. `(quote ~s))
+ [(v :guard symbol?)] (Simple. v)
+ [(s :guard string?)] (Simple. s)
+ [(k :guard keyword?)] (Simple. k)
[(['fn fml* body] :seq)] (parse-fn fml* body)
- [(['defn name (fml* :guard vector?) body] :seq)] (let [func* `((~fml* ~body))]
- (parse-defn name func*))
+ [(['defn name (fml* :guard vector?) body] :seq)] (parse-defn name
+ `((~fml* ~body)))
[(['defn name & func*] :seq)] (parse-defn name func*)
[(['if test conseq alt] :seq)] (parse-if test conseq alt)
[(['cond & clause*] :seq)] (parse-cond clause*)
@@ -60,10 +60,7 @@
(defn- parse-fn
"Helper function for parse that handles 'fn' expressions."
[fml* body]
- (let [FML* (map parse fml*)
- FML* (into [] FML*)
- BODY (parse body)]
- (Fn. FML* BODY)))
+ (FnBody. (vec (map parse fml*)) (parse body)))
(defn- parse-defn
"Helper function for parse that handles 'defn' expression."
@@ -75,7 +72,7 @@
body (first (nfirst func*))
func (parse-fn fml* body)]
(recur (next func*) (conj out* func)))))]
- (let [NAME (Atomic. name)
+ (let [NAME (Simple. name)
FUNC* (parse-func* func* [])]
(Defn. NAME FUNC*))))
@@ -103,7 +100,7 @@
(IfTriv. test conseq rst))
RCLAUSE* (nnext rclause*)]
(recur RCLAUSE* RST))))]
- (parse-rclause* (reverse clause*) (Atomic. nil))))
+ (parse-rclause* (reverse clause*) (Simple. nil))))
(defn- parse-let
"Helper function for parse that handles 'let' expressions."
@@ -127,7 +124,6 @@
(defn- parse-app
"Helper function for parse that handles application."
[rator rand*]
- (let [RATOR (parse rator)
- RAND* (vec (map parse rand*))]
- (App. RATOR RAND*)))
+ (App. (parse rator) (vec (map parse rand*))))
+
View
4 src/ctco/protocol.clj
@@ -3,7 +3,7 @@
;; Written by Chris Frisz
;;
;; Created 26 Apr 2012
-;; Last modified 26 Apr 2012
+;; Last modified 26 Aug 2012
;;
;; Includes the protocols used in the CTCO compiler. These include the
;; following:
@@ -22,7 +22,7 @@
;; PCpsTriv:
;; Implemented by expressions which can undergo a CPS
;; transformation and are considered "trivial." As a rule of
-;; thumb, this includes atomic expressions (numbers, booleans,
+;; thumb, this includes simple expressions (numbers, booleans,
;; etc.) and non-function application expressions that contain
;; no serious subexpressions.
;;
View
10 src/ctco/util.clj
@@ -3,7 +3,7 @@
;; Written by Chris Frisz
;;
;; Created 26 Apr 2012
-;; Last modified 28 Apr 2012
+;; Last modified 26 Aug 2012
;;
;; Defines miscellaneous utility functions for use in CTCO. These
;; include:
@@ -15,10 +15,10 @@
(ns ctco.util
(:require [ctco.expr
- atomic cont]
+ simple cont]
[ctco.protocol :as proto])
- (:import [ctco.expr.atomic
- Atomic]
+ (:import [ctco.expr.simple
+ Simple]
[ctco.expr.cont
Cont AppCont]))
@@ -27,7 +27,7 @@
base symbol or a default base symbol."
([base]
(let [new-var (gensym base)]
- (Atomic. new-var)))
+ (Simple. new-var)))
([]
(let [base 'x]
(new-var base))))
View
59 test/ctco/test/cps.clj
@@ -3,7 +3,7 @@
;; Written by Chris Frisz
;;
;; Created 10 Apr 2012
-;; Last modified 28 Apr 2012
+;; Last modified 26 Aug 2012
;;
;; Testing for the CPSer in the record+protocol'd version of the TCO
;; compiler.
@@ -13,49 +13,49 @@
(:use [clojure.test]
[clojure.pprint])
(:require [ctco.expr
- app atomic cont defn fn if simple-op]
+ app simple cont defn fn if simple-op]
[ctco.protocol :as proto]
[ctco.util :as util])
(:import [ctco.expr.app
App]
- [ctco.expr.atomic
- Atomic]
+ [ctco.expr.simple
+ Simple]
[ctco.expr.cont
Cont AppCont]
[ctco.expr.defn
Defn]
[ctco.expr.fn
- Fn]
+ FnBody]
[ctco.expr.if
IfCps IfSrs IfTriv]
[ctco.expr.simple_op
SimpleOpCps SimpleOpSrs SimpleOpTriv]))
-(let [test-bool (Atomic. true)]
- (deftest atomic-bool
+(let [test-bool (Simple. true)]
+ (deftest simple-bool
(is (extends? proto/PCpsTriv (type test-bool)))
(is (not (extends? proto/PCpsSrs (type test-bool))))
(is (= (proto/cps-triv test-bool) test-bool))))
-(let [test-num (Atomic. 5)]
- (deftest atomic-num
+(let [test-num (Simple. 5)]
+ (deftest simple-num
(is (extends? proto/PCpsTriv (type test-num)))
(is (not (extends? proto/PCpsSrs (type test-num))))
(is (= (proto/cps-triv test-num) test-num))))
-(let [test-sym (Atomic. '(quote s))]
- (deftest atomic-sym
+(let [test-sym (Simple. '(quote s))]
+ (deftest simple-sym
(is (extends? proto/PCpsTriv (type test-sym)))
(is (not (extends? proto/PCpsSrs (type test-sym))))
(is (= (proto/cps-triv test-sym) test-sym))))
-(let [test-var (Atomic. 'x)]
- (deftest atomic-var
+(let [test-var (Simple. 'x)]
+ (deftest simple-var
(is (extends? proto/PCpsTriv (type test-var)))
(is (not (extends? proto/PCpsSrs (type test-var))))
(is (= (proto/cps-triv test-var) test-var))))
-(let [test-fn-triv (Fn. [(Atomic. 'x)] (Atomic. 'x))]
+(let [test-fn-triv (FnBody. [(Simple. 'x)] (Simple. 'x))]
(deftest fn-triv
(is (extends? proto/PCpsTriv (type test-fn-triv)))
(is (not (extends? proto/PCpsSrs (type test-fn-triv))))
@@ -65,7 +65,7 @@
(is (= (count (:fml* test-fn-cps)) 2))
(is (instance? AppCont (:body test-fn-cps))))))
-(let [test-if-triv (IfTriv. (Atomic. 3) (Atomic. 4) (Atomic. 5))]
+(let [test-if-triv (IfTriv. (Simple. 3) (Simple. 4) (Simple. 5))]
(deftest if-triv
(is (extends? proto/PCpsTriv (type test-if-triv)))
(is (not (extends? proto/PCpsSrs (type test-if-triv))))
@@ -75,14 +75,14 @@
(is (= (:alt test-if-triv) (:alt test-if-cps)))
(is (instance? IfCps test-if-cps)))))
-(let [test-defn (Defn. 'id [(Fn. [(Atomic. 'x)] (Atomic. 'x))])]
+(let [test-defn (Defn. 'id [(FnBody. [(Simple. 'x)] (Simple. 'x))])]
(deftest defn-triv
(is (extends? proto/PCpsTriv (type test-defn)))
(is (not (extends? proto/PCpsSrs (type test-defn))))
(let [test-defn-cps (proto/cps-triv test-defn)]
(is (instance? AppCont (:body (first (:func* test-defn-cps))))))))
-(let [test-op (SimpleOpTriv. '+ [(Atomic. 3) (Atomic. 4) (Atomic. 5)])]
+(let [test-op (SimpleOpTriv. '+ [(Simple. 3) (Simple. 4) (Simple. 5)])]
(deftest simple-op-triv
(is (extends? proto/PCpsTriv (type test-op)))
(is (not (extends? proto/PCpsSrs (type test-op))))
@@ -91,36 +91,37 @@
opnd-cps (:opnd* test-op-cps)]
(is (= opnd opnd-cps))))))
-(let [test-app (App. (Fn. [(Atomic. 'x)] (Atomic. 'x)) [(Atomic. 5)])]
+(let [test-app (App. (FnBody. [(Simple. 'x)] (Simple. 'x)) [(Simple. 5)])]
(deftest app
(is (extends? proto/PCpsSrs (type test-app)))
(let [k (util/new-var 'k)
app-cps (proto/cps-srs test-app k)]
(is (instance? App app-cps)))))
-(let [test-if-srs (IfSrs. (SimpleOpTriv. 'zero? [(Atomic. 'x)])
- (App. (Fn. [(Atomic. 'x)] (Atomic. 'x)) [(Atomic. 5)])
- (Atomic. 12))]
+(let [test-if-srs (IfSrs. (SimpleOpTriv. 'zero? [(Simple. 'x)])
+ (App. (FnBody. [(Simple. 'x)] (Simple. 'x)) [(Simple. 5)])
+ (Simple. 12))]
(deftest if-srs
(is (extends? proto/PCpsSrs (type test-if-srs)))
(is (extends? proto/PCpsTriv (type (:test test-if-srs))))
(is (extends? proto/PCpsSrs (type (:conseq test-if-srs))))
(is (extends? proto/PCpsTriv (type (:alt test-if-srs))))))
-(let [test-if-srs (IfSrs. (App. (Fn. [(Atomic. 'x)]
- (SimpleOpTriv. 'zero? [(Atomic. 'x)]))
- [(Atomic. 35)])
- (App. (Fn. [(Atomic. 'x)] (Atomic. 'x)) [(Atomic. 5)])
- (Atomic. 12))]
+(let [test-if-srs (IfSrs. (App. (FnBody. [(Simple. 'x)]
+ (SimpleOpTriv. 'zero? [(Simple. 'x)]))
+ [(Simple. 35)])
+ (App. (FnBody. [(Simple. 'x)] (Simple. 'x)) [(Simple. 5)])
+ (Simple. 12))]
(deftest if-srs2
(is (extends? proto/PCpsSrs (type test-if-srs)))
(is (extends? proto/PCpsSrs (type (:test test-if-srs))))
(is (extends? proto/PCpsSrs (type (:conseq test-if-srs))))
(is (extends? proto/PCpsTriv (type (:alt test-if-srs))))))
-(let [test-op-srs (SimpleOpSrs. '+ [(Atomic. 3)
- (App. (Fn. [(Atomic. 'x)] (Atomic. 'x)) [(Atomic. 5)])
- (Atomic. 5)])]
+(let [test-op-srs (SimpleOpSrs. '+ [(Simple. 3)
+ (App. (FnBody. [(Simple. 'x)] (Simple. 'x))
+ [(Simple. 5)])
+ (Simple. 5)])]
(deftest simple-op-srs
(is (extends? proto/PCpsSrs (type test-op-srs)))
(is (extends? proto/PCpsTriv (type (nth (:opnd* test-op-srs) 0))))
View
20 test/ctco/test/emit.clj
@@ -3,7 +3,7 @@
;; Written by Chris Frisz
;;
;; Created 15 Apr 2012
-;; Last modified 28 Apr 2012
+;; Last modified 26 Aug 2012
;;
;; Testing for the correctness of emit
;;----------------------------------------------------------------------
@@ -13,18 +13,18 @@
[clojure.pprint]
[ctco.parse :only (parse)])
(:require [ctco.expr
- app atomic cont defn fn if simple-op]
+ app simple cont defn fn if simple-op]
[ctco.protocol :as proto])
(:import [ctco.expr.app
App]
- [ctco.expr.atomic
- Atomic]
+ [ctco.expr.simple
+ Simple]
[ctco.expr.cont
Cont AppCont AppContAbs]
[ctco.expr.defn
Defn]
[ctco.expr.fn
- Fn]
+ FnBody]
[ctco.expr.if
IfCps IfSrs IfTriv]
[ctco.expr.simple_op
@@ -38,17 +38,17 @@
(is (= '((clojure.core/fn [x y z] (* x 3)) 7 3 12)
(proto/emit (parse '((fn [x y z] (* x 3)) 7 3 12))))))
-(deftest atomic-test
+(deftest simple-test
(is (= 5 (proto/emit (parse 5))))
(is (= 25883 (proto/emit (parse 25883))))
(is (= '(quote stuff) (proto/emit (parse '(quote stuff))))))
(deftest cont-test
(is (= '(clojure.core/fn [x] x)
- (proto/emit (Cont. (Atomic. 'x) (Atomic. 'x)))))
+ (proto/emit (Cont. (Simple. 'x) (Simple. 'x)))))
(is (= '((clojure.core/fn [x] x) (quote thonk))
- (proto/emit (AppCont. (Cont. (Atomic. 'x) (Atomic. 'x))
- (Atomic. (quote 'thonk)))))))
+ (proto/emit (AppCont. (Cont. (Simple. 'x) (Simple. 'x))
+ (Simple. (quote 'thonk)))))))
(deftest defn-test
(is (= '(clojure.core/defn id [x] x)
@@ -66,4 +66,4 @@
(deftest thunk-test
(is (= '(clojure.core/with-meta (clojure.core/fn [] (quote stuff)) {:thunk true})
- (proto/emit (Thunk. (Atomic. ''stuff))))))
+ (proto/emit (Thunk. (Simple. ''stuff))))))

0 comments on commit 7606a9a

Please sign in to comment.
Something went wrong with that request. Please try again.