Further, in Clojure <= 1.5.1, (= 1M 1.0M) => false. Please note, this 
behavior has changed in 1.6.

On Monday, January 6, 2014 12:21:13 PM UTC-6, Justin Kramer wrote:
>
> Shot in the dark: check that arguments passed to your memoized functions 
> use consistent typing. A BigDecimal such as 1M does not necessarily equal 1 
> (a Long):
>
> > (= 1 1M)
> false
> > (== 1 1M)
> true
>
> Your memoized functions could be recomputing values unnecessarily if 
> you're giving them different types of numbers.
>
> Justin
>
> On Monday, January 6, 2014 12:57:49 PM UTC-5, David James wrote:
>>
>> I've got a Clojure test suite that fails when run as whole but passes 
>> when run piecemeal. This just started happening. I've tested the code 
>> thoroughly. The bug pops up in a part of the code that I did not change. 
>> So, at present, it feels like a heisenbug!
>>
>> These may be some relevant pieces:
>> * I'm using memoization; the failures happen in memoized functions.
>> * I'm doing a lot of various precision BigDecimal math.
>>
>> Some tentative guesses:
>> * Somehow one test is affecting another test
>>
>> Questions (there are speculative):
>> * What are some possible ways that memoization might fail (e.g. return an 
>> incorrect value)?
>> * Is it possible that higher memory usage could cause memoization results 
>> to get lost?
>>
>> Unfortunately, it is a sizable code base, and I don't have a small, 
>> reproducible example. Any suggestions?
>>
>> -David
>>
>

-- 
-- 
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