diff --git a/TODO b/TODO index e14db27..f5b9443 100644 --- a/TODO +++ b/TODO @@ -34,7 +34,7 @@ core lang - symbols should have two distinct parts: ns, name - multi-form defn: (defn x ([a] ...) ([a b] ...)) - seqs - - atoms, refs, agents +- atoms (actually multithreaded), refs, agents - freeze vectors, lists where approriate - (. x y) - destructuring (in FN, LET, everywhere else) diff --git a/lib/boot.rg b/lib/boot.rg index 954c28c..6af206a 100644 --- a/lib/boot.rg +++ b/lib/boot.rg @@ -209,7 +209,7 @@ (defmacro testing [what & tests] `(do - (when (= 0 *test-level*) + (when (= [] *test-level*) (puts)) (puts (* " " (count *test-level*) 2) "testing: " ~what) (binding [*test-level* (conj *test-level* ~what)] diff --git a/spec/reader_spec.rb b/spec/reader_spec.rb index 4bf5ca8..1a72f5e 100644 --- a/spec/reader_spec.rb +++ b/spec/reader_spec.rb @@ -64,6 +64,10 @@ Rouge.read("\"\\a\\b\\e\\f\\n\\r\"").should eq "\a\b\e\f\n\r" Rouge.read("\"\\s\\t\\v\"").should eq "\s\t\v" end + + it "should read strings as frozen" do + Rouge.read("\"bah\"").frozen?.should be_true + end end describe "lists" do