[racket] FW: q about code for partitions

From: Jos Koot (jos.koot at gmail.com)
Date: Thu Jul 17 06:41:09 EDT 2014

The documentation of partitions has not yet been updated, as far as I can
see in version 6.0.1.13--2014-07-08(7735dd0/a) [3m]. I don't want to hurry
up things (there may be other priorities) but when the docs will be updated,
I think they should include a warning against calling function partitions
from two concurrently running futures or threads. Reason is the non atomic
memoization. (let alone calling set-partitions-cache in one process while
another one is consulting/updating the cache)

Calling partitions from two concurrent futures gives me a segfault. Not a
surprise.
Up to now calling from two concurrent threads gives me correct results, but
slows down vvveeerrryyy much.
I assume concurrent threads can lead to the same problems as concurrent
futures, though.
If I understand places correctly, calling from concurrent places should go
well. Do I understand correctly?

Jos

> -----Original Message-----
> From: Vincent St-Amour [mailto:stamourv at ccs.neu.edu] 
> Sent: domingo, 29 de junio de 2014 22:52
> To: Eric Dobson
> Cc: Jos Koot; Matthew Flatt; Jens Axel Søgaard; Racket Users List
> Subject: Re: [racket] FW: q about code for partitions
> 
> Ah, that explains it. Thanks!
> 
> Vincent
> 
> 
> At Sun, 29 Jun 2014 12:32:48 -0700,
> Eric Dobson wrote:
> > 
> > Vincent: exact-zero? is defined through 'make-predicate' which uses
> > contract machinery to generate the function. I filed a 
> couple of bugs
> > tracking some of the slowness issues. There is no `contract` form
> > though so I doubt that the coach will find it.
> > 
> > 
> http://bugs.racket-lang.org/query/?cmd=view%20audit-trail&data
base=default&pr=14610
> > 
> http://bugs.racket-lang.org/query/?cmd=view%20audit-trail&data
base=default&pr=14611
> > 
> > On Sun, Jun 29, 2014 at 11:53 AM, Jos Koot 
> <jos.koot at gmail.com> wrote:
> > > Great work, Jens. I am glad my approach as been adopted 
> (and much improved
> > > without deviating from the original idea of simpler 
> recurrence). When can we
> > > expect it in the next nightly build?
> > >
> > > Thanks, Jos
> > >
> > >> -----Original Message-----
> > >> From: jensaxelsoegaard at gmail.com
> > >> [mailto:jensaxelsoegaard at gmail.com] On Behalf Of Jens 
> Axel Søgaard
> > >> Sent: domingo, 29 de junio de 2014 12:48
> > >> To: Matthew Flatt
> > >> Cc: Jos Koot; Racket Users List
> > >> Subject: Re: [racket] FW: q about code for partitions
> > >>
> > >> I have made a new vector version using zero? instead of 
> exact-zero?.
> > >>
> > >> To give users a chance to remove the cache after doing
> > >> partitions calculations,
> > >> I have added set-partitions-cache.
> > >>
> > >>    Code:
> > >>
> > >> https://github.com/soegaard/racket/blob/patch-14/pkgs/math-pkg
> > > s/math-lib/math/private/number-theory/partitions.rkt
> > >>
> > >>    Discussion:
> > >>     https://github.com/plt/racket/pull/697
> > >>
> > >> /Jens Axel
> > >>
> > >>
> > >> 2014-06-29 12:44 GMT+02:00 Jens Axel Søgaard 
> <jensaxel at soegaard.net>:
> > >> > 2014-06-29 8:47 GMT+02:00 Matthew Flatt <mflatt at cs.utah.edu>:
> > >> >> It looks like "partitions2.rkt" ends up calling a 
> contract-wrapped
> > >> >> variant of `exact-zero?`.
> > >> >
> > >> > That explains why Eric saw an improvement, when the used #f
> > >> instead of
> > >> > 0 as the not-cached-yet value.
> > >> >
> > >> > /Jens Axel
> > >>
> > >>
> > >>
> > >> --
> > >> --
> > >> Jens Axel Søgaard
> > >
> > >
> > > ____________________
> > >   Racket Users list:
> > >   http://lists.racket-lang.org/users
> > 
> > ____________________
> >   Racket Users list:
> >   http://lists.racket-lang.org/users



Posted on the users mailing list.