seems that the repl start up namespace is hard coded in RT:
https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/RT.java#L437static void doInit() throws ClassNotFoundException, IOException{
load("clojure/core");
Var.pushThreadBindings(
RT.mapUniqueKeys(CURRENT_NS, CURRENT_NS.deref(),
WARN_ON_REFLECTION, WARN_ON_REFLECTION.deref()
,RT.UNCHECKED_MATH, RT.UNCHECKED_MATH.deref()));
try {
Symbol USER = Symbol.intern("user");
Symbol CLOJURE = Symbol.intern("clojure.core");
Var in_ns = var("clojure.core", "in-ns");
Var refer = var("clojure.core", "refer");
in_ns.invoke(USER);
refer.invoke(CLOJURE);
maybeLoadResourceScript("user.clj");
}
finally {
Var.popThreadBindings();
}
}
On Friday, December 14, 2012 1:25:44 AM UTC+8, stone wrote:
I tried the following way:
java -Xmx1G -cp $CLASSPATH clojure.main -i src/my-repl/repl.clj -r
where src/repl/repl.clj is :
|
(ns my-repl.repl)
(def my-var "hi")
(in-ns 'my-repl.repl)
but after clojure repl launched, I am always in the default user namespace not 'my-repl.repl'. How to achieve this so I can use my-var directly after repl launching ?
Thanks, Stone
|