Actually, it's my environment which is the issue. Vimclojure seems to load lots of extra libs.
It seems to be barfing at the `ns` forms. Ambrose On Tue, Jan 3, 2012 at 3:13 PM, Ambrose Bonnaire-Sergeant < abonnaireserge...@gmail.com> wrote: > Hi Jonas > > On Tue, Jan 3, 2012 at 2:43 PM, Jonas <jonas.enl...@gmail.com> wrote: >> >> 1. In order to be able to run your examples I have to comment out the >> clojure.test, clojure.stacktrace and clojure.template namespaces. Otherwise >> I get a NullPointerException[1] which I’m unable to track down. It seems to >> originate from the wall-hack function. What does this function do? >> > > wall-hack allows me to access method/fields of private classes via > reflection. If there's a better way I'm all ears, but if I'm using > wall-hack it usually means the Class is private. > > That being said, the stacktrace you're getting originates in the > Compiler's analysis phase. The call to wall-hack is a call to > clojure.lang.Compiler/analyze. > > Be ready for some very cryptic errors :) It also helps to have a clone of > the clojure source to follow the stacktrace. > > How are you running the code? Could you pull the latest master and try > again? Possibly track down exactly which namespace is causing the Exception. > > (I just realized there's a public method of clojure.lang.Compiler/analyze, > so wall-hack is not necessary for calling clojure.lang.Compiler/analyze. > Just pushed the change.) > > >> 2. Is it possible to do some analysis before macroexpansion? For example, >> If I want to look for the pattern >> >> (if (some-test? …) >> (some-expr …) >> nil) >> >> and print the following: “WARNING: consider using (when …) instead of (if >> test then nil)”. Is this possible since (when test expr) expands to (if >> test (do expr)). Maybe this kind of code analysis is outside the scope of >> your library? >> > > This would be easy if the analyzer was more like ClojureScript's analyzer. > ie. written in Clojure with multimethods. > > But I'm not sure how to do this otherwise. You'd basically want to add a > new special form that tells the analyzer to stop macroexpanding. > > Basically, yes, this is outside the scope of what I hope to achieve right > now. > > Thanks, > Ambrose > -- 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