Assembla Importer
added a comment - 24/Aug/10 6:19 AM Jonathan A Smith said: The defn functions are within a let, which means that they get tabbed in by Emacs ctrl+alt+Q. Is this the referred to 'extra whitespace and tabs'?
I think that this line:
>0-arities (rule-set (fn [x] (> x 1)))
might be a mistake, and perhaps should be:
>0-arities (rule-set (fn [x] (> x 0)))
But I will have to look at it and rebuild it when I get home tonight. resulting tests would still pass as the only effected function would be the single arity subtraction operation.

mikehinchey said: "git am" complained about whitespace at the ends of lines. When I tab on each line to re-indent, emacs replaced tabs with spaces and deleted space at the end. Also, you could combine the 2 let blocks into 1.

Assembla Importer
added a comment - 24/Aug/10 6:19 AM mikehinchey said: "git am" complained about whitespace at the ends of lines. When I tab on each line to re-indent, emacs replaced tabs with spaces and deleted space at the end. Also, you could combine the 2 let blocks into 1.

richhickey said: This still needs work. I'd like to avoid the need for proxy. It would be easy to make Compiler.isInline() in the compiler presume :inline-arities is an IFn (so sets literals would still work, but so would predicate fns)

Assembla Importer
added a comment - 24/Aug/10 6:19 AM richhickey said: This still needs work. I'd like to avoid the need for proxy. It would be easy to make Compiler.isInline() in the compiler presume :inline-arities is an IFn (so sets literals would still work, but so would predicate fns)

This patch doesn't optimize / such that the & more version expands to equivalent of (/ x (reduce * y more)) rather than (reduce / (/ x y) more). The original patch had a divide-by-zero bug, and I think adding this should be another ticket.

This patch doesn't optimize / such that the & more version expands to equivalent of (/ x (reduce * y more)) rather than (reduce / (/ x y) more). The original patch had a divide-by-zero bug, and I think adding this should be another ticket.

This patch incorporates Alex Taggart's work in the comments, but leaves out the change to /. It made a call to the nonexistent Numbers/unchecked_divide method and multiplies in the denominator, which is faster but has different overflow behavior than divide/reduce.

Alan Dipert
added a comment - 06/May/11 12:39 PM This patch incorporates Alex Taggart's work in the comments, but leaves out the change to /. It made a call to the nonexistent Numbers/unchecked_divide method and multiplies in the denominator, which is faster but has different overflow behavior than divide/reduce.

Alexander Taggart
added a comment - 07/May/11 12:30 AM One problem with the patch: while the bit-ops fns have n-ary support for their inlines, the fns themselves do not. They need to be updated to something like: