clojerl / clojerl

Clojure for the Erlang VM (unofficial)

Home Page:http://try.clojerl.online/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

clojure.edn/read fails when using a PushbackReader

jfacorro opened this issue · comments

Describe the bug
Calling clojure.edn/read by providing an erlang.io.PushbackReader fails to read.

To Reproduce
Use the following function to read a any file that contains edn:

(require '[clojure.erlang.io :as io])
(require '[clojure.edn :as edn])
(defn load-edn
  [filename]
  (with-open [f (io/file filename)
              r (io/reader f)
              pbr (erlang.io.PushbackReader. r)]
    (clojure.edn/read pbr)))

Results in the following:

clje.user=>  (load-edn "hello.edn")
:function_clause
clje.user=> (pst)
:function_clause
        clj_edn/read_one (/Users/juan.facorro/dev/clojerl/clojerl/src/erl/clj_edn.erl:90)
        clj_edn/ensure_read (/Users/juan.facorro/dev/clojerl/clojerl/src/erl/clj_edn.erl:87)
        clj_edn/read (/Users/juan.facorro/dev/clojerl/clojerl/src/erl/clj_edn.erl:51)
        clje.user/load-edn (:6)
        clj_compiler/eval1 (/Users/juan.facorro/dev/clojerl/clojerl/src/erl/clj_compiler.erl:132)
        clj_compiler/eval (/Users/juan.facorro/dev/clojerl/clojerl/src/erl/clj_compiler.erl:122)
        clojure.core/eval (/Users/juan.facorro/dev/clojerl/clojerl/_build/default/lib/clojerl/src/clj/clojure/core.clje:2647)
        clojure.main/-repl/1-anon__48/0-2- (/Users/juan.facorro/dev/clojerl/clojerl/_build/default/lib/clojerl/src/clj/clojure/main.clje:249)
        clojure.main/-repl/1-loop_49/0-6- (/Users/juan.facorro/dev/clojerl/clojerl/_build/default/lib/clojerl/src/clj/clojure/main.clje:269)
        clojure.main/repl (/Users/juan.facorro/dev/clojerl/clojerl/_build/default/lib/clojerl/src/clj/clojure/main.clje:267)
        clojure.main/repl-opt (/Users/juan.facorro/dev/clojerl/clojerl/_build/default/lib/clojerl/src/clj/clojure/main.clje:333)
        clojure.main/main (/Users/juan.facorro/dev/clojerl/clojerl/_build/default/lib/clojerl/src/clj/clojure/main.clje:407)
        clojerl_cli/run_commands (/Users/juan.facorro/dev/clojerl/clojerl/src/erl/clojerl_cli.erl:102)
        clojerl_cli/start (/Users/juan.facorro/dev/clojerl/clojerl/src/erl/clojerl_cli.erl:21)
        init/start_em (NO_SOURCE_FILE:?)
        init/do_boot (NO_SOURCE_FILE:?)

Expected behavior
Return the content of the file as Clojure data structures.

Actual behavior
Fails.

Context

  • clojerl version (tag/sha): 0.6.0-31-g8435ff7