Hi S, that's encouraging, I've to admit I've been poking at this for a few
hours now, but I'm not as productive as the (real)programmers.
I've yet to read the following which is a how to submit patches:
http://dev.clojure.org/display/design/JIRA+workflow

Meanwhile poking around, I've found the two locations that are showing *
:pending* and I've learned quite some things in the process. core_print.clj
and dispatch.clj are the relevant files for showing the future ( => f )
respectively for (clojure.pprint/pprint f)

I've also found a few relevant inconsistencies between
clojure.pprint/pprint and the normal printing (how do you call that), it's
clearly no big deal since it's just printing:
*(let [d (delay (throw (Exception. "a")) 100)] (print d)
(clojure.pprint/pprint d) d)*
 #<Delay@8526fa: :pending>#<Delay@8526fa: :not-delivered>
 #<Delay@8526fa: :pending>
 *(let [d (delay (throw (Exception. "a")) 100)] (print d)
(clojure.pprint/pprint d) d)*
 #<Delay@2caf64a6: :pending>#<Delay@2caf64a6: :not-delivered>
 #<Delay@2caf64a6: :pending>

Notice that some say :pending and one says :not-delivered

I've also considered this case(or similar to others like
promise/delay/future):
=> *(def d (delay (throw (Exception. "a")) 100))*
#'cloj2.ka/d
=> *d*
#<Delay@235c710: :pending>
=> *@d*
Exception a  cloj2.ka/fn--7187 (NO_SOURCE_FILE:1)
=>* d*
#<Delay@235c710: :pending>

At this time, I've been thinking that instead of :pending maybe there could
be something else like :threw especially considering that it can never
recover if it threw (right?), so having :pending might suggest that it is
still working, maybe even pending is not quite right for delay. Maybe I'm
getting too wannabe perfectionist here, after-all it's not one of my
projects to do such detailed analysis :) - if it were, I'd be putting quite
a few different messages here like: Delay :executing, Delay :threw, Delay
:completed (and the return value)

I feel like I'm overthinking this, the only real issue is really that of
printing an interrupted future should not throw.

At this time I'm not yet sure if I should pursue making a patch mainly
because I feel it would be incomplete to just fix the printing future issue
and not the other tiny things that I mentioned(but that's more of a fault
in me for wanting all addressed) and also because it seems somewhat
complicated to do, ie. required CA as I see here: http://clojure.org/patches

Thanks.

PS: someone who knows can probably do the futures patch in under 10
minutes, it would take me some hours I admit :)
Whoever does it, don't forget to add test cases in *test_pretty.clj*
currently somewhere at line 231:
*(tst-pprint 20 future-unfilled) #"#<Future@[0-9a-f]+: \r?\n  :pending>"*

On Fri, Oct 12, 2012 at 8:34 PM, Stuart Sierra
<the.stuart.sie...@gmail.com>wrote:

> Patch welcome.
> -S
>
>
>  --
> 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 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

Reply via email to