On Friday, February 15, 2013 6:19:00 AM UTC+2, ronen wrote:
>
>
> It looks as if https://github.com/jonase/kibit/ is a lint/check style 
> tool that only reads the source code, this limits its utilization:
>
> "Kibit 
> reads<http://clojure.github.com/clojure/clojure.core-api.html#clojure.core/read>
>  source 
> code without any macro expansion or evaluation. A macro can therefor easily 
> invalidate a rule. Also, kibit will not know if the symbol + in the form (+ 
> x 1) actually refers to a local or to a function in a namespace other 
> than clojure.core. Expect some false positives."
>
> So there is a place for an AST based one (more similar to findbugs I guess)
>

If someone is interested in this https://github.com/jonase/eastwood might 
be a good starting point.
 

>
> On Wednesday, February 13, 2013 9:21:52 AM UTC+2, Ambrose 
> Bonnaire-Sergeant wrote:
>>
>> IMO that's the job of a "linter"-style tool, which can be written easily 
>> with `analyze`.
>>
>> On Tue, Feb 12, 2013 at 11:58 PM, Michael Wood <esio...@gmail.com> wrote:
>>
>>> It might be useful, though, to be able to enable warnings for shadowed
>>> variables.
>>>
>>> On 12 February 2013 17:38, Timothy Baldridge <tbald...@gmail.com> wrote:
>>> > This sort of pattern is used quite a lot in clojure (even in core):
>>> >
>>> > (let [data (if (string? data) (read-string data) data)
>>> >       data (if (string? (first data)) (first data) (next data))
>>> >       data (if (string? (first data)) (first data) (next data))]
>>> >      data)
>>> >
>>> > Throwing exceptions on overridden variable names would not only break
>>> > Clojure code, but also is very "non-lispy".
>>> >
>>> > Timothy
>>> >
>>> >
>>> >
>>> > On Tue, Feb 12, 2013 at 6:31 AM, AtKaaZ <atk...@gmail.com> wrote:
>>> >>
>>> >> it makes sense to not throw now that I think about it, when using "_"
>>> >> instead of "a"
>>> >> I'm also thinking of cases like:
>>> >> => (let [a 1]
>>> >>      (let [b 2 a 3]
>>> >>        (println a b)))
>>> >> 3 2
>>> >> nil
>>> >>
>>> >> is there something that would let me know I'm overwriting "a" ? I 
>>> figure
>>> >> if something like this would slip by would be tough to track down
>>> >>
>>> >>
>>> >> On Tue, Feb 12, 2013 at 1:46 PM, Michael Wood <esio...@gmail.com> 
>>> wrote:
>>> >>>
>>> >>> On 12 February 2013 12:28, AtKaaZ <atk...@gmail.com> wrote:
>>> >>> > what would this do:
>>> >>> >
>>> >>> > (let [a 1, a 2] a)
>>> >>> > becomes:
>>> >>> > (let [a 1, a123 2] a)
>>> >>> > or
>>> >>> > (let [a 1, a123 2] a123)
>>> >>> > or
>>> >>> > exception[I prefer]
>>> >>>
>>> >>> It would be the second option, i.e.:
>>> >>>
>>> >>> (let [a 1, a123 2] a123)
>>> >>>
>>> >>> The original code is valid, so it would not throw an exception.
>>> >>>
>>> >>> > On Tue, Feb 12, 2013 at 7:10 AM, Ambrose Bonnaire-Sergeant
>>> >>> > <abonnair...@gmail.com> wrote:
>>> >>> >>
>>> >>> >> Processing a hygienic AST relieves the burden of worrying about
>>> >>> >> shadowing
>>> >>> >> of locals.
>>> >>> >>
>>> >>> >> Wherever a binding would normally be shadowed, it is instead 
>>> renamed
>>> >>> >> to a
>>> >>> >> local binding currently not in scope.
>>> >>> >>
>>> >>> >> eg. (let [a 1, a a] a)
>>> >>> >>
>>> >>> >> becomes
>>> >>> >>
>>> >>> >> (let [a 1, a123 a] a123)
>>> >>> >>
>>> >>> >> It can be useful for those processing Clojure's analysis results.
>>> >>> >>
>>> >>> >> Thanks,
>>> >>> >> Ambrose
>>> >>> >>
>>> >>> >>
>>> >>> >> On Tue, Feb 12, 2013 at 1:54 AM, kovas boguta <
>>> kovas....@gmail.com>
>>> >>> >> wrote:
>>> >>> >>>
>>> >>> >>> What is a hygienic AST?
>>> >>> >>>
>>> >>> >>> Thanks
>>> >>> >>> k
>>> >>> >>>
>>> >>> >>>
>>> >>> >>> On Sun, Feb 10, 2013 at 10:45 PM, Ambrose Bonnaire-Sergeant
>>> >>> >>> <abonnair...@gmail.com> wrote:
>>> >>> >>> > Hi everyone,
>>> >>> >>> >
>>> >>> >>> > Happy to release analyze 0.3.0 with new hygienic code
>>> >>> >>> > transformation
>>> >>> >>> > capabilities.
>>> >>> >>> >
>>> >>> >>> > [analyze "0.3.0"]
>>> >>> >>> >
>>> >>> >>> > In a line:
>>> >>> >>> >
>>> >>> >>> > analyze.hygienic=> (-> (ast (let [a 1 a a b a a a] a)) ast-hy
>>> >>> >>> > emit-hy)
>>> >>> >>> > ((fn* ([] (let* [a 1 a2921 a b a2921 a2922 a2921] a2922))))
>>> >>> >>> >
>>> >>> >>> > Hygienic AST's have enabled large performance boosts in 
>>> core.typed.
>>> >>> >>> > I'm
>>> >>> >>> > excited to see how it could
>>> >>> >>> > be as useful to others.
>>> >>> >>> >
>>> >>> >>> > Note: "hygienic" AST's (those transformed with
>>> >>> >>> > `analyze.hygienic/ast-hy` can
>>> >>> >>> > be printed normally with `analyze.emit-form/emit-form`, and
>>> >>> >>> > hygienically
>>> >>> >>> > with `analyze.hygienic/emit-hy`.
>>> >>> >>> >
>>> >>> >>> > https://github.com/frenchy64/analyze
>>> >>> >>> >
>>> >>> >>> > Thanks,
>>> >>> >>> > Ambrose
>>> >>> >>> >
>>> >>> >>> > --
>>> >>> >>> > --
>>> >>> >>> > You received this message because you are subscribed to the 
>>> Google
>>> >>> >>> > Groups "Clojure" group.
>>> >>> >>> > To post to this group, send email to clo...@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+u...@googlegroups.com
>>> >>> >>> > For more options, visit this group at
>>> >>> >>> > http://groups.google.com/group/clojure?hl=en
>>> >>> >>> > ---
>>> >>> >>> > You received this message because you are subscribed to the 
>>> Google
>>> >>> >>> > Groups
>>> >>> >>> > "Clojure" group.
>>> >>> >>> > To unsubscribe from this group and stop receiving emails from 
>>> it,
>>> >>> >>> > send
>>> >>> >>> > an
>>> >>> >>> > email to clojure+u...@googlegroups.com.
>>> >>> >>> > For more options, visit 
>>> https://groups.google.com/groups/opt_out.
>>> >>> >>> >
>>> >>> >>> >
>>> >>> >>>
>>> >>> >>> --
>>> >>> >>> --
>>> >>> >>> You received this message because you are subscribed to the 
>>> Google
>>> >>> >>> Groups "Clojure" group.
>>> >>> >>> To post to this group, send email to clo...@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+u...@googlegroups.com
>>> >>> >>> For more options, visit this group at
>>> >>> >>> http://groups.google.com/group/clojure?hl=en
>>> >>> >>> ---
>>> >>> >>> You received this message because you are subscribed to the 
>>> Google
>>> >>> >>> Groups
>>> >>> >>> "Clojure" group.
>>> >>> >>> To unsubscribe from this group and stop receiving emails from it,
>>> >>> >>> send an
>>> >>> >>> email to clojure+u...@googlegroups.com.
>>> >>> >>> For more options, visit https://groups.google.com/groups/opt_out
>>> .
>>> >>> >>>
>>> >>> >>>
>>> >>> >>
>>> >>> >> --
>>> >>> >> --
>>> >>> >> You received this message because you are subscribed to the Google
>>> >>> >> Groups "Clojure" group.
>>> >>> >> To post to this group, send email to clo...@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+u...@googlegroups.com
>>> >>> >> For more options, visit this group at
>>> >>> >> http://groups.google.com/group/clojure?hl=en
>>> >>> >> ---
>>> >>> >> You received this message because you are subscribed to the Google
>>> >>> >> Groups
>>> >>> >> "Clojure" group.
>>> >>> >> To unsubscribe from this group and stop receiving emails from it, 
>>> send
>>> >>> >> an
>>> >>> >> email to clojure+u...@googlegroups.com.
>>> >>> >> For more options, visit https://groups.google.com/groups/opt_out.
>>> >>> >>
>>> >>> >>
>>> >>> >
>>> >>> >
>>> >>> >
>>> >>> >
>>> >>> > --
>>> >>> > Please correct me if I'm wrong or incomplete,
>>> >>> > even if you think I'll subconsciously hate it.
>>> >>> >
>>> >>> > --
>>> >>> > --
>>> >>> > You received this message because you are subscribed to the Google
>>> >>> > Groups "Clojure" group.
>>> >>> > To post to this group, send email to clo...@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+u...@googlegroups.com
>>> >>> > For more options, visit this group at
>>> >>> > http://groups.google.com/group/clojure?hl=en
>>> >>> > ---
>>> >>> > You received this message because you are subscribed to the Google
>>> >>> > Groups
>>> >>> > "Clojure" group.
>>> >>> > To unsubscribe from this group and stop receiving emails from it, 
>>> send
>>> >>> > an
>>> >>> > email to clojure+u...@googlegroups.com.
>>> >>> > For more options, visit https://groups.google.com/groups/opt_out.
>>> >>> >
>>> >>> >
>>> >>>
>>> >>>
>>> >>>
>>> >>> --
>>> >>> Michael Wood <esio...@gmail.com>
>>> >>>
>>> >>> --
>>> >>> --
>>> >>> You received this message because you are subscribed to the Google
>>> >>> Groups "Clojure" group.
>>> >>> To post to this group, send email to clo...@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+u...@googlegroups.com
>>> >>> For more options, visit this group at
>>> >>> http://groups.google.com/group/clojure?hl=en
>>> >>> ---
>>> >>> You received this message because you are subscribed to the Google 
>>> Groups
>>> >>> "Clojure" group.
>>> >>> To unsubscribe from this group and stop receiving emails from it, 
>>> send an
>>> >>> email to clojure+u...@googlegroups.com.
>>> >>> For more options, visit https://groups.google.com/groups/opt_out.
>>> >>>
>>> >>>
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Please correct me if I'm wrong or incomplete,
>>> >> even if you think I'll subconsciously hate it.
>>> >>
>>> >> --
>>> >> --
>>> >> You received this message because you are subscribed to the Google
>>> >> Groups "Clojure" group.
>>> >> To post to this group, send email to clo...@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+u...@googlegroups.com
>>> >> For more options, visit this group at
>>> >> http://groups.google.com/group/clojure?hl=en
>>> >> ---
>>> >> You received this message because you are subscribed to the Google 
>>> Groups
>>> >> "Clojure" group.
>>> >> To unsubscribe from this group and stop receiving emails from it, 
>>> send an
>>> >> email to clojure+u...@googlegroups.com.
>>> >> For more options, visit https://groups.google.com/groups/opt_out.
>>> >>
>>> >>
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > “One of the main causes of the fall of the Roman Empire was 
>>> that–lacking
>>> > zero–they had no way to indicate successful termination of their C
>>> > programs.”
>>> > (Robert Firth)
>>> >
>>> > --
>>> > --
>>> > You received this message because you are subscribed to the Google
>>> > Groups "Clojure" group.
>>> > To post to this group, send email to clo...@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+u...@googlegroups.com
>>> > For more options, visit this group at
>>> > http://groups.google.com/group/clojure?hl=en
>>> > ---
>>> > You received this message because you are subscribed to the Google 
>>> Groups
>>> > "Clojure" group.
>>> > To unsubscribe from this group and stop receiving emails from it, send 
>>> an
>>> > email to clojure+u...@googlegroups.com.
>>> > For more options, visit https://groups.google.com/groups/opt_out.
>>> >
>>> >
>>>
>>>
>>>
>>> --
>>> Michael Wood <esio...@gmail.com>
>>>
>>> --
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clo...@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+u...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google 
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to clojure+u...@googlegroups.com.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>

-- 
-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to