Hi all,

I'm currently working on a small project to get started with clojure.

I can't solve this problem which seem to be related to the reader.
So I ran some test against it.

-here's the clojure code:
                (def text1 "testing thread")
                (def T (proxy [Thread] []
                                                        (run []
                                                                (println "T 
thread : (eval (println text1))")
                                                                ;this works 
fine so i assume the var text1 is available from
the thread
                                                                (eval (println 
text1))

                                                                (println "T 
thread : (eval (read-string \"(println
text1)\"))")
                                                                ; this 
instruction seem to be causing the problem
                                                                ; Unable to 
resolve symbol: text1 in this context
                                                                (eval 
(read-string "(println text1)"))
                                                        )))

                (println "Main thread : (eval (println text1))")
                (eval (println text1))
                (println "Main thread : (eval (read-string \"(println 
text1)\"))")
                (eval (read-string "(println text1)"))
                (. T start)

-and the output:
                Clojure
                Main thread : (eval (println text1))
                testing thread
                Main thread : (eval (read-string "(println text1)"))
                testing thread
                1:1 user=> T thread : (eval (println text1))
                testing thread
                T thread : (eval (read-string "(println text1)"))

-followed by the stack trace
                Exception in thread "Thread-1" java.lang.Exception: Unable to
resolve symbol: text1 in this context (NO_SOURCE_FILE:0)
                at clojure.lang.Compiler.analyze(Compiler.java:4330)
                at clojure.lang.Compiler.analyze(Compiler.java:4276)
                at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:2761)
                at clojure.lang.Compiler.analyzeSeq(Compiler.java:4488)
                at clojure.lang.Compiler.analyze(Compiler.java:4315)
                at clojure.lang.Compiler.analyze(Compiler.java:4276)
                at 
clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:3852)
                at clojure.lang.Compiler$FnMethod.parse(Compiler.java:3687)
                at 
clojure.lang.Compiler$FnMethod.access$1100(Compiler.java:3564)
                at clojure.lang.Compiler$FnExpr.parse(Compiler.java:2953)
                at clojure.lang.Compiler.analyzeSeq(Compiler.java:4484)
                at clojure.lang.Compiler.analyze(Compiler.java:4315)
                at clojure.lang.Compiler.eval(Compiler.java:4520)
                at clojure.core$eval__3975.invoke(core.clj:1743)
                at user$fn__88$fn__90.invoke(testReader.clj:8)
                at clojure.proxy.java.lang.Thread.run(Unknown Source)
        Caused by: java.lang.Exception: Unable to resolve symbol: text1 in
this context
                at clojure.lang.Compiler.resolveIn(Compiler.java:4671)
                at clojure.lang.Compiler.resolve(Compiler.java:4617)
                at clojure.lang.Compiler.analyzeSymbol(Compiler.java:4594)
                at clojure.lang.Compiler.analyze(Compiler.java:4297)
                ... 15 more


So my question is would it be possible to get access to text1 in the
thread using this code (eval (read-string "(println text1)"))?

Is the reader really involved in this?


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to