Hi Steve, Thanks for the info. Is this limitation of user.clj arbitrary, or motivated by some concern that the average Clojure user should know about? Is the a reason not to load the bindings first? Does user.clj (in current form) do more harm than good?
Stuart > user.clj is loaded before thread-local bindings are established. I > see you're using Repl.java. You can see the call to > pushThreadBindings there to see how it works. user.clj allows you to > set up the user namespace, but not set! most vars. > > With the repl in clojure.main, you can include an init file on your > "java..." command line using the "-i" option. It will be loaded > after those bindings have been established. We do not have anything > like a "repl-init.clj" file that's auto-loaded if it exists to > accomplish these kinds of settings. It might be a good idea to have > one, loaded from classpath, with a suitable name. > > More complete solutions to this initialization task (.e.g., for the > bash shell) look in a few places for init files. That's something to > consider as well. > > --Steve > > On Dec 9, 2008, at 3:12 PM, Stuart Halloway wrote: > >> >> Why can't I call set! in user.clj? (And what is the idiomatic way to >> do what I want here?) >> >> (set! *print-length* 103) >> -> Exception in thread "main" java.lang.ExceptionInInitializerError >> at clojure.lang.Repl.<clinit>(Repl.java:23) >> Caused by: java.lang.RuntimeException: >> java.lang.IllegalStateException: >> Can't change/establish root binding of: *print-length* with set >> >> Thanks, >> Stuart >> >> >> >> >> >> >> > --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---