Permalink
Switch branches/tags
Nothing to show
Commits on Mar 18, 2011
  1. Bump version.

    yav committed Mar 18, 2011
  2. Fix base dependency

    elliottt committed Mar 18, 2011
Commits on Dec 25, 2008
  1. Simplify benchmark.

    yav committed Dec 25, 2008
Commits on Dec 24, 2008
  1. Code cleanup, and some API changes:

    yav committed Dec 24, 2008
    - API change: remove supplyLeft and supplyRight from API (rarely used)
    - API change: replace unsafeNewIntSupply with newDupableSupply & friends
    - API change: add functions for non-int "dupable" supplies
    - Implementation: make splitting functions stricter:
        * This makes them easier to use with dupable supplies
        * Seems to have a positive effect on the benchmark for safe supplies
    - Implementation: revert back to a single "newSupply" function.
        * There is no need for a list to keep the values: instead, we keep
          the next function in the closure of the update operation.
  2. Factor our repeated calls to atomicModifyIORef.

    yav committed Dec 24, 2008
    Thanks to Isaac Dupree for the idea!
  3. Switch back to using only unsafeInterleaveIO.

    yav committed Dec 24, 2008
    There does not seem to be a significant performance difference either
    way and, apparently, it is a bit safer.  The reason is that there is no
    danger of removing the common "unafePerfomrIO" expression.
Commits on Dec 23, 2008
  1. Add a function to generate thread-unsafe but faster Int supplies.

    yav committed Dec 23, 2008
    Also prettifies the bench program output a bit.
  2. Revert to the non-dupable version of the functions for the moment, an…

    Iavor S. Diatchki
    Iavor S. Diatchki committed Dec 23, 2008
    …d add a bench-mark.
Commits on Dec 22, 2008
  1. Add a simple test.

    yav committed Dec 22, 2008
  2. Use unsafeDupableIO to avoid double locking.

    yav committed Dec 22, 2008
    This is OK because the atomicModifyRef should ensure mutual exclusion.
  3. Initial import.

    yav committed Dec 22, 2008