On Mon, 2009-06-29 at 07:04 -0700, arasoft wrote: > I very much like your idea of setting *math-context* (I was looking > for something like that, but could not find it in the documentation), > but how do I do it globally? > > user=> (set! *math-context* java.math.MathContext/DECIMAL128) > #<CompilerException java.lang.IllegalStateException: Can't change/ > establish root binding of: *math-context* with set (NO_SOURCE_FILE:0)> > > whereas > > (set! *warn-on-reflection* true) > > works fine? > > What is the difference? How is it done right?
I am not sure, but I believe it's due to *warn-on-reflection* being bound by the compiler/REPL before evaluating (set! *warn-on-reflection* true). When I looked, the REPL was called within a macro 'with-bindings repl' that expands to (binding [.... *warn-on-reflection* .... ] repl) allowing the execution of REPL to set! *war-on-reflection* and some other similar vars. (*ns*, *compile-files*, *compile-path*, etc...) I suppose the compiler does a similar thing, but I have never looked. Best, Nicolas. --~--~---------~--~----~------------~-------~--~----~ 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 Note that posts from new members are moderated - please be patient with your first post. 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 -~----------~----~----~----~------~----~------~--~---