Permalink
Commits on Aug 15, 2012
  1. Merge pull request #8 from danbst/master

    pcapriotti committed Aug 15, 2012
    Fix documentation typo
  2. Fix documentation typo

    danbst committed Aug 15, 2012
Commits on Jul 8, 2012
  1. Fix Await+Await case of composition.

    pcapriotti committed Jul 8, 2012
    The downstream finalizer wasn't being passed upstream.
  2. Make protect safer against exceptions in a Pipe value.

    pcapriotti committed Jun 12, 2012
    Restore commit 7bb846e, it went lost
    during refactoring.
Commits on Jun 24, 2012
  1. Fix PipeL implementation.

    pcapriotti committed Jun 24, 2012
    liftPipe for PipeL now lifts each constructor individually, and threads
    the unawait state. Now a lifted pipe containing awaits will correctly
    start to use queued unawaits.
  2. Add Control.Pipe.Exception.try.

    pcapriotti committed Jun 24, 2012
    Add a `try` combinator analogous to Control.Exception.try.
  3. Fix broken finally implementation.

    pcapriotti committed Jun 24, 2012
    There were two bugs in `finally`.
    
    First, `finallyP` was not recursing over the continuation of `Yield` and
    `Throw` constructors, so finalizers didn't survive after a `yield`.
    
    Second, `finally` was calling the finalizer after the end of the
    `finallyP` block. But `finallyP` attaches the finalizer to the last
    `Pure` constructor, so that was obviously incorrect.
    
    Also add a regression test.
Commits on Jun 23, 2012
  1. Bump version to 0.2.0.

    pcapriotti committed Jun 23, 2012
  2. Implement finally separately.

    pcapriotti committed Jun 6, 2012
    Separate the definition of `finally` from that of `catch`. This makes
    the semantics of `catch` a lot cleaner, since the exception handler is
    not considered a finalizer anymore.
  3. Fix tests.

    pcapriotti committed Jun 23, 2012
  4. Update Travis CI link.

    pcapriotti committed Jun 23, 2012
  5. Introduce PipeD and PipeL.

    pcapriotti committed Jun 23, 2012
  6. Reorder type variables.

    pcapriotti committed Jun 23, 2012
    This prevents us from defining a MonadTrans instance, so, instead of
    `lift`, we define an `exec` function, with the same signature.
    
    This is actually more honest, since the existing MonadTrans instance
    didn't satisfy the laws (`lift` was not a monad morphism).
  7. Add upstream return type.

    pcapriotti committed Jun 23, 2012
  8. Factor internal definitions out of Common.

    pcapriotti committed Jun 9, 2012
    Add Internal module, containing the definition of `Pipe`, as well as
    low-level primitives and accessory types.
  9. Merge branch 'throw-cont'

    pcapriotti committed Jun 23, 2012
Commits on Jun 12, 2012
  1. Make protect safer against exceptions in a Pipe value.

    pcapriotti committed Jun 12, 2012
    Fix an issue reported by Michael Snoyman, where an exception contained
    in a `Pipe` value would cause finalizers to be leaked.
    
    This commit introduces an extra monadic step at each `protect` call,
    which ensures that any exceptions contained in the continuation thunk
    can be captured and rethrown within the `Pipe` monad.
Commits on Jun 6, 2012
  1. Re-await on failed await.

    pcapriotti committed Jun 6, 2012
    The problem with having a continuation for the `Throw` constructor is
    how to expose the functionality to the user.
    
    With this commit, every await becomes an await-throw loop when it fails.
    This makes the natural definition of `pipe`, `idP` and `forP` do the
    right thing, i.e. act as proper "filters" when composed on the left.
Commits on Jun 3, 2012
  1. Add CI status to README.

    pcapriotti committed Jun 3, 2012
  2. Add .travis.yml file.

    pcapriotti committed Jun 3, 2012
Commits on Jun 2, 2012
  1. Update CHANGELOG.

    pcapriotti committed Jun 2, 2012
  2. Use TH to run quickcheck properties.

    pcapriotti committed Jun 2, 2012
    Adding the automatic test runner revealed a (failing!) test that was
    left behind.
    
    The test was failing because it was expecting a non-negative number, but
    was getting an arbitrary Int. This is fixed now.